diff --git a/.licenses/npm/openai.dep.yml b/.licenses/npm/openai.dep.yml index a58a8f9..6425b4a 100644 --- a/.licenses/npm/openai.dep.yml +++ b/.licenses/npm/openai.dep.yml @@ -1,6 +1,6 @@ --- name: openai -version: 5.11.0 +version: 6.9.1 type: npm summary: The official TypeScript library for the OpenAI API homepage: diff --git a/dist/index.js b/dist/index.js index f62a682..7d92b0b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -51844,7 +51844,7 @@ const safeJSON = (text) => { // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); -const VERSION = '5.11.0'; // x-release-please-version +const VERSION = '6.9.1'; // x-release-please-version // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. const isRunningInBrowser = () => { @@ -53184,6 +53184,36 @@ class CursorPage extends AbstractPage { }; } } +class ConversationCursorPage extends AbstractPage { + constructor(client, response, body, options) { + super(client, response, body, options); + this.data = body.data || []; + this.has_more = body.has_more || false; + this.last_id = body.last_id || ''; + } + getPaginatedItems() { + return this.data ?? []; + } + hasNextPage() { + if (this.has_more === false) { + return false; + } + return super.hasNextPage(); + } + nextPageRequestOptions() { + const cursor = this.last_id; + if (!cursor) { + return null; + } + return { + ...this.options, + query: { + ...maybeObj(this.options.query), + after: cursor, + }, + }; + } +} const checkFileSupport = () => { if (typeof File === 'undefined') { @@ -53215,6 +53245,15 @@ function getName(value) { .pop() || undefined); } const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function'; +/** + * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value. + * Otherwise returns the request as is. + */ +const maybeMultipartFormRequestOptions = async (opts, fetch) => { + if (!hasUploadableValue(opts.body)) + return opts; + return { ...opts, body: await createForm(opts.body, fetch) }; +}; const multipartFormRequestOptions = async (opts, fetch) => { return { ...opts, body: await createForm(opts.body, fetch) }; }; @@ -53260,6 +53299,22 @@ const createForm = async (body, fetch) => { // We check for Blob not File because Bun.File doesn't inherit from File, // but they both inherit from Blob and have a `name` property at runtime. const isNamedBlob = (value) => value instanceof Blob && 'name' in value; +const isUploadable = (value) => typeof value === 'object' && + value !== null && + (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value)); +const hasUploadableValue = (value) => { + if (isUploadable(value)) + return true; + if (Array.isArray(value)) + return value.some(hasUploadableValue); + if (value && typeof value === 'object') { + for (const k in value) { + if (hasUploadableValue(value[k])) + return true; + } + } + return false; +}; const addFormValue = async (form, key, value) => { if (value === undefined) return; @@ -53314,7 +53369,7 @@ const isResponseLike = (value) => value != null && typeof value.blob === 'function'; /** * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats - * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s + * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible * @param {Object=} options additional properties * @param {string=} options.type the MIME type of the content @@ -53477,8 +53532,119 @@ let Messages$1 = class Messages extends APIResource { } }; -function isRunnableFunctionWithParse(fn) { - return typeof fn.parse === 'function'; +function isChatCompletionFunctionTool(tool) { + return tool !== undefined && 'function' in tool && tool.function !== undefined; +} +function isAutoParsableResponseFormat(response_format) { + return response_format?.['$brand'] === 'auto-parseable-response-format'; +} +function isAutoParsableTool$1(tool) { + return tool?.['$brand'] === 'auto-parseable-tool'; +} +function maybeParseChatCompletion(completion, params) { + if (!params || !hasAutoParseableInput$1(params)) { + return { + ...completion, + choices: completion.choices.map((choice) => { + assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls); + return { + ...choice, + message: { + ...choice.message, + parsed: null, + ...(choice.message.tool_calls ? + { + tool_calls: choice.message.tool_calls, + } + : undefined), + }, + }; + }), + }; + } + return parseChatCompletion(completion, params); +} +function parseChatCompletion(completion, params) { + const choices = completion.choices.map((choice) => { + if (choice.finish_reason === 'length') { + throw new LengthFinishReasonError(); + } + if (choice.finish_reason === 'content_filter') { + throw new ContentFilterFinishReasonError(); + } + assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls); + return { + ...choice, + message: { + ...choice.message, + ...(choice.message.tool_calls ? + { + tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall$1(params, toolCall)) ?? undefined, + } + : undefined), + parsed: choice.message.content && !choice.message.refusal ? + parseResponseFormat(params, choice.message.content) + : null, + }, + }; + }); + return { ...completion, choices }; +} +function parseResponseFormat(params, content) { + if (params.response_format?.type !== 'json_schema') { + return null; + } + if (params.response_format?.type === 'json_schema') { + if ('$parseRaw' in params.response_format) { + const response_format = params.response_format; + return response_format.$parseRaw(content); + } + return JSON.parse(content); + } + return null; +} +function parseToolCall$1(params, toolCall) { + const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name); // TS doesn't narrow based on isChatCompletionTool + return { + ...toolCall, + function: { + ...toolCall.function, + parsed_arguments: isAutoParsableTool$1(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments) + : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments) + : null, + }, + }; +} +function shouldParseToolCall(params, toolCall) { + if (!params || !('tools' in params) || !params.tools) { + return false; + } + const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name); + return (isChatCompletionFunctionTool(inputTool) && + (isAutoParsableTool$1(inputTool) || inputTool?.function.strict || false)); +} +function hasAutoParseableInput$1(params) { + if (isAutoParsableResponseFormat(params.response_format)) { + return true; + } + return (params.tools?.some((t) => isAutoParsableTool$1(t) || (t.type === 'function' && t.function.strict === true)) ?? false); +} +function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls) { + for (const toolCall of toolCalls || []) { + if (toolCall.type !== 'function') { + throw new OpenAIError(`Currently only \`function\` tool calls are supported; Received \`${toolCall.type}\``); + } + } +} +function validateInputTools(tools) { + for (const tool of tools ?? []) { + if (tool.type !== 'function') { + throw new OpenAIError(`Currently only \`function\` tool types support auto-parsing; Received \`${tool.type}\``); + } + if (tool.function.strict !== true) { + throw new OpenAIError(`The \`${tool.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`); + } + } } const isAssistantMessage = (message) => { @@ -53672,104 +53838,8 @@ _EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedProm return this._emit('error', new OpenAIError(String(error))); }; -function isAutoParsableResponseFormat(response_format) { - return response_format?.['$brand'] === 'auto-parseable-response-format'; -} -function isAutoParsableTool$1(tool) { - return tool?.['$brand'] === 'auto-parseable-tool'; -} -function maybeParseChatCompletion(completion, params) { - if (!params || !hasAutoParseableInput$1(params)) { - return { - ...completion, - choices: completion.choices.map((choice) => ({ - ...choice, - message: { - ...choice.message, - parsed: null, - ...(choice.message.tool_calls ? - { - tool_calls: choice.message.tool_calls, - } - : undefined), - }, - })), - }; - } - return parseChatCompletion(completion, params); -} -function parseChatCompletion(completion, params) { - const choices = completion.choices.map((choice) => { - if (choice.finish_reason === 'length') { - throw new LengthFinishReasonError(); - } - if (choice.finish_reason === 'content_filter') { - throw new ContentFilterFinishReasonError(); - } - return { - ...choice, - message: { - ...choice.message, - ...(choice.message.tool_calls ? - { - tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall$1(params, toolCall)) ?? undefined, - } - : undefined), - parsed: choice.message.content && !choice.message.refusal ? - parseResponseFormat(params, choice.message.content) - : null, - }, - }; - }); - return { ...completion, choices }; -} -function parseResponseFormat(params, content) { - if (params.response_format?.type !== 'json_schema') { - return null; - } - if (params.response_format?.type === 'json_schema') { - if ('$parseRaw' in params.response_format) { - const response_format = params.response_format; - return response_format.$parseRaw(content); - } - return JSON.parse(content); - } - return null; -} -function parseToolCall$1(params, toolCall) { - const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name); - return { - ...toolCall, - function: { - ...toolCall.function, - parsed_arguments: isAutoParsableTool$1(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments) - : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments) - : null, - }, - }; -} -function shouldParseToolCall(params, toolCall) { - if (!params) { - return false; - } - const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name); - return isAutoParsableTool$1(inputTool) || inputTool?.function.strict || false; -} -function hasAutoParseableInput$1(params) { - if (isAutoParsableResponseFormat(params.response_format)) { - return true; - } - return (params.tools?.some((t) => isAutoParsableTool$1(t) || (t.type === 'function' && t.function.strict === true)) ?? false); -} -function validateInputTools(tools) { - for (const tool of tools ?? []) { - if (tool.type !== 'function') { - throw new OpenAIError(`Currently only \`function\` tool types support auto-parsing; Received \`${tool.type}\``); - } - if (tool.function.strict !== true) { - throw new OpenAIError(`The \`${tool.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`); - } - } +function isRunnableFunctionWithParse(fn) { + return typeof fn.parse === 'function'; } var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionToolCall, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult; @@ -53895,7 +53965,7 @@ class AbstractChatCompletionRunner extends EventStream { async _runTools(client, params, options) { const role = 'tool'; const { tool_choice = 'auto', stream, ...restParams } = params; - const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice?.function?.name; + const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice.type === 'function' && tool_choice?.function?.name; const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {}; // TODO(someday): clean this logic up const inputTools = params.tools.map((tool) => { @@ -54013,7 +54083,7 @@ _AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletion for (let i = this.messages.length - 1; i >= 0; i--) { const message = this.messages[i]; if (isAssistantMessage(message) && message?.tool_calls?.length) { - return message.tool_calls.at(-1)?.function; + return message.tool_calls.filter((x) => x.type === 'function').at(-1)?.function; } } return; @@ -54491,7 +54561,7 @@ class ChatCompletionStream extends AbstractChatCompletionRunner { throw new Error('tool call snapshot missing `type`'); } if (toolCallSnapshot.type === 'function') { - const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, "f")?.tools?.find((tool) => tool.type === 'function' && tool.function.name === toolCallSnapshot.function.name); + const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, "f")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === toolCallSnapshot.function.name); // TS doesn't narrow based on isChatCompletionTool this._emit('tool_calls.function.arguments.done', { name: toolCallSnapshot.function.name, index: toolCallIndex, @@ -55150,7 +55220,7 @@ class Assistants extends APIResource { } // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -class Sessions extends APIResource { +let Sessions$1 = class Sessions extends APIResource { /** * Create an ephemeral API token for use in client-side applications with the * Realtime API. Can be configured with the same session parameters as the @@ -55173,7 +55243,7 @@ class Sessions extends APIResource { headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]), }); } -} +}; // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. class TranscriptionSessions extends APIResource { @@ -55202,15 +55272,136 @@ class TranscriptionSessions extends APIResource { } // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -class Realtime extends APIResource { +/** + * @deprecated Realtime has now launched and is generally available. The old beta API is now deprecated. + */ +let Realtime$1 = class Realtime extends APIResource { constructor() { super(...arguments); - this.sessions = new Sessions(this._client); + this.sessions = new Sessions$1(this._client); this.transcriptionSessions = new TranscriptionSessions(this._client); } +}; +Realtime$1.Sessions = Sessions$1; +Realtime$1.TranscriptionSessions = TranscriptionSessions; + +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class Sessions extends APIResource { + /** + * Create a ChatKit session + * + * @example + * ```ts + * const chatSession = + * await client.beta.chatkit.sessions.create({ + * user: 'x', + * workflow: { id: 'id' }, + * }); + * ``` + */ + create(body, options) { + return this._client.post('/chatkit/sessions', { + body, + ...options, + headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]), + }); + } + /** + * Cancel a ChatKit session + * + * @example + * ```ts + * const chatSession = + * await client.beta.chatkit.sessions.cancel('cksess_123'); + * ``` + */ + cancel(sessionID, options) { + return this._client.post(path `/chatkit/sessions/${sessionID}/cancel`, { + ...options, + headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]), + }); + } +} + +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +let Threads$1 = class Threads extends APIResource { + /** + * Retrieve a ChatKit thread + * + * @example + * ```ts + * const chatkitThread = + * await client.beta.chatkit.threads.retrieve('cthr_123'); + * ``` + */ + retrieve(threadID, options) { + return this._client.get(path `/chatkit/threads/${threadID}`, { + ...options, + headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]), + }); + } + /** + * List ChatKit threads + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const chatkitThread of client.beta.chatkit.threads.list()) { + * // ... + * } + * ``` + */ + list(query = {}, options) { + return this._client.getAPIList('/chatkit/threads', (ConversationCursorPage), { + query, + ...options, + headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]), + }); + } + /** + * Delete a ChatKit thread + * + * @example + * ```ts + * const thread = await client.beta.chatkit.threads.delete( + * 'cthr_123', + * ); + * ``` + */ + delete(threadID, options) { + return this._client.delete(path `/chatkit/threads/${threadID}`, { + ...options, + headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]), + }); + } + /** + * List ChatKit thread items + * + * @example + * ```ts + * // Automatically fetches more pages as needed. + * for await (const thread of client.beta.chatkit.threads.listItems( + * 'cthr_123', + * )) { + * // ... + * } + * ``` + */ + listItems(threadID, query = {}, options) { + return this._client.getAPIList(path `/chatkit/threads/${threadID}/items`, (ConversationCursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]) }); + } +}; + +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class ChatKit extends APIResource { + constructor() { + super(...arguments); + this.sessions = new Sessions(this._client); + this.threads = new Threads$1(this._client); + } } -Realtime.Sessions = Sessions; -Realtime.TranscriptionSessions = TranscriptionSessions; +ChatKit.Sessions = Sessions; +ChatKit.Threads = Threads$1; // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. /** @@ -56148,12 +56339,14 @@ Threads.Messages = Messages; class Beta extends APIResource { constructor() { super(...arguments); - this.realtime = new Realtime(this._client); + this.realtime = new Realtime$1(this._client); + this.chatkit = new ChatKit(this._client); this.assistants = new Assistants(this._client); this.threads = new Threads(this._client); } } -Beta.Realtime = Realtime; +Beta.Realtime = Realtime$1; +Beta.ChatKit = ChatKit; Beta.Assistants = Assistants; Beta.Threads = Threads; @@ -56259,6 +56452,74 @@ class Containers extends APIResource { } Containers.Files = Files$2; +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class Items extends APIResource { + /** + * Create items in a conversation with the given ID. + */ + create(conversationID, params, options) { + const { include, ...body } = params; + return this._client.post(path `/conversations/${conversationID}/items`, { + query: { include }, + body, + ...options, + }); + } + /** + * Get a single item from a conversation with the given IDs. + */ + retrieve(itemID, params, options) { + const { conversation_id, ...query } = params; + return this._client.get(path `/conversations/${conversation_id}/items/${itemID}`, { query, ...options }); + } + /** + * List all items for a conversation with the given ID. + */ + list(conversationID, query = {}, options) { + return this._client.getAPIList(path `/conversations/${conversationID}/items`, (ConversationCursorPage), { query, ...options }); + } + /** + * Delete an item from a conversation with the given IDs. + */ + delete(itemID, params, options) { + const { conversation_id } = params; + return this._client.delete(path `/conversations/${conversation_id}/items/${itemID}`, options); + } +} + +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class Conversations extends APIResource { + constructor() { + super(...arguments); + this.items = new Items(this._client); + } + /** + * Create a conversation. + */ + create(body = {}, options) { + return this._client.post('/conversations', { body, ...options }); + } + /** + * Get a conversation + */ + retrieve(conversationID, options) { + return this._client.get(path `/conversations/${conversationID}`, options); + } + /** + * Update a conversation + */ + update(conversationID, body, options) { + return this._client.post(path `/conversations/${conversationID}`, { body, ...options }); + } + /** + * Delete a conversation. Items in the conversation will not be deleted. + */ + delete(conversationID, options) { + return this._client.delete(path `/conversations/${conversationID}`, options); + } +} +Conversations.Items = Items; + // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. class Embeddings extends APIResource { /** @@ -56423,22 +56684,21 @@ let Files$1 = class Files extends APIResource { /** * Upload a file that can be used across various endpoints. Individual files can be * up to 512 MB, and the size of all files uploaded by one organization can be up - * to 100 GB. - * - * The Assistants API supports files up to 2 million tokens and of specific file - * types. See the - * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) for - * details. - * - * The Fine-tuning API only supports `.jsonl` files. The input also has certain - * required formats for fine-tuning - * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input) or - * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input) - * models. + * to 1 TB. * - * The Batch API only supports `.jsonl` files up to 200 MB in size. The input also - * has a specific required - * [format](https://platform.openai.com/docs/api-reference/batch/request-input). + * - The Assistants API supports files up to 2 million tokens and of specific file + * types. See the + * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) + * for details. + * - The Fine-tuning API only supports `.jsonl` files. The input also has certain + * required formats for fine-tuning + * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input) + * or + * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input) + * models. + * - The Batch API only supports `.jsonl` files up to 200 MB in size. The input + * also has a specific required + * [format](https://platform.openai.com/docs/api-reference/batch/request-input). * * Please [contact us](https://help.openai.com/) if you need to increase these * storage limits. @@ -56459,7 +56719,7 @@ let Files$1 = class Files extends APIResource { return this._client.getAPIList('/files', (CursorPage), { query, ...options }); } /** - * Delete a file. + * Delete a file and remove it from all vector stores. */ delete(fileID, options) { return this._client.delete(path `/files/${fileID}`, options); @@ -56846,6 +57106,101 @@ class Moderations extends APIResource { } } +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class Calls extends APIResource { + /** + * Accept an incoming SIP call and configure the realtime session that will handle + * it. + * + * @example + * ```ts + * await client.realtime.calls.accept('call_id', { + * type: 'realtime', + * }); + * ``` + */ + accept(callID, body, options) { + return this._client.post(path `/realtime/calls/${callID}/accept`, { + body, + ...options, + headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), + }); + } + /** + * End an active Realtime API call, whether it was initiated over SIP or WebRTC. + * + * @example + * ```ts + * await client.realtime.calls.hangup('call_id'); + * ``` + */ + hangup(callID, options) { + return this._client.post(path `/realtime/calls/${callID}/hangup`, { + ...options, + headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), + }); + } + /** + * Transfer an active SIP call to a new destination using the SIP REFER verb. + * + * @example + * ```ts + * await client.realtime.calls.refer('call_id', { + * target_uri: 'tel:+14155550123', + * }); + * ``` + */ + refer(callID, body, options) { + return this._client.post(path `/realtime/calls/${callID}/refer`, { + body, + ...options, + headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), + }); + } + /** + * Decline an incoming SIP call by returning a SIP status code to the caller. + * + * @example + * ```ts + * await client.realtime.calls.reject('call_id'); + * ``` + */ + reject(callID, body = {}, options) { + return this._client.post(path `/realtime/calls/${callID}/reject`, { + body, + ...options, + headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), + }); + } +} + +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class ClientSecrets extends APIResource { + /** + * Create a Realtime client secret with an associated session configuration. + * + * @example + * ```ts + * const clientSecret = + * await client.realtime.clientSecrets.create(); + * ``` + */ + create(body, options) { + return this._client.post('/realtime/client_secrets', { body, ...options }); + } +} + +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class Realtime extends APIResource { + constructor() { + super(...arguments); + this.clientSecrets = new ClientSecrets(this._client); + this.calls = new Calls(this._client); + } +} +Realtime.ClientSecrets = ClientSecrets; +Realtime.Calls = Calls; + function maybeParseResponse(response, params) { if (!params || !hasAutoParseableInput(params)) { return { @@ -57096,8 +57451,16 @@ class ResponseStream extends EventStream { if (!output) { throw new OpenAIError(`missing output at index ${event.output_index}`); } - if (output.type === 'message') { - output.content.push(event.part); + const type = output.type; + const part = event.part; + if (type === 'message' && part.type !== 'reasoning_text') { + output.content.push(part); + } + else if (type === 'reasoning' && part.type === 'reasoning_text') { + if (!output.content) { + output.content = []; + } + output.content.push(part); } break; } @@ -57128,6 +57491,23 @@ class ResponseStream extends EventStream { } break; } + case 'response.reasoning_text.delta': { + const output = snapshot.output[event.output_index]; + if (!output) { + throw new OpenAIError(`missing output at index ${event.output_index}`); + } + if (output.type === 'reasoning') { + const content = output.content?.[event.content_index]; + if (!content) { + throw new OpenAIError(`missing content at index ${event.content_index}`); + } + if (content.type !== 'reasoning_text') { + throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`); + } + content.text += event.delta; + } + break; + } case 'response.completed': { __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response); break; @@ -57221,11 +57601,27 @@ class InputItems extends APIResource { } } +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class InputTokens extends APIResource { + /** + * Get input token counts + * + * @example + * ```ts + * const response = await client.responses.inputTokens.count(); + * ``` + */ + count(body = {}, options) { + return this._client.post('/responses/input_tokens', { body, ...options }); + } +} + // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. class Responses extends APIResource { constructor() { super(...arguments); this.inputItems = new InputItems(this._client); + this.inputTokens = new InputTokens(this._client); } create(body, options) { return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => { @@ -57291,6 +57687,7 @@ class Responses extends APIResource { } } Responses.InputItems = InputItems; +Responses.InputTokens = InputTokens; // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. class Parts extends APIResource { @@ -57718,6 +58115,51 @@ class VectorStores extends APIResource { VectorStores.Files = Files; VectorStores.FileBatches = FileBatches; +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. +class Videos extends APIResource { + /** + * Create a video + */ + create(body, options) { + return this._client.post('/videos', maybeMultipartFormRequestOptions({ body, ...options }, this._client)); + } + /** + * Retrieve a video + */ + retrieve(videoID, options) { + return this._client.get(path `/videos/${videoID}`, options); + } + /** + * List videos + */ + list(query = {}, options) { + return this._client.getAPIList('/videos', (ConversationCursorPage), { query, ...options }); + } + /** + * Delete a video + */ + delete(videoID, options) { + return this._client.delete(path `/videos/${videoID}`, options); + } + /** + * Download video content + */ + downloadContent(videoID, query = {}, options) { + return this._client.get(path `/videos/${videoID}/content`, { + query, + ...options, + headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]), + __binaryResponse: true, + }); + } + /** + * Create a video remix + */ + remix(videoID, body, options) { + return this._client.post(path `/videos/${videoID}/remix`, maybeMultipartFormRequestOptions({ body, ...options }, this._client)); + } +} + // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. var _Webhooks_instances, _Webhooks_validateSecret, _Webhooks_getRequiredHeader; class Webhooks extends APIResource { @@ -57852,10 +58294,13 @@ class OpenAI { this.batches = new Batches(this); this.uploads = new Uploads(this); this.responses = new Responses(this); + this.realtime = new Realtime(this); + this.conversations = new Conversations(this); this.evals = new Evals(this); this.containers = new Containers(this); + this.videos = new Videos(this); if (apiKey === undefined) { - throw new OpenAIError("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' })."); + throw new OpenAIError('Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.'); } const options = { apiKey, @@ -57883,7 +58328,7 @@ class OpenAI { this.fetch = options.fetch ?? getDefaultFetch(); __classPrivateFieldSet(this, _OpenAI_encoder, FallbackEncoder); this._options = options; - this.apiKey = apiKey; + this.apiKey = typeof apiKey === 'string' ? apiKey : 'Missing Key'; this.organization = organization; this.project = project; this.webhookSecret = webhookSecret; @@ -57930,6 +58375,27 @@ class OpenAI { makeStatusError(status, error, message, headers) { return APIError.generate(status, error, message, headers); } + async _callApiKey() { + const apiKey = this._options.apiKey; + if (typeof apiKey !== 'function') + return false; + let token; + try { + token = await apiKey(); + } + catch (err) { + if (err instanceof OpenAIError) + throw err; + throw new OpenAIError(`Failed to get token from 'apiKey' function: ${err.message}`, + // @ts-ignore + { cause: err }); + } + if (typeof token !== 'string' || !token) { + throw new OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${token}`); + } + this.apiKey = token; + return true; + } buildURL(path, query, defaultBaseURL) { const baseURL = (!__classPrivateFieldGet(this, _OpenAI_instances, "m", _OpenAI_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL; const url = isAbsoluteURL(path) ? @@ -57947,7 +58413,9 @@ class OpenAI { /** * Used as a callback for mutating the given `FinalRequestOptions` object. */ - async prepareOptions(options) { } + async prepareOptions(options) { + await this._callApiKey(); + } /** * Used as a callback for mutating the given `RequestInit` object. * @@ -58006,7 +58474,7 @@ class OpenAI { const controller = new AbortController(); const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError); const headersTime = Date.now(); - if (response instanceof Error) { + if (response instanceof globalThis.Error) { const retryMessage = `retrying, ${retriesRemaining} attempts remaining`; if (options.signal?.aborted) { throw new APIUserAbortError(); @@ -58242,7 +58710,7 @@ class OpenAI { // Preserve legacy string encoding behavior for now headers.values.has('content-type')) || // `Blob` is superset of `File` - body instanceof Blob || + (globalThis.Blob && body instanceof globalThis.Blob) || // `FormData` -> `multipart/form-data` body instanceof FormData || // `URLSearchParams` -> `application/x-www-form-urlencoded` @@ -58297,8 +58765,11 @@ OpenAI.Beta = Beta; OpenAI.Batches = Batches; OpenAI.Uploads = Uploads; OpenAI.Responses = Responses; +OpenAI.Realtime = Realtime; +OpenAI.Conversations = Conversations; OpenAI.Evals = Evals; OpenAI.Containers = Containers; +OpenAI.Videos = Videos; /** * Simple one-shot inference without tools diff --git a/dist/index.js.map b/dist/index.js.map index 05e2191..c7b9499 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/@actions/core/lib/utils.js","../node_modules/@actions/core/lib/command.js","../node_modules/@actions/core/lib/file-command.js","../node_modules/@actions/http-client/lib/proxy.js","../node_modules/tunnel/lib/tunnel.js","../node_modules/tunnel/index.js","../node_modules/undici/lib/core/symbols.js","../node_modules/undici/lib/core/errors.js","../node_modules/undici/lib/core/constants.js","../node_modules/undici/lib/core/util.js","../node_modules/undici/lib/timers.js","../node_modules/@fastify/busboy/deps/streamsearch/sbmh.js","../node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js","../node_modules/@fastify/busboy/lib/utils/getLimit.js","../node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js","../node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js","../node_modules/@fastify/busboy/lib/utils/decodeText.js","../node_modules/@fastify/busboy/lib/utils/parseParams.js","../node_modules/@fastify/busboy/lib/utils/basename.js","../node_modules/@fastify/busboy/lib/types/multipart.js","../node_modules/@fastify/busboy/lib/utils/Decoder.js","../node_modules/@fastify/busboy/lib/types/urlencoded.js","../node_modules/@fastify/busboy/lib/main.js","../node_modules/undici/lib/fetch/constants.js","../node_modules/undici/lib/fetch/global.js","../node_modules/undici/lib/fetch/util.js","../node_modules/undici/lib/fetch/symbols.js","../node_modules/undici/lib/fetch/webidl.js","../node_modules/undici/lib/fetch/dataURL.js","../node_modules/undici/lib/fetch/file.js","../node_modules/undici/lib/fetch/formdata.js","../node_modules/undici/lib/fetch/body.js","../node_modules/undici/lib/core/request.js","../node_modules/undici/lib/dispatcher.js","../node_modules/undici/lib/dispatcher-base.js","../node_modules/undici/lib/core/connect.js","../node_modules/undici/lib/llhttp/utils.js","../node_modules/undici/lib/llhttp/constants.js","../node_modules/undici/lib/handler/RedirectHandler.js","../node_modules/undici/lib/interceptor/redirectInterceptor.js","../node_modules/undici/lib/llhttp/llhttp-wasm.js","../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js","../node_modules/undici/lib/client.js","../node_modules/undici/lib/node/fixed-queue.js","../node_modules/undici/lib/pool-stats.js","../node_modules/undici/lib/pool-base.js","../node_modules/undici/lib/pool.js","../node_modules/undici/lib/balanced-pool.js","../node_modules/undici/lib/compat/dispatcher-weakref.js","../node_modules/undici/lib/agent.js","../node_modules/undici/lib/api/readable.js","../node_modules/undici/lib/api/util.js","../node_modules/undici/lib/api/abort-signal.js","../node_modules/undici/lib/api/api-request.js","../node_modules/undici/lib/api/api-stream.js","../node_modules/undici/lib/api/api-pipeline.js","../node_modules/undici/lib/api/api-upgrade.js","../node_modules/undici/lib/api/api-connect.js","../node_modules/undici/lib/api/index.js","../node_modules/undici/lib/mock/mock-errors.js","../node_modules/undici/lib/mock/mock-symbols.js","../node_modules/undici/lib/mock/mock-utils.js","../node_modules/undici/lib/mock/mock-interceptor.js","../node_modules/undici/lib/mock/mock-client.js","../node_modules/undici/lib/mock/mock-pool.js","../node_modules/undici/lib/mock/pluralizer.js","../node_modules/undici/lib/mock/pending-interceptors-formatter.js","../node_modules/undici/lib/mock/mock-agent.js","../node_modules/undici/lib/proxy-agent.js","../node_modules/undici/lib/handler/RetryHandler.js","../node_modules/undici/lib/global.js","../node_modules/undici/lib/handler/DecoratorHandler.js","../node_modules/undici/lib/fetch/headers.js","../node_modules/undici/lib/fetch/response.js","../node_modules/undici/lib/fetch/request.js","../node_modules/undici/lib/fetch/index.js","../node_modules/undici/lib/fileapi/symbols.js","../node_modules/undici/lib/fileapi/progressevent.js","../node_modules/undici/lib/fileapi/encoding.js","../node_modules/undici/lib/fileapi/util.js","../node_modules/undici/lib/fileapi/filereader.js","../node_modules/undici/lib/cache/symbols.js","../node_modules/undici/lib/cache/util.js","../node_modules/undici/lib/cache/cache.js","../node_modules/undici/lib/cache/cachestorage.js","../node_modules/undici/lib/cookies/constants.js","../node_modules/undici/lib/cookies/util.js","../node_modules/undici/lib/cookies/parse.js","../node_modules/undici/lib/cookies/index.js","../node_modules/undici/lib/websocket/constants.js","../node_modules/undici/lib/websocket/symbols.js","../node_modules/undici/lib/websocket/events.js","../node_modules/undici/lib/websocket/util.js","../node_modules/undici/lib/websocket/connection.js","../node_modules/undici/lib/websocket/frame.js","../node_modules/undici/lib/websocket/receiver.js","../node_modules/undici/lib/websocket/websocket.js","../node_modules/undici/index.js","../node_modules/@actions/http-client/lib/index.js","../node_modules/@actions/http-client/lib/auth.js","../node_modules/@actions/core/lib/oidc-utils.js","../node_modules/@actions/core/lib/summary.js","../node_modules/@actions/core/lib/path-utils.js","../node_modules/@actions/io/lib/io-util.js","../node_modules/@actions/io/lib/io.js","../node_modules/@actions/exec/lib/toolrunner.js","../node_modules/@actions/exec/lib/exec.js","../node_modules/@actions/core/lib/platform.js","../node_modules/@actions/core/lib/core.js","../node_modules/tmp/lib/tmp.js","../node_modules/zod/v4/core/core.js","../node_modules/zod/v4/core/util.js","../node_modules/zod/v4/core/errors.js","../node_modules/zod/v4/core/parse.js","../node_modules/zod/v4/core/regexes.js","../node_modules/zod/v4/core/checks.js","../node_modules/zod/v4/core/doc.js","../node_modules/zod/v4/core/versions.js","../node_modules/zod/v4/core/schemas.js","../node_modules/zod/v4/core/registries.js","../node_modules/zod/v4/core/api.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js","../node_modules/zod/v4/classic/iso.js","../node_modules/zod/v4/classic/errors.js","../node_modules/zod/v4/classic/parse.js","../node_modules/zod/v4/classic/schemas.js","../node_modules/zod/v4/classic/compat.js","../node_modules/zod/v4/classic/coerce.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js","../node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/code.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/scope.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/util.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/names.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/errors.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/boolSchema.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/rules.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/applicability.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/dataType.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/defaults.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/code.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/keyword.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/subschema.js","../node_modules/fast-deep-equal/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/resolve.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/validation_error.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/ref_error.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/index.js","../node_modules/fast-uri/lib/utils.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/uri.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/core.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/id.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/ref.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/ucs2length.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/pattern.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/required.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/equal.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/const.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/enum.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/contains.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/properties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/not.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/if.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/format.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/metadata.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/draft7.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/types.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/ajv.js","../node_modules/ajv-formats/dist/formats.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/code.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/scope.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/util.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/names.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/errors.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/boolSchema.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/rules.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/applicability.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/dataType.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/defaults.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/code.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/keyword.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/subschema.js","../node_modules/ajv-formats/node_modules/json-schema-traverse/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/resolve.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/validation_error.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/ref_error.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/uri.js","../node_modules/ajv-formats/node_modules/ajv/dist/core.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/id.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/ref.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/ucs2length.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/pattern.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/required.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/equal.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/const.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/enum.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/contains.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/properties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/not.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/if.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/format.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/metadata.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/draft7.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/types.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/ajv.js","../node_modules/ajv-formats/dist/limit.js","../node_modules/ajv-formats/dist/index.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js","../node_modules/pkce-challenge/dist/index.node.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js","../node_modules/eventsource-parser/dist/index.js","../node_modules/eventsource-parser/dist/stream.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js","../src/mcp.ts","../node_modules/openai/internal/tslib.mjs","../node_modules/openai/internal/utils/uuid.mjs","../node_modules/openai/internal/errors.mjs","../node_modules/openai/core/error.mjs","../node_modules/openai/internal/utils/values.mjs","../node_modules/openai/internal/utils/sleep.mjs","../node_modules/openai/version.mjs","../node_modules/openai/internal/detect-platform.mjs","../node_modules/openai/internal/shims.mjs","../node_modules/openai/internal/request-options.mjs","../node_modules/openai/internal/qs/formats.mjs","../node_modules/openai/internal/qs/utils.mjs","../node_modules/openai/internal/qs/stringify.mjs","../node_modules/openai/internal/utils/bytes.mjs","../node_modules/openai/internal/decoders/line.mjs","../node_modules/openai/internal/utils/log.mjs","../node_modules/openai/core/streaming.mjs","../node_modules/openai/internal/parse.mjs","../node_modules/openai/core/api-promise.mjs","../node_modules/openai/core/pagination.mjs","../node_modules/openai/internal/uploads.mjs","../node_modules/openai/internal/to-file.mjs","../node_modules/openai/core/resource.mjs","../node_modules/openai/internal/utils/path.mjs","../node_modules/openai/resources/chat/completions/messages.mjs","../node_modules/openai/lib/RunnableFunction.mjs","../node_modules/openai/lib/chatCompletionUtils.mjs","../node_modules/openai/lib/EventStream.mjs","../node_modules/openai/lib/parser.mjs","../node_modules/openai/lib/AbstractChatCompletionRunner.mjs","../node_modules/openai/lib/ChatCompletionRunner.mjs","../node_modules/openai/_vendor/partial-json-parser/parser.mjs","../node_modules/openai/lib/ChatCompletionStream.mjs","../node_modules/openai/lib/ChatCompletionStreamingRunner.mjs","../node_modules/openai/resources/chat/completions/completions.mjs","../node_modules/openai/resources/chat/chat.mjs","../node_modules/openai/internal/headers.mjs","../node_modules/openai/resources/audio/speech.mjs","../node_modules/openai/resources/audio/transcriptions.mjs","../node_modules/openai/resources/audio/translations.mjs","../node_modules/openai/resources/audio/audio.mjs","../node_modules/openai/resources/batches.mjs","../node_modules/openai/resources/beta/assistants.mjs","../node_modules/openai/resources/beta/realtime/sessions.mjs","../node_modules/openai/resources/beta/realtime/transcription-sessions.mjs","../node_modules/openai/resources/beta/realtime/realtime.mjs","../node_modules/openai/resources/beta/threads/messages.mjs","../node_modules/openai/resources/beta/threads/runs/steps.mjs","../node_modules/openai/internal/utils/base64.mjs","../node_modules/openai/internal/utils/env.mjs","../node_modules/openai/lib/AssistantStream.mjs","../node_modules/openai/resources/beta/threads/runs/runs.mjs","../node_modules/openai/resources/beta/threads/threads.mjs","../node_modules/openai/resources/beta/beta.mjs","../node_modules/openai/resources/completions.mjs","../node_modules/openai/resources/containers/files/content.mjs","../node_modules/openai/resources/containers/files/files.mjs","../node_modules/openai/resources/containers/containers.mjs","../node_modules/openai/resources/embeddings.mjs","../node_modules/openai/resources/evals/runs/output-items.mjs","../node_modules/openai/resources/evals/runs/runs.mjs","../node_modules/openai/resources/evals/evals.mjs","../node_modules/openai/resources/files.mjs","../node_modules/openai/resources/fine-tuning/methods.mjs","../node_modules/openai/resources/fine-tuning/alpha/graders.mjs","../node_modules/openai/resources/fine-tuning/alpha/alpha.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/jobs.mjs","../node_modules/openai/resources/fine-tuning/fine-tuning.mjs","../node_modules/openai/resources/graders/grader-models.mjs","../node_modules/openai/resources/graders/graders.mjs","../node_modules/openai/resources/images.mjs","../node_modules/openai/resources/models.mjs","../node_modules/openai/resources/moderations.mjs","../node_modules/openai/lib/ResponsesParser.mjs","../node_modules/openai/lib/responses/ResponseStream.mjs","../node_modules/openai/resources/responses/input-items.mjs","../node_modules/openai/resources/responses/responses.mjs","../node_modules/openai/resources/uploads/parts.mjs","../node_modules/openai/resources/uploads/uploads.mjs","../node_modules/openai/lib/Util.mjs","../node_modules/openai/resources/vector-stores/file-batches.mjs","../node_modules/openai/resources/vector-stores/files.mjs","../node_modules/openai/resources/vector-stores/vector-stores.mjs","../node_modules/openai/resources/webhooks.mjs","../node_modules/openai/client.mjs","../src/inference.ts","../src/helpers.ts","../node_modules/js-yaml/dist/js-yaml.mjs","../src/prompt.ts","../src/main.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${crypto.randomUUID()}`;\n const convertedValue = (0, utils_1.toCommandValue)(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n try {\n return new DecodedURL(proxyVar);\n }\n catch (_a) {\n if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))\n return new DecodedURL(`http://${proxyVar}`);\n }\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const reqHost = reqUrl.hostname;\n if (isLoopbackAddress(reqHost)) {\n return true;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperNoProxyItem === '*' ||\n upperReqHosts.some(x => x === upperNoProxyItem ||\n x.endsWith(`.${upperNoProxyItem}`) ||\n (upperNoProxyItem.startsWith('.') &&\n x.endsWith(`${upperNoProxyItem}`)))) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\nfunction isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return (hostLower === 'localhost' ||\n hostLower.startsWith('127.') ||\n hostLower.startsWith('[::1]') ||\n hostLower.startsWith('[0:0:0:0:0:0:0:1]'));\n}\nclass DecodedURL extends URL {\n constructor(url, base) {\n super(url, base);\n this._decodedUsername = decodeURIComponent(super.username);\n this._decodedPassword = decodeURIComponent(super.password);\n }\n get username() {\n return this._decodedUsername;\n }\n get password() {\n return this._decodedPassword;\n }\n}\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","module.exports = require('./lib/tunnel');\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kHTTP2BuildRequest: Symbol('http2 build request'),\n kHTTP1BuildRequest: Symbol('http1 build request'),\n kHTTP2CopyHeaders: Symbol('http2 copy headers'),\n kHTTPConnVersion: Symbol('http connection version'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable')\n}\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n Error.captureStackTrace(this, RequestRetryError)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError\n}\n","'use strict'\n\n/** @type {Record} */\nconst headerNameLowerCasedRecord = {}\n\n// https://developer.mozilla.org/docs/Web/HTTP/Headers\nconst wellknownHeaderNames = [\n 'Accept',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Alt-Svc',\n 'Alt-Used',\n 'Authorization',\n 'Cache-Control',\n 'Clear-Site-Data',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-Range',\n 'Content-Security-Policy',\n 'Content-Security-Policy-Report-Only',\n 'Content-Type',\n 'Cookie',\n 'Cross-Origin-Embedder-Policy',\n 'Cross-Origin-Opener-Policy',\n 'Cross-Origin-Resource-Policy',\n 'Date',\n 'Device-Memory',\n 'Downlink',\n 'ECT',\n 'ETag',\n 'Expect',\n 'Expect-CT',\n 'Expires',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Link',\n 'Location',\n 'Max-Forwards',\n 'Origin',\n 'Permissions-Policy',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'RTT',\n 'Range',\n 'Referer',\n 'Referrer-Policy',\n 'Refresh',\n 'Retry-After',\n 'Sec-WebSocket-Accept',\n 'Sec-WebSocket-Extensions',\n 'Sec-WebSocket-Key',\n 'Sec-WebSocket-Protocol',\n 'Sec-WebSocket-Version',\n 'Server',\n 'Server-Timing',\n 'Service-Worker-Allowed',\n 'Service-Worker-Navigation-Preload',\n 'Set-Cookie',\n 'SourceMap',\n 'Strict-Transport-Security',\n 'Supports-Loading-Mode',\n 'TE',\n 'Timing-Allow-Origin',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'Upgrade-Insecure-Requests',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'WWW-Authenticate',\n 'X-Content-Type-Options',\n 'X-DNS-Prefetch-Control',\n 'X-Frame-Options',\n 'X-Permitted-Cross-Domain-Policies',\n 'X-Powered-By',\n 'X-Requested-With',\n 'X-XSS-Protection'\n]\n\nfor (let i = 0; i < wellknownHeaderNames.length; ++i) {\n const key = wellknownHeaderNames[i]\n const lowerCasedKey = key.toLowerCase()\n headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] =\n lowerCasedKey\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(headerNameLowerCasedRecord, null)\n\nmodule.exports = {\n wellknownHeaderNames,\n headerNameLowerCasedRecord\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substring(1, idx)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substring(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (stream == null || !isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\n/**\n * Retrieves a header name and returns its lowercase value.\n * @param {string | Buffer} value Header name\n * @returns {string}\n */\nfunction headerNameToString (value) {\n return headerNameLowerCasedRecord[value] || value.toLowerCase()\n}\n\nfunction parseHeaders (headers, obj = {}) {\n // For H2 support\n if (!Array.isArray(headers)) return headers\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1].map(x => x.toString('utf8'))\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nasync function * convertIterableToBuffer (iterable) {\n for await (const chunk of iterable) {\n yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n return ReadableStream.from(convertIterableToBuffer(iterable))\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nfunction addAbortListener (signal, listener) {\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\n// Parsed accordingly to RFC 9110\n// https://www.rfc-editor.org/rfc/rfc9110#field.content-range\nfunction parseRangeHeader (range) {\n if (range == null || range === '') return { start: 0, end: null, size: null }\n\n const m = range ? range.match(/^bytes (\\d+)-(\\d+)\\/(\\d+)?$/) : null\n return m\n ? {\n start: parseInt(m[1]),\n end: m[2] ? parseInt(m[2]) : null,\n size: m[3] ? parseInt(m[3]) : null\n }\n : null\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n headerNameToString,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n parseRangeHeader,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13),\n safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n}\n","'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n","'use strict'\n\n/**\n * Copyright Brian White. All rights reserved.\n *\n * @see https://github.com/mscdex/streamsearch\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n */\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\n\nfunction SBMH (needle) {\n if (typeof needle === 'string') {\n needle = Buffer.from(needle)\n }\n\n if (!Buffer.isBuffer(needle)) {\n throw new TypeError('The needle has to be a String or a Buffer.')\n }\n\n const needleLength = needle.length\n\n if (needleLength === 0) {\n throw new Error('The needle cannot be an empty String/Buffer.')\n }\n\n if (needleLength > 256) {\n throw new Error('The needle cannot have a length bigger than 256.')\n }\n\n this.maxMatches = Infinity\n this.matches = 0\n\n this._occ = new Array(256)\n .fill(needleLength) // Initialize occurrence table.\n this._lookbehind_size = 0\n this._needle = needle\n this._bufpos = 0\n\n this._lookbehind = Buffer.alloc(needleLength)\n\n // Populate occurrence table with analysis of the needle,\n // ignoring last letter.\n for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var\n this._occ[needle[i]] = needleLength - 1 - i\n }\n}\ninherits(SBMH, EventEmitter)\n\nSBMH.prototype.reset = function () {\n this._lookbehind_size = 0\n this.matches = 0\n this._bufpos = 0\n}\n\nSBMH.prototype.push = function (chunk, pos) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk, 'binary')\n }\n const chlen = chunk.length\n this._bufpos = pos || 0\n let r\n while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }\n return r\n}\n\nSBMH.prototype._sbmh_feed = function (data) {\n const len = data.length\n const needle = this._needle\n const needleLength = needle.length\n const lastNeedleChar = needle[needleLength - 1]\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehind_size - 2]\n let pos = -this._lookbehind_size\n let ch\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= len - needleLength) {\n ch = this._sbmh_lookup_char(data, pos + needleLength - 1)\n\n if (\n ch === lastNeedleChar &&\n this._sbmh_memcmp(data, pos, needleLength - 1)\n ) {\n this._lookbehind_size = 0\n ++this.matches\n this.emit('info', true)\n\n return (this._bufpos = pos + needleLength)\n }\n pos += this._occ[ch]\n }\n\n // No match.\n\n if (pos < 0) {\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }\n }\n\n if (pos >= 0) {\n // Discard lookbehind buffer.\n this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)\n this._lookbehind_size = 0\n } else {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = this._lookbehind_size + pos\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n this.emit('info', false, this._lookbehind, 0, bytesToCutOff)\n }\n\n this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,\n this._lookbehind_size - bytesToCutOff)\n this._lookbehind_size -= bytesToCutOff\n\n data.copy(this._lookbehind, this._lookbehind_size)\n this._lookbehind_size += len\n\n this._bufpos = len\n return len\n }\n }\n\n pos += (pos >= 0) * this._bufpos\n\n // Lookbehind buffer is now empty. We only need to check if the\n // needle is in the haystack.\n if (data.indexOf(needle, pos) !== -1) {\n pos = data.indexOf(needle, pos)\n ++this.matches\n if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }\n\n return (this._bufpos = pos + needleLength)\n } else {\n pos = len - needleLength\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (\n pos < len &&\n (\n data[pos] !== needle[0] ||\n (\n (Buffer.compare(\n data.subarray(pos, pos + len - pos),\n needle.subarray(0, len - pos)\n ) !== 0)\n )\n )\n ) {\n ++pos\n }\n if (pos < len) {\n data.copy(this._lookbehind, 0, pos, pos + (len - pos))\n this._lookbehind_size = len - pos\n }\n\n // Everything until pos is guaranteed not to contain needle data.\n if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }\n\n this._bufpos = len\n return len\n}\n\nSBMH.prototype._sbmh_lookup_char = function (data, pos) {\n return (pos < 0)\n ? this._lookbehind[this._lookbehind_size + pos]\n : data[pos]\n}\n\nSBMH.prototype._sbmh_memcmp = function (data, pos, len) {\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }\n }\n return true\n}\n\nmodule.exports = SBMH\n","'use strict'\n\nconst inherits = require('node:util').inherits\nconst ReadableStream = require('node:stream').Readable\n\nfunction PartStream (opts) {\n ReadableStream.call(this, opts)\n}\ninherits(PartStream, ReadableStream)\n\nPartStream.prototype._read = function (n) {}\n\nmodule.exports = PartStream\n","'use strict'\n\nmodule.exports = function getLimit (limits, name, defaultLimit) {\n if (\n !limits ||\n limits[name] === undefined ||\n limits[name] === null\n ) { return defaultLimit }\n\n if (\n typeof limits[name] !== 'number' ||\n isNaN(limits[name])\n ) { throw new TypeError('Limit ' + name + ' is not a valid number') }\n\n return limits[name]\n}\n","'use strict'\n\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\nconst getLimit = require('../../../lib/utils/getLimit')\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst B_DCRLF = Buffer.from('\\r\\n\\r\\n')\nconst RE_CRLF = /\\r\\n/g\nconst RE_HDR = /^([^:]+):[ \\t]?([\\x00-\\xFF]+)?$/ // eslint-disable-line no-control-regex\n\nfunction HeaderParser (cfg) {\n EventEmitter.call(this)\n\n cfg = cfg || {}\n const self = this\n this.nread = 0\n this.maxed = false\n this.npairs = 0\n this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)\n this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)\n this.buffer = ''\n this.header = {}\n this.finished = false\n this.ss = new StreamSearch(B_DCRLF)\n this.ss.on('info', function (isMatch, data, start, end) {\n if (data && !self.maxed) {\n if (self.nread + end - start >= self.maxHeaderSize) {\n end = self.maxHeaderSize - self.nread + start\n self.nread = self.maxHeaderSize\n self.maxed = true\n } else { self.nread += (end - start) }\n\n self.buffer += data.toString('binary', start, end)\n }\n if (isMatch) { self._finish() }\n })\n}\ninherits(HeaderParser, EventEmitter)\n\nHeaderParser.prototype.push = function (data) {\n const r = this.ss.push(data)\n if (this.finished) { return r }\n}\n\nHeaderParser.prototype.reset = function () {\n this.finished = false\n this.buffer = ''\n this.header = {}\n this.ss.reset()\n}\n\nHeaderParser.prototype._finish = function () {\n if (this.buffer) { this._parseHeader() }\n this.ss.matches = this.ss.maxMatches\n const header = this.header\n this.header = {}\n this.buffer = ''\n this.finished = true\n this.nread = this.npairs = 0\n this.maxed = false\n this.emit('header', header)\n}\n\nHeaderParser.prototype._parseHeader = function () {\n if (this.npairs === this.maxHeaderPairs) { return }\n\n const lines = this.buffer.split(RE_CRLF)\n const len = lines.length\n let m, h\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (lines[i].length === 0) { continue }\n if (lines[i][0] === '\\t' || lines[i][0] === ' ') {\n // folded header content\n // RFC2822 says to just remove the CRLF and not the whitespace following\n // it, so we follow the RFC and include the leading whitespace ...\n if (h) {\n this.header[h][this.header[h].length - 1] += lines[i]\n continue\n }\n }\n\n const posColon = lines[i].indexOf(':')\n if (\n posColon === -1 ||\n posColon === 0\n ) {\n return\n }\n m = RE_HDR.exec(lines[i])\n h = m[1].toLowerCase()\n this.header[h] = this.header[h] || []\n this.header[h].push((m[2] || ''))\n if (++this.npairs === this.maxHeaderPairs) { break }\n }\n}\n\nmodule.exports = HeaderParser\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst inherits = require('node:util').inherits\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst PartStream = require('./PartStream')\nconst HeaderParser = require('./HeaderParser')\n\nconst DASH = 45\nconst B_ONEDASH = Buffer.from('-')\nconst B_CRLF = Buffer.from('\\r\\n')\nconst EMPTY_FN = function () {}\n\nfunction Dicer (cfg) {\n if (!(this instanceof Dicer)) { return new Dicer(cfg) }\n WritableStream.call(this, cfg)\n\n if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }\n\n if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }\n\n this._headerFirst = cfg.headerFirst\n\n this._dashes = 0\n this._parts = 0\n this._finished = false\n this._realFinish = false\n this._isPreamble = true\n this._justMatched = false\n this._firstWrite = true\n this._inHeader = true\n this._part = undefined\n this._cb = undefined\n this._ignoreData = false\n this._partOpts = { highWaterMark: cfg.partHwm }\n this._pause = false\n\n const self = this\n this._hparser = new HeaderParser(cfg)\n this._hparser.on('header', function (header) {\n self._inHeader = false\n self._part.emit('header', header)\n })\n}\ninherits(Dicer, WritableStream)\n\nDicer.prototype.emit = function (ev) {\n if (ev === 'finish' && !this._realFinish) {\n if (!this._finished) {\n const self = this\n process.nextTick(function () {\n self.emit('error', new Error('Unexpected end of multipart data'))\n if (self._part && !self._ignoreData) {\n const type = (self._isPreamble ? 'Preamble' : 'Part')\n self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))\n self._part.push(null)\n process.nextTick(function () {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n return\n }\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n }\n } else { WritableStream.prototype.emit.apply(this, arguments) }\n}\n\nDicer.prototype._write = function (data, encoding, cb) {\n // ignore unexpected data (e.g. extra trailer data after finished)\n if (!this._hparser && !this._bparser) { return cb() }\n\n if (this._headerFirst && this._isPreamble) {\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() }\n }\n const r = this._hparser.push(data)\n if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }\n }\n\n // allows for \"easier\" testing\n if (this._firstWrite) {\n this._bparser.push(B_CRLF)\n this._firstWrite = false\n }\n\n this._bparser.push(data)\n\n if (this._pause) { this._cb = cb } else { cb() }\n}\n\nDicer.prototype.reset = function () {\n this._part = undefined\n this._bparser = undefined\n this._hparser = undefined\n}\n\nDicer.prototype.setBoundary = function (boundary) {\n const self = this\n this._bparser = new StreamSearch('\\r\\n--' + boundary)\n this._bparser.on('info', function (isMatch, data, start, end) {\n self._oninfo(isMatch, data, start, end)\n })\n}\n\nDicer.prototype._ignore = function () {\n if (this._part && !this._ignoreData) {\n this._ignoreData = true\n this._part.on('error', EMPTY_FN)\n // we must perform some kind of read on the stream even though we are\n // ignoring the data, otherwise node's Readable stream will not emit 'end'\n // after pushing null to the stream\n this._part.resume()\n }\n}\n\nDicer.prototype._oninfo = function (isMatch, data, start, end) {\n let buf; const self = this; let i = 0; let r; let shouldWriteMore = true\n\n if (!this._part && this._justMatched && data) {\n while (this._dashes < 2 && (start + i) < end) {\n if (data[start + i] === DASH) {\n ++i\n ++this._dashes\n } else {\n if (this._dashes) { buf = B_ONEDASH }\n this._dashes = 0\n break\n }\n }\n if (this._dashes === 2) {\n if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) }\n this.reset()\n this._finished = true\n // no more parts will be added\n if (self._parts === 0) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n }\n }\n if (this._dashes) { return }\n }\n if (this._justMatched) { this._justMatched = false }\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n this._part._read = function (n) {\n self._unpause()\n }\n if (this._isPreamble && this.listenerCount('preamble') !== 0) {\n this.emit('preamble', this._part)\n } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) {\n this.emit('part', this._part)\n } else {\n this._ignore()\n }\n if (!this._isPreamble) { this._inHeader = true }\n }\n if (data && start < end && !this._ignoreData) {\n if (this._isPreamble || !this._inHeader) {\n if (buf) { shouldWriteMore = this._part.push(buf) }\n shouldWriteMore = this._part.push(data.slice(start, end))\n if (!shouldWriteMore) { this._pause = true }\n } else if (!this._isPreamble && this._inHeader) {\n if (buf) { this._hparser.push(buf) }\n r = this._hparser.push(data.slice(start, end))\n if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }\n }\n }\n if (isMatch) {\n this._hparser.reset()\n if (this._isPreamble) { this._isPreamble = false } else {\n if (start !== end) {\n ++this._parts\n this._part.on('end', function () {\n if (--self._parts === 0) {\n if (self._finished) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n } else {\n self._unpause()\n }\n }\n })\n }\n }\n this._part.push(null)\n this._part = undefined\n this._ignoreData = false\n this._justMatched = true\n this._dashes = 0\n }\n}\n\nDicer.prototype._unpause = function () {\n if (!this._pause) { return }\n\n this._pause = false\n if (this._cb) {\n const cb = this._cb\n this._cb = undefined\n cb()\n }\n}\n\nmodule.exports = Dicer\n","'use strict'\n\n// Node has always utf-8\nconst utf8Decoder = new TextDecoder('utf-8')\nconst textDecoders = new Map([\n ['utf-8', utf8Decoder],\n ['utf8', utf8Decoder]\n])\n\nfunction getDecoder (charset) {\n let lc\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le\n case 'base64':\n return decoders.base64\n default:\n if (lc === undefined) {\n lc = true\n charset = charset.toLowerCase()\n continue\n }\n return decoders.other.bind(charset)\n }\n }\n}\n\nconst decoders = {\n utf8: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.utf8Slice(0, data.length)\n },\n\n latin1: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n return data\n }\n return data.latin1Slice(0, data.length)\n },\n\n utf16le: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.ucs2Slice(0, data.length)\n },\n\n base64: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.base64Slice(0, data.length)\n },\n\n other: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n\n if (textDecoders.has(this.toString())) {\n try {\n return textDecoders.get(this).decode(data)\n } catch {}\n }\n return typeof data === 'string'\n ? data\n : data.toString()\n }\n}\n\nfunction decodeText (text, sourceEncoding, destEncoding) {\n if (text) {\n return getDecoder(destEncoding)(text, sourceEncoding)\n }\n return text\n}\n\nmodule.exports = decodeText\n","/* eslint-disable object-property-newline */\n'use strict'\n\nconst decodeText = require('./decodeText')\n\nconst RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g\n\nconst EncodedLookup = {\n '%00': '\\x00', '%01': '\\x01', '%02': '\\x02', '%03': '\\x03', '%04': '\\x04',\n '%05': '\\x05', '%06': '\\x06', '%07': '\\x07', '%08': '\\x08', '%09': '\\x09',\n '%0a': '\\x0a', '%0A': '\\x0a', '%0b': '\\x0b', '%0B': '\\x0b', '%0c': '\\x0c',\n '%0C': '\\x0c', '%0d': '\\x0d', '%0D': '\\x0d', '%0e': '\\x0e', '%0E': '\\x0e',\n '%0f': '\\x0f', '%0F': '\\x0f', '%10': '\\x10', '%11': '\\x11', '%12': '\\x12',\n '%13': '\\x13', '%14': '\\x14', '%15': '\\x15', '%16': '\\x16', '%17': '\\x17',\n '%18': '\\x18', '%19': '\\x19', '%1a': '\\x1a', '%1A': '\\x1a', '%1b': '\\x1b',\n '%1B': '\\x1b', '%1c': '\\x1c', '%1C': '\\x1c', '%1d': '\\x1d', '%1D': '\\x1d',\n '%1e': '\\x1e', '%1E': '\\x1e', '%1f': '\\x1f', '%1F': '\\x1f', '%20': '\\x20',\n '%21': '\\x21', '%22': '\\x22', '%23': '\\x23', '%24': '\\x24', '%25': '\\x25',\n '%26': '\\x26', '%27': '\\x27', '%28': '\\x28', '%29': '\\x29', '%2a': '\\x2a',\n '%2A': '\\x2a', '%2b': '\\x2b', '%2B': '\\x2b', '%2c': '\\x2c', '%2C': '\\x2c',\n '%2d': '\\x2d', '%2D': '\\x2d', '%2e': '\\x2e', '%2E': '\\x2e', '%2f': '\\x2f',\n '%2F': '\\x2f', '%30': '\\x30', '%31': '\\x31', '%32': '\\x32', '%33': '\\x33',\n '%34': '\\x34', '%35': '\\x35', '%36': '\\x36', '%37': '\\x37', '%38': '\\x38',\n '%39': '\\x39', '%3a': '\\x3a', '%3A': '\\x3a', '%3b': '\\x3b', '%3B': '\\x3b',\n '%3c': '\\x3c', '%3C': '\\x3c', '%3d': '\\x3d', '%3D': '\\x3d', '%3e': '\\x3e',\n '%3E': '\\x3e', '%3f': '\\x3f', '%3F': '\\x3f', '%40': '\\x40', '%41': '\\x41',\n '%42': '\\x42', '%43': '\\x43', '%44': '\\x44', '%45': '\\x45', '%46': '\\x46',\n '%47': '\\x47', '%48': '\\x48', '%49': '\\x49', '%4a': '\\x4a', '%4A': '\\x4a',\n '%4b': '\\x4b', '%4B': '\\x4b', '%4c': '\\x4c', '%4C': '\\x4c', '%4d': '\\x4d',\n '%4D': '\\x4d', '%4e': '\\x4e', '%4E': '\\x4e', '%4f': '\\x4f', '%4F': '\\x4f',\n '%50': '\\x50', '%51': '\\x51', '%52': '\\x52', '%53': '\\x53', '%54': '\\x54',\n '%55': '\\x55', '%56': '\\x56', '%57': '\\x57', '%58': '\\x58', '%59': '\\x59',\n '%5a': '\\x5a', '%5A': '\\x5a', '%5b': '\\x5b', '%5B': '\\x5b', '%5c': '\\x5c',\n '%5C': '\\x5c', '%5d': '\\x5d', '%5D': '\\x5d', '%5e': '\\x5e', '%5E': '\\x5e',\n '%5f': '\\x5f', '%5F': '\\x5f', '%60': '\\x60', '%61': '\\x61', '%62': '\\x62',\n '%63': '\\x63', '%64': '\\x64', '%65': '\\x65', '%66': '\\x66', '%67': '\\x67',\n '%68': '\\x68', '%69': '\\x69', '%6a': '\\x6a', '%6A': '\\x6a', '%6b': '\\x6b',\n '%6B': '\\x6b', '%6c': '\\x6c', '%6C': '\\x6c', '%6d': '\\x6d', '%6D': '\\x6d',\n '%6e': '\\x6e', '%6E': '\\x6e', '%6f': '\\x6f', '%6F': '\\x6f', '%70': '\\x70',\n '%71': '\\x71', '%72': '\\x72', '%73': '\\x73', '%74': '\\x74', '%75': '\\x75',\n '%76': '\\x76', '%77': '\\x77', '%78': '\\x78', '%79': '\\x79', '%7a': '\\x7a',\n '%7A': '\\x7a', '%7b': '\\x7b', '%7B': '\\x7b', '%7c': '\\x7c', '%7C': '\\x7c',\n '%7d': '\\x7d', '%7D': '\\x7d', '%7e': '\\x7e', '%7E': '\\x7e', '%7f': '\\x7f',\n '%7F': '\\x7f', '%80': '\\x80', '%81': '\\x81', '%82': '\\x82', '%83': '\\x83',\n '%84': '\\x84', '%85': '\\x85', '%86': '\\x86', '%87': '\\x87', '%88': '\\x88',\n '%89': '\\x89', '%8a': '\\x8a', '%8A': '\\x8a', '%8b': '\\x8b', '%8B': '\\x8b',\n '%8c': '\\x8c', '%8C': '\\x8c', '%8d': '\\x8d', '%8D': '\\x8d', '%8e': '\\x8e',\n '%8E': '\\x8e', '%8f': '\\x8f', '%8F': '\\x8f', '%90': '\\x90', '%91': '\\x91',\n '%92': '\\x92', '%93': '\\x93', '%94': '\\x94', '%95': '\\x95', '%96': '\\x96',\n '%97': '\\x97', '%98': '\\x98', '%99': '\\x99', '%9a': '\\x9a', '%9A': '\\x9a',\n '%9b': '\\x9b', '%9B': '\\x9b', '%9c': '\\x9c', '%9C': '\\x9c', '%9d': '\\x9d',\n '%9D': '\\x9d', '%9e': '\\x9e', '%9E': '\\x9e', '%9f': '\\x9f', '%9F': '\\x9f',\n '%a0': '\\xa0', '%A0': '\\xa0', '%a1': '\\xa1', '%A1': '\\xa1', '%a2': '\\xa2',\n '%A2': '\\xa2', '%a3': '\\xa3', '%A3': '\\xa3', '%a4': '\\xa4', '%A4': '\\xa4',\n '%a5': '\\xa5', '%A5': '\\xa5', '%a6': '\\xa6', '%A6': '\\xa6', '%a7': '\\xa7',\n '%A7': '\\xa7', '%a8': '\\xa8', '%A8': '\\xa8', '%a9': '\\xa9', '%A9': '\\xa9',\n '%aa': '\\xaa', '%Aa': '\\xaa', '%aA': '\\xaa', '%AA': '\\xaa', '%ab': '\\xab',\n '%Ab': '\\xab', '%aB': '\\xab', '%AB': '\\xab', '%ac': '\\xac', '%Ac': '\\xac',\n '%aC': '\\xac', '%AC': '\\xac', '%ad': '\\xad', '%Ad': '\\xad', '%aD': '\\xad',\n '%AD': '\\xad', '%ae': '\\xae', '%Ae': '\\xae', '%aE': '\\xae', '%AE': '\\xae',\n '%af': '\\xaf', '%Af': '\\xaf', '%aF': '\\xaf', '%AF': '\\xaf', '%b0': '\\xb0',\n '%B0': '\\xb0', '%b1': '\\xb1', '%B1': '\\xb1', '%b2': '\\xb2', '%B2': '\\xb2',\n '%b3': '\\xb3', '%B3': '\\xb3', '%b4': '\\xb4', '%B4': '\\xb4', '%b5': '\\xb5',\n '%B5': '\\xb5', '%b6': '\\xb6', '%B6': '\\xb6', '%b7': '\\xb7', '%B7': '\\xb7',\n '%b8': '\\xb8', '%B8': '\\xb8', '%b9': '\\xb9', '%B9': '\\xb9', '%ba': '\\xba',\n '%Ba': '\\xba', '%bA': '\\xba', '%BA': '\\xba', '%bb': '\\xbb', '%Bb': '\\xbb',\n '%bB': '\\xbb', '%BB': '\\xbb', '%bc': '\\xbc', '%Bc': '\\xbc', '%bC': '\\xbc',\n '%BC': '\\xbc', '%bd': '\\xbd', '%Bd': '\\xbd', '%bD': '\\xbd', '%BD': '\\xbd',\n '%be': '\\xbe', '%Be': '\\xbe', '%bE': '\\xbe', '%BE': '\\xbe', '%bf': '\\xbf',\n '%Bf': '\\xbf', '%bF': '\\xbf', '%BF': '\\xbf', '%c0': '\\xc0', '%C0': '\\xc0',\n '%c1': '\\xc1', '%C1': '\\xc1', '%c2': '\\xc2', '%C2': '\\xc2', '%c3': '\\xc3',\n '%C3': '\\xc3', '%c4': '\\xc4', '%C4': '\\xc4', '%c5': '\\xc5', '%C5': '\\xc5',\n '%c6': '\\xc6', '%C6': '\\xc6', '%c7': '\\xc7', '%C7': '\\xc7', '%c8': '\\xc8',\n '%C8': '\\xc8', '%c9': '\\xc9', '%C9': '\\xc9', '%ca': '\\xca', '%Ca': '\\xca',\n '%cA': '\\xca', '%CA': '\\xca', '%cb': '\\xcb', '%Cb': '\\xcb', '%cB': '\\xcb',\n '%CB': '\\xcb', '%cc': '\\xcc', '%Cc': '\\xcc', '%cC': '\\xcc', '%CC': '\\xcc',\n '%cd': '\\xcd', '%Cd': '\\xcd', '%cD': '\\xcd', '%CD': '\\xcd', '%ce': '\\xce',\n '%Ce': '\\xce', '%cE': '\\xce', '%CE': '\\xce', '%cf': '\\xcf', '%Cf': '\\xcf',\n '%cF': '\\xcf', '%CF': '\\xcf', '%d0': '\\xd0', '%D0': '\\xd0', '%d1': '\\xd1',\n '%D1': '\\xd1', '%d2': '\\xd2', '%D2': '\\xd2', '%d3': '\\xd3', '%D3': '\\xd3',\n '%d4': '\\xd4', '%D4': '\\xd4', '%d5': '\\xd5', '%D5': '\\xd5', '%d6': '\\xd6',\n '%D6': '\\xd6', '%d7': '\\xd7', '%D7': '\\xd7', '%d8': '\\xd8', '%D8': '\\xd8',\n '%d9': '\\xd9', '%D9': '\\xd9', '%da': '\\xda', '%Da': '\\xda', '%dA': '\\xda',\n '%DA': '\\xda', '%db': '\\xdb', '%Db': '\\xdb', '%dB': '\\xdb', '%DB': '\\xdb',\n '%dc': '\\xdc', '%Dc': '\\xdc', '%dC': '\\xdc', '%DC': '\\xdc', '%dd': '\\xdd',\n '%Dd': '\\xdd', '%dD': '\\xdd', '%DD': '\\xdd', '%de': '\\xde', '%De': '\\xde',\n '%dE': '\\xde', '%DE': '\\xde', '%df': '\\xdf', '%Df': '\\xdf', '%dF': '\\xdf',\n '%DF': '\\xdf', '%e0': '\\xe0', '%E0': '\\xe0', '%e1': '\\xe1', '%E1': '\\xe1',\n '%e2': '\\xe2', '%E2': '\\xe2', '%e3': '\\xe3', '%E3': '\\xe3', '%e4': '\\xe4',\n '%E4': '\\xe4', '%e5': '\\xe5', '%E5': '\\xe5', '%e6': '\\xe6', '%E6': '\\xe6',\n '%e7': '\\xe7', '%E7': '\\xe7', '%e8': '\\xe8', '%E8': '\\xe8', '%e9': '\\xe9',\n '%E9': '\\xe9', '%ea': '\\xea', '%Ea': '\\xea', '%eA': '\\xea', '%EA': '\\xea',\n '%eb': '\\xeb', '%Eb': '\\xeb', '%eB': '\\xeb', '%EB': '\\xeb', '%ec': '\\xec',\n '%Ec': '\\xec', '%eC': '\\xec', '%EC': '\\xec', '%ed': '\\xed', '%Ed': '\\xed',\n '%eD': '\\xed', '%ED': '\\xed', '%ee': '\\xee', '%Ee': '\\xee', '%eE': '\\xee',\n '%EE': '\\xee', '%ef': '\\xef', '%Ef': '\\xef', '%eF': '\\xef', '%EF': '\\xef',\n '%f0': '\\xf0', '%F0': '\\xf0', '%f1': '\\xf1', '%F1': '\\xf1', '%f2': '\\xf2',\n '%F2': '\\xf2', '%f3': '\\xf3', '%F3': '\\xf3', '%f4': '\\xf4', '%F4': '\\xf4',\n '%f5': '\\xf5', '%F5': '\\xf5', '%f6': '\\xf6', '%F6': '\\xf6', '%f7': '\\xf7',\n '%F7': '\\xf7', '%f8': '\\xf8', '%F8': '\\xf8', '%f9': '\\xf9', '%F9': '\\xf9',\n '%fa': '\\xfa', '%Fa': '\\xfa', '%fA': '\\xfa', '%FA': '\\xfa', '%fb': '\\xfb',\n '%Fb': '\\xfb', '%fB': '\\xfb', '%FB': '\\xfb', '%fc': '\\xfc', '%Fc': '\\xfc',\n '%fC': '\\xfc', '%FC': '\\xfc', '%fd': '\\xfd', '%Fd': '\\xfd', '%fD': '\\xfd',\n '%FD': '\\xfd', '%fe': '\\xfe', '%Fe': '\\xfe', '%fE': '\\xfe', '%FE': '\\xfe',\n '%ff': '\\xff', '%Ff': '\\xff', '%fF': '\\xff', '%FF': '\\xff'\n}\n\nfunction encodedReplacer (match) {\n return EncodedLookup[match]\n}\n\nconst STATE_KEY = 0\nconst STATE_VALUE = 1\nconst STATE_CHARSET = 2\nconst STATE_LANG = 3\n\nfunction parseParams (str) {\n const res = []\n let state = STATE_KEY\n let charset = ''\n let inquote = false\n let escaping = false\n let p = 0\n let tmp = ''\n const len = str.length\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n const char = str[i]\n if (char === '\\\\' && inquote) {\n if (escaping) { escaping = false } else {\n escaping = true\n continue\n }\n } else if (char === '\"') {\n if (!escaping) {\n if (inquote) {\n inquote = false\n state = STATE_KEY\n } else { inquote = true }\n continue\n } else { escaping = false }\n } else {\n if (escaping && inquote) { tmp += '\\\\' }\n escaping = false\n if ((state === STATE_CHARSET || state === STATE_LANG) && char === \"'\") {\n if (state === STATE_CHARSET) {\n state = STATE_LANG\n charset = tmp.substring(1)\n } else { state = STATE_VALUE }\n tmp = ''\n continue\n } else if (state === STATE_KEY &&\n (char === '*' || char === '=') &&\n res.length) {\n state = char === '*'\n ? STATE_CHARSET\n : STATE_VALUE\n res[p] = [tmp, undefined]\n tmp = ''\n continue\n } else if (!inquote && char === ';') {\n state = STATE_KEY\n if (charset) {\n if (tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n }\n charset = ''\n } else if (tmp.length) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }\n tmp = ''\n ++p\n continue\n } else if (!inquote && (char === ' ' || char === '\\t')) { continue }\n }\n tmp += char\n }\n if (charset && tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n } else if (tmp) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n\n if (res[p] === undefined) {\n if (tmp) { res[p] = tmp }\n } else { res[p][1] = tmp }\n\n return res\n}\n\nmodule.exports = parseParams\n","'use strict'\n\nmodule.exports = function basename (path) {\n if (typeof path !== 'string') { return '' }\n for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1)\n return (path === '..' || path === '.' ? '' : path)\n }\n }\n return (path === '..' || path === '.' ? '' : path)\n}\n","'use strict'\n\n// TODO:\n// * support 1 nested multipart level\n// (see second multipart example here:\n// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)\n// * support limits.fieldNameSize\n// -- this will require modifications to utils.parseParams\n\nconst { Readable } = require('node:stream')\nconst { inherits } = require('node:util')\n\nconst Dicer = require('../../deps/dicer/lib/Dicer')\n\nconst parseParams = require('../utils/parseParams')\nconst decodeText = require('../utils/decodeText')\nconst basename = require('../utils/basename')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_BOUNDARY = /^boundary$/i\nconst RE_FIELD = /^form-data$/i\nconst RE_CHARSET = /^charset$/i\nconst RE_FILENAME = /^filename$/i\nconst RE_NAME = /^name$/i\n\nMultipart.detect = /^multipart\\/form-data/i\nfunction Multipart (boy, cfg) {\n let i\n let len\n const self = this\n let boundary\n const limits = cfg.limits\n const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))\n const parsedConType = cfg.parsedConType || []\n const defCharset = cfg.defCharset || 'utf8'\n const preservePath = cfg.preservePath\n const fileOpts = { highWaterMark: cfg.fileHwm }\n\n for (i = 0, len = parsedConType.length; i < len; ++i) {\n if (Array.isArray(parsedConType[i]) &&\n RE_BOUNDARY.test(parsedConType[i][0])) {\n boundary = parsedConType[i][1]\n break\n }\n }\n\n function checkFinished () {\n if (nends === 0 && finished && !boy._done) {\n finished = false\n self.end()\n }\n }\n\n if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }\n\n const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)\n const filesLimit = getLimit(limits, 'files', Infinity)\n const fieldsLimit = getLimit(limits, 'fields', Infinity)\n const partsLimit = getLimit(limits, 'parts', Infinity)\n const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)\n const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)\n\n let nfiles = 0\n let nfields = 0\n let nends = 0\n let curFile\n let curField\n let finished = false\n\n this._needDrain = false\n this._pause = false\n this._cb = undefined\n this._nparts = 0\n this._boy = boy\n\n const parserCfg = {\n boundary,\n maxHeaderPairs: headerPairsLimit,\n maxHeaderSize: headerSizeLimit,\n partHwm: fileOpts.highWaterMark,\n highWaterMark: cfg.highWaterMark\n }\n\n this.parser = new Dicer(parserCfg)\n this.parser.on('drain', function () {\n self._needDrain = false\n if (self._cb && !self._pause) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }).on('part', function onPart (part) {\n if (++self._nparts > partsLimit) {\n self.parser.removeListener('part', onPart)\n self.parser.on('part', skipPart)\n boy.hitPartsLimit = true\n boy.emit('partsLimit')\n return skipPart(part)\n }\n\n // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let\n // us emit 'end' early since we know the part has ended if we are already\n // seeing the next part\n if (curField) {\n const field = curField\n field.emit('end')\n field.removeAllListeners('end')\n }\n\n part.on('header', function (header) {\n let contype\n let fieldname\n let parsed\n let charset\n let encoding\n let filename\n let nsize = 0\n\n if (header['content-type']) {\n parsed = parseParams(header['content-type'][0])\n if (parsed[0]) {\n contype = parsed[0].toLowerCase()\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_CHARSET.test(parsed[i][0])) {\n charset = parsed[i][1].toLowerCase()\n break\n }\n }\n }\n }\n\n if (contype === undefined) { contype = 'text/plain' }\n if (charset === undefined) { charset = defCharset }\n\n if (header['content-disposition']) {\n parsed = parseParams(header['content-disposition'][0])\n if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_NAME.test(parsed[i][0])) {\n fieldname = parsed[i][1]\n } else if (RE_FILENAME.test(parsed[i][0])) {\n filename = parsed[i][1]\n if (!preservePath) { filename = basename(filename) }\n }\n }\n } else { return skipPart(part) }\n\n if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }\n\n let onData,\n onEnd\n\n if (isPartAFile(fieldname, contype, filename)) {\n // file/binary field\n if (nfiles === filesLimit) {\n if (!boy.hitFilesLimit) {\n boy.hitFilesLimit = true\n boy.emit('filesLimit')\n }\n return skipPart(part)\n }\n\n ++nfiles\n\n if (boy.listenerCount('file') === 0) {\n self.parser._ignore()\n return\n }\n\n ++nends\n const file = new FileStream(fileOpts)\n curFile = file\n file.on('end', function () {\n --nends\n self._pause = false\n checkFinished()\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n })\n file._read = function (n) {\n if (!self._pause) { return }\n self._pause = false\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }\n boy.emit('file', fieldname, file, filename, encoding, contype)\n\n onData = function (data) {\n if ((nsize += data.length) > fileSizeLimit) {\n const extralen = fileSizeLimit - nsize + data.length\n if (extralen > 0) { file.push(data.slice(0, extralen)) }\n file.truncated = true\n file.bytesRead = fileSizeLimit\n part.removeAllListeners('data')\n file.emit('limit')\n return\n } else if (!file.push(data)) { self._pause = true }\n\n file.bytesRead = nsize\n }\n\n onEnd = function () {\n curFile = undefined\n file.push(null)\n }\n } else {\n // non-file field\n if (nfields === fieldsLimit) {\n if (!boy.hitFieldsLimit) {\n boy.hitFieldsLimit = true\n boy.emit('fieldsLimit')\n }\n return skipPart(part)\n }\n\n ++nfields\n ++nends\n let buffer = ''\n let truncated = false\n curField = part\n\n onData = function (data) {\n if ((nsize += data.length) > fieldSizeLimit) {\n const extralen = (fieldSizeLimit - (nsize - data.length))\n buffer += data.toString('binary', 0, extralen)\n truncated = true\n part.removeAllListeners('data')\n } else { buffer += data.toString('binary') }\n }\n\n onEnd = function () {\n curField = undefined\n if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }\n boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)\n --nends\n checkFinished()\n }\n }\n\n /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become\n broken. Streams2/streams3 is a huge black box of confusion, but\n somehow overriding the sync state seems to fix things again (and still\n seems to work for previous node versions).\n */\n part._readableState.sync = false\n\n part.on('data', onData)\n part.on('end', onEnd)\n }).on('error', function (err) {\n if (curFile) { curFile.emit('error', err) }\n })\n }).on('error', function (err) {\n boy.emit('error', err)\n }).on('finish', function () {\n finished = true\n checkFinished()\n })\n}\n\nMultipart.prototype.write = function (chunk, cb) {\n const r = this.parser.write(chunk)\n if (r && !this._pause) {\n cb()\n } else {\n this._needDrain = !r\n this._cb = cb\n }\n}\n\nMultipart.prototype.end = function () {\n const self = this\n\n if (self.parser.writable) {\n self.parser.end()\n } else if (!self._boy._done) {\n process.nextTick(function () {\n self._boy._done = true\n self._boy.emit('finish')\n })\n }\n}\n\nfunction skipPart (part) {\n part.resume()\n}\n\nfunction FileStream (opts) {\n Readable.call(this, opts)\n\n this.bytesRead = 0\n\n this.truncated = false\n}\n\ninherits(FileStream, Readable)\n\nFileStream.prototype._read = function (n) {}\n\nmodule.exports = Multipart\n","'use strict'\n\nconst RE_PLUS = /\\+/g\n\nconst HEX = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\nfunction Decoder () {\n this.buffer = undefined\n}\nDecoder.prototype.write = function (str) {\n // Replace '+' with ' ' before decoding\n str = str.replace(RE_PLUS, ' ')\n let res = ''\n let i = 0; let p = 0; const len = str.length\n for (; i < len; ++i) {\n if (this.buffer !== undefined) {\n if (!HEX[str.charCodeAt(i)]) {\n res += '%' + this.buffer\n this.buffer = undefined\n --i // retry character\n } else {\n this.buffer += str[i]\n ++p\n if (this.buffer.length === 2) {\n res += String.fromCharCode(parseInt(this.buffer, 16))\n this.buffer = undefined\n }\n }\n } else if (str[i] === '%') {\n if (i > p) {\n res += str.substring(p, i)\n p = i\n }\n this.buffer = ''\n ++p\n }\n }\n if (p < len && this.buffer === undefined) { res += str.substring(p) }\n return res\n}\nDecoder.prototype.reset = function () {\n this.buffer = undefined\n}\n\nmodule.exports = Decoder\n","'use strict'\n\nconst Decoder = require('../utils/Decoder')\nconst decodeText = require('../utils/decodeText')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_CHARSET = /^charset$/i\n\nUrlEncoded.detect = /^application\\/x-www-form-urlencoded/i\nfunction UrlEncoded (boy, cfg) {\n const limits = cfg.limits\n const parsedConType = cfg.parsedConType\n this.boy = boy\n\n this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)\n this.fieldsLimit = getLimit(limits, 'fields', Infinity)\n\n let charset\n for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var\n if (Array.isArray(parsedConType[i]) &&\n RE_CHARSET.test(parsedConType[i][0])) {\n charset = parsedConType[i][1].toLowerCase()\n break\n }\n }\n\n if (charset === undefined) { charset = cfg.defCharset || 'utf8' }\n\n this.decoder = new Decoder()\n this.charset = charset\n this._fields = 0\n this._state = 'key'\n this._checkingBytes = true\n this._bytesKey = 0\n this._bytesVal = 0\n this._key = ''\n this._val = ''\n this._keyTrunc = false\n this._valTrunc = false\n this._hitLimit = false\n}\n\nUrlEncoded.prototype.write = function (data, cb) {\n if (this._fields === this.fieldsLimit) {\n if (!this.boy.hitFieldsLimit) {\n this.boy.hitFieldsLimit = true\n this.boy.emit('fieldsLimit')\n }\n return cb()\n }\n\n let idxeq; let idxamp; let i; let p = 0; const len = data.length\n\n while (p < len) {\n if (this._state === 'key') {\n idxeq = idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x3D/* = */) {\n idxeq = i\n break\n } else if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesKey }\n }\n\n if (idxeq !== undefined) {\n // key with assignment\n if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }\n this._state = 'val'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._val = ''\n this._bytesVal = 0\n this._valTrunc = false\n this.decoder.reset()\n\n p = idxeq + 1\n } else if (idxamp !== undefined) {\n // key with no assignment\n ++this._fields\n let key; const keyTrunc = this._keyTrunc\n if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n if (key.length) {\n this.boy.emit('field', decodeText(key, 'binary', this.charset),\n '',\n keyTrunc,\n false)\n }\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._keyTrunc = true\n }\n } else {\n if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n } else {\n idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesVal }\n }\n\n if (idxamp !== undefined) {\n ++this._fields\n if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n this._state = 'key'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._val === '' && this.fieldSizeLimit === 0) ||\n (this._bytesVal = this._val.length) === this.fieldSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._valTrunc = true\n }\n } else {\n if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n }\n }\n cb()\n}\n\nUrlEncoded.prototype.end = function () {\n if (this.boy._done) { return }\n\n if (this._state === 'key' && this._key.length > 0) {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n '',\n this._keyTrunc,\n false)\n } else if (this._state === 'val') {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n }\n this.boy._done = true\n this.boy.emit('finish')\n}\n\nmodule.exports = UrlEncoded\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst { inherits } = require('node:util')\nconst Dicer = require('../deps/dicer/lib/Dicer')\n\nconst MultipartParser = require('./types/multipart')\nconst UrlencodedParser = require('./types/urlencoded')\nconst parseParams = require('./utils/parseParams')\n\nfunction Busboy (opts) {\n if (!(this instanceof Busboy)) { return new Busboy(opts) }\n\n if (typeof opts !== 'object') {\n throw new TypeError('Busboy expected an options-Object.')\n }\n if (typeof opts.headers !== 'object') {\n throw new TypeError('Busboy expected an options-Object with headers-attribute.')\n }\n if (typeof opts.headers['content-type'] !== 'string') {\n throw new TypeError('Missing Content-Type-header.')\n }\n\n const {\n headers,\n ...streamOptions\n } = opts\n\n this.opts = {\n autoDestroy: false,\n ...streamOptions\n }\n WritableStream.call(this, this.opts)\n\n this._done = false\n this._parser = this.getParserByHeaders(headers)\n this._finished = false\n}\ninherits(Busboy, WritableStream)\n\nBusboy.prototype.emit = function (ev) {\n if (ev === 'finish') {\n if (!this._done) {\n this._parser?.end()\n return\n } else if (this._finished) {\n return\n }\n this._finished = true\n }\n WritableStream.prototype.emit.apply(this, arguments)\n}\n\nBusboy.prototype.getParserByHeaders = function (headers) {\n const parsed = parseParams(headers['content-type'])\n\n const cfg = {\n defCharset: this.opts.defCharset,\n fileHwm: this.opts.fileHwm,\n headers,\n highWaterMark: this.opts.highWaterMark,\n isPartAFile: this.opts.isPartAFile,\n limits: this.opts.limits,\n parsedConType: parsed,\n preservePath: this.opts.preservePath\n }\n\n if (MultipartParser.detect.test(parsed[0])) {\n return new MultipartParser(this, cfg)\n }\n if (UrlencodedParser.detect.test(parsed[0])) {\n return new UrlencodedParser(this, cfg)\n }\n throw new Error('Unsupported Content-Type.')\n}\n\nBusboy.prototype._write = function (chunk, encoding, cb) {\n this._parser.write(chunk, cb)\n}\n\nmodule.exports = Busboy\nmodule.exports.default = Busboy\nmodule.exports.Busboy = Busboy\n\nmodule.exports.Dicer = Dicer\n","'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\nconst corsSafeListedMethodsSet = new Set(corsSafeListedMethods)\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\nconst redirectStatusSet = new Set(redirectStatus)\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nconst badPortsSet = new Set(badPorts)\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\nconst referrerPolicySet = new Set(referrerPolicy)\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\nconst safeMethodsSet = new Set(safeMethods)\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\nconst forbiddenMethodsSet = new Set(forbiddenMethods)\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\nconst subresourceSet = new Set(subresource)\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex,\n subresourceSet,\n badPortsSet,\n redirectStatusSet,\n corsSafeListedMethodsSet,\n safeMethodsSet,\n forbiddenMethodsSet,\n referrerPolicySet\n}\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","'use strict'\n\nconst { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\nlet supportedHashes = []\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']\n supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))\n/* c8 ignore next 3 */\n} catch {\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatusSet.has(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response’s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n * @param {number} c\n */\nfunction isTokenCharCode (c) {\n switch (c) {\n case 0x22:\n case 0x28:\n case 0x29:\n case 0x2c:\n case 0x2f:\n case 0x3a:\n case 0x3b:\n case 0x3c:\n case 0x3d:\n case 0x3e:\n case 0x3f:\n case 0x40:\n case 0x5b:\n case 0x5c:\n case 0x5d:\n case 0x7b:\n case 0x7d:\n // DQUOTE and \"(),/:;<=>?@[\\]{}\"\n return false\n default:\n // VCHAR %x21-7E\n return c >= 0x21 && c <= 0x7e\n }\n}\n\n/**\n * @param {string} characters\n */\nfunction isValidHTTPToken (characters) {\n if (characters.length === 0) {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n if (!isTokenCharCode(characters.charCodeAt(i))) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-name\n * @param {string} potentialValue\n */\nfunction isValidHeaderName (potentialValue) {\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.has(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request’s client.\n\n let referrerSource = null\n\n // 3. Switch on request’s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request’s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request’s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request’s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request’s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url’s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url’s username to the empty string.\n url.username = ''\n\n // 4. Set url’s password to the empty string.\n url.password = ''\n\n // 5. Set url’s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url’s path to « the empty string ».\n url.pathname = ''\n\n // 2. Set url’s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If response is not eligible for integrity validation, return false.\n // TODO\n\n // 4. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 5. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const strongest = getStrongestMetadata(parsedMetadata)\n const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)\n\n // 6. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e\n // \"be liberal with padding\". This is annoying, and it's not even in the spec.\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n if (actualValue[actualValue.length - 1] === '=') {\n if (actualValue[actualValue.length - 2] === '=') {\n actualValue = actualValue.slice(0, -2)\n } else {\n actualValue = actualValue.slice(0, -1)\n }\n }\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (compareBase64Mixed(actualValue, expectedValue)) {\n return true\n }\n }\n\n // 7. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\\s|$)( +[!-~]*)?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (\n parsedToken === null ||\n parsedToken.groups === undefined ||\n parsedToken.groups.algo === undefined\n ) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo.toLowerCase()\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm)) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n/**\n * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList\n */\nfunction getStrongestMetadata (metadataList) {\n // Let algorithm be the algo component of the first item in metadataList.\n // Can be sha256\n let algorithm = metadataList[0].algo\n // If the algorithm is sha512, then it is the strongest\n // and we can return immediately\n if (algorithm[3] === '5') {\n return algorithm\n }\n\n for (let i = 1; i < metadataList.length; ++i) {\n const metadata = metadataList[i]\n // If the algorithm is sha512, then it is the strongest\n // and we can break the loop immediately\n if (metadata.algo[3] === '5') {\n algorithm = 'sha512'\n break\n // If the algorithm is sha384, then a potential sha256 or sha384 is ignored\n } else if (algorithm[3] === '3') {\n continue\n // algorithm is sha256, check if algorithm is sha384 and if so, set it as\n // the strongest\n } else if (metadata.algo[3] === '3') {\n algorithm = 'sha384'\n }\n }\n return algorithm\n}\n\nfunction filterMetadataListByAlgorithm (metadataList, algorithm) {\n if (metadataList.length === 1) {\n return metadataList\n }\n\n let pos = 0\n for (let i = 0; i < metadataList.length; ++i) {\n if (metadataList[i].algo === algorithm) {\n metadataList[pos++] = metadataList[i]\n }\n }\n\n metadataList.length = pos\n\n return metadataList\n}\n\n/**\n * Compares two base64 strings, allowing for base64url\n * in the second string.\n *\n* @param {string} actualValue always base64\n * @param {string} expectedValue base64 or base64url\n * @returns {boolean}\n */\nfunction compareBase64Mixed (actualValue, expectedValue) {\n if (actualValue.length !== expectedValue.length) {\n return false\n }\n for (let i = 0; i < actualValue.length; ++i) {\n if (actualValue[i] !== expectedValue[i]) {\n if (\n (actualValue[i] === '+' && expectedValue[i] === '-') ||\n (actualValue[i] === '/' && expectedValue[i] === '_')\n ) {\n continue\n }\n return false\n }\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\nconst normalizeMethodRecord = {\n delete: 'DELETE',\n DELETE: 'DELETE',\n get: 'GET',\n GET: 'GET',\n head: 'HEAD',\n HEAD: 'HEAD',\n options: 'OPTIONS',\n OPTIONS: 'OPTIONS',\n post: 'POST',\n POST: 'POST',\n put: 'PUT',\n PUT: 'PUT'\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(normalizeMethodRecord, null)\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-method-normalize\n * @param {string} method\n */\nfunction normalizeMethod (method) {\n return normalizeMethodRecord[method.toLowerCase()] ?? method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object’s index.\n // 7. Let kind be object’s kind.\n // 8. Let values be object’s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object’s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair’s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair’s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair’s key.\n // 2. Let idlValue be pair’s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = processBody\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = processBodyError\n\n // 4. Let reader be the result of getting a reader for body’s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n try {\n const result = await readAllBytes(reader)\n successSteps(result)\n } catch (e) {\n errorSteps(e)\n }\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input’s length and whose code points have the same values\n // as the values of input’s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input’s code\n // point length and whose bytes have the same values as the\n // values of input’s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n */\nasync function readAllBytes (reader) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n const { done, value: chunk } = await reader.read()\n\n if (done) {\n // 1. Call successSteps with bytes.\n return Buffer.concat(bytes, byteLength)\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n throw new TypeError('Received non-Uint8Array chunk')\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes,\n normalizeMethodRecord,\n parseMetadata\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n if (x.charCodeAt(index) > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n if (!excludeFragment) {\n return url.href\n }\n\n const href = url.href\n const hashLength = url.hash.length\n\n return hashLength === 0 ? href : href.substring(0, href.length - hashLength)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = essence\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\nconst encoder = new TextEncoder()\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(encoder.encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\nconst Busboy = require('@fastify/busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet random\ntry {\n const crypto = require('node:crypto')\n random = (max) => crypto.randomInt(0, max)\n} catch {\n random = (max) => Math.floor(Math.random(max))\n}\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object’s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? textEncoder.encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = textEncoder.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = textEncoder.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = textEncoder.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this’s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = new Busboy({\n headers,\n preservePath: true\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, filename, encoding, mimeType) => {\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n // Note that streaming decoder is stateful and cannot be reused\n const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += streamingDecoder.decode(chunk, { stream: true })\n }\n text += streamingDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object’s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object’s body given successSteps,\n // errorSteps, and object’s relevant global object.\n await fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body’s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8’s\n // decoder, ioQueue, output, and \"replacement\".\n const output = textDecoder.decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require('./symbols')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n util.destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n // TODO: adjust to support H2\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n\n static [kHTTP1BuildRequest] (origin, opts, handler) {\n // TODO: Migrate header parsing here, to make Requests\n // HTTP agnostic\n return new Request(origin, opts, handler)\n }\n\n static [kHTTP2BuildRequest] (origin, opts, handler) {\n const headers = opts.headers\n opts = { ...opts, headers: null }\n\n const request = new Request(origin, opts, handler)\n\n request.headers = {}\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(request, headers[i], headers[i + 1], true)\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(request, key, headers[key], true)\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n return request\n }\n\n static [kHTTP2CopyHeaders] (raw) {\n const rawHeaders = raw.split('\\r\\n')\n const headers = {}\n\n for (const header of rawHeaders) {\n const [key, value] = header.split(': ')\n\n if (value == null || value.length === 0) continue\n\n if (headers[key]) headers[key] += `,${value}`\n else headers[key] = value\n }\n\n return headers\n }\n}\n\nfunction processHeaderValue (key, val, skipAppend) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return skipAppend ? val : `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val, skipAppend = false) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n if (skipAppend) {\n if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`\n else request.headers[key] = processHeaderValue(key, val[i], skipAppend)\n } else {\n request.headers += processHeaderValue(key, val[i])\n }\n }\n } else {\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\n// FIXME: remove workaround when the Node bug is fixed\n// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\nif (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n allowH2 = allowH2 != null ? allowH2 : false\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n // TODO(HTTP/2): Add support for h2c\n ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'],\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n if (header.length === 4) {\n return util.headerNameToString(header) === 'host'\n }\n if (removeContent && util.headerNameToString(header).startsWith('content-')) {\n return true\n }\n if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {\n const name = util.headerNameToString(header)\n return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization'\n }\n return false\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n","// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst http = require('http')\nconst { pipeline } = require('stream')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize,\n kHTTPConnVersion,\n // HTTP2\n kHost,\n kHTTP2Session,\n kHTTP2SessionState,\n kHTTP2BuildRequest,\n kHTTP2CopyHeaders,\n kHTTP1BuildRequest\n} = require('./core/symbols')\n\n/** @type {import('http2')} */\nlet http2\ntry {\n http2 = require('http2')\n} catch {\n // @ts-ignore\n http2 = { constants: {} }\n}\n\nconst {\n constants: {\n HTTP2_HEADER_AUTHORITY,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_CONTENT_LENGTH,\n HTTP2_HEADER_EXPECT,\n HTTP2_HEADER_STATUS\n }\n} = http2\n\n// Experimental\nlet h2ExperimentalWarned = false\n\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n // h2\n allowH2,\n maxConcurrentStreams\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n // h2\n if (allowH2 != null && typeof allowH2 !== 'boolean') {\n throw new InvalidArgumentError('allowH2 must be a valid boolean value')\n }\n\n if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) {\n throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n this[kHTTPConnVersion] = 'h1'\n\n // HTTP/2\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = !allowH2\n ? null\n : {\n // streams: null, // Fixed queue of streams - For future support of `push`\n openStreams: 0, // Keep track of them to decide wether or not unref the session\n maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server\n }\n this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = this[kHTTPConnVersion] === 'h2'\n ? Request[kHTTP2BuildRequest](origin, opts, handler)\n : Request[kHTTP1BuildRequest](origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n // TODO: for H2 we need to gracefully flush the remaining enqueued\n // request and close each stream.\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (this[kHTTP2Session] != null) {\n util.destroy(this[kHTTP2Session], err)\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = null\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nfunction onHttp2SessionError (err) {\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n this[kSocket][kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onHttp2FrameError (type, code, id) {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n\n if (id === 0) {\n this[kSocket][kError] = err\n onError(this[kClient], err)\n }\n}\n\nfunction onHttp2SessionEnd () {\n util.destroy(this, new SocketError('other side closed'))\n util.destroy(this[kSocket], new SocketError('other side closed'))\n}\n\nfunction onHTTP2GoAway (code) {\n const client = this[kClient]\n const err = new InformationalError(`HTTP/2: \"GOAWAY\" frame received with code ${code}`)\n client[kSocket] = null\n client[kHTTP2Session] = null\n\n if (client.destroyed) {\n assert(this[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n } else if (client[kRunning] > 0) {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect',\n client[kUrl],\n [client],\n err\n )\n\n resume(client)\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n\n if (request.aborted) {\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n request.onComplete(headers)\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n if (parser) {\n parser.readMore()\n }\n}\n\nfunction onSocketError (err) {\n const { [kClient]: client, [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n if (client[kHTTPConnVersion] !== 'h2') {\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser, [kClient]: client } = this\n\n if (client[kHTTPConnVersion] !== 'h2') {\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client, [kParser]: parser } = this\n\n if (client[kHTTPConnVersion] === 'h1' && parser) {\n if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n }\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substring(1, idx)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n const isH2 = socket.alpnProtocol === 'h2'\n if (isH2) {\n if (!h2ExperimentalWarned) {\n h2ExperimentalWarned = true\n process.emitWarning('H2 support is experimental, expect them to change at any time.', {\n code: 'UNDICI-H2'\n })\n }\n\n const session = http2.connect(client[kUrl], {\n createConnection: () => socket,\n peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams\n })\n\n client[kHTTPConnVersion] = 'h2'\n session[kClient] = client\n session[kSocket] = socket\n session.on('error', onHttp2SessionError)\n session.on('frameError', onHttp2FrameError)\n session.on('end', onHttp2SessionEnd)\n session.on('goaway', onHTTP2GoAway)\n session.on('close', onSocketClose)\n session.unref()\n\n client[kHTTP2Session] = session\n socket[kHTTP2Session] = session\n } else {\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n }\n\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket[kClient] = client\n socket[kError] = null\n\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket && !client[kHTTP2Session]) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\n// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2\nfunction shouldSendContentLength (method) {\n return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'\n}\n\nfunction write (client, request) {\n if (client[kHTTPConnVersion] === 'h2') {\n writeH2(client, client[kHTTP2Session], request)\n return\n }\n\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n const bodyLength = util.bodyLength(body)\n\n let contentLength = bodyLength\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body || bodyLength === 0) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeH2 (client, session, request) {\n const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request\n\n let headers\n if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim())\n else headers = reqHeaders\n\n if (upgrade) {\n errorRequest(client, request, new Error('Upgrade not supported for H2'))\n return false\n }\n\n try {\n // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event?\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n /** @type {import('node:http2').ClientHttp2Stream} */\n let stream\n const h2State = client[kHTTP2SessionState]\n\n headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]\n headers[HTTP2_HEADER_METHOD] = method\n\n if (method === 'CONNECT') {\n session.ref()\n // we are already connected, streams are pending, first request\n // will create a new stream. We trigger a request to create the stream and wait until\n // `ready` event is triggered\n // We disabled endStream to allow the user to write to the stream\n stream = session.request(headers, { endStream: false, signal })\n\n if (stream.id && !stream.pending) {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n } else {\n stream.once('ready', () => {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n })\n }\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) session.unref()\n })\n\n return true\n }\n\n // https://tools.ietf.org/html/rfc7540#section-8.3\n // :path and :scheme headers must be omited when sending CONNECT\n\n headers[HTTP2_HEADER_PATH] = path\n headers[HTTP2_HEADER_SCHEME] = 'https'\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength == null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 || !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (contentLength != null) {\n assert(body, 'no body must not have content length')\n headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`\n }\n\n session.ref()\n\n const shouldEndStream = method === 'GET' || method === 'HEAD'\n if (expectContinue) {\n headers[HTTP2_HEADER_EXPECT] = '100-continue'\n stream = session.request(headers, { endStream: shouldEndStream, signal })\n\n stream.once('continue', writeBodyH2)\n } else {\n stream = session.request(headers, {\n endStream: shouldEndStream,\n signal\n })\n writeBodyH2()\n }\n\n // Increment counter as we have new several streams open\n ++h2State.openStreams\n\n stream.once('response', headers => {\n const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers\n\n if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {\n stream.pause()\n }\n })\n\n stream.once('end', () => {\n request.onComplete([])\n })\n\n stream.on('data', (chunk) => {\n if (request.onData(chunk) === false) {\n stream.pause()\n }\n })\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) {\n session.unref()\n }\n })\n\n stream.once('error', function (err) {\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n stream.once('frameError', (type, code) => {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n errorRequest(client, request, err)\n\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n // stream.on('aborted', () => {\n // // TODO(HTTP/2): Support aborted\n // })\n\n // stream.on('timeout', () => {\n // // TODO(HTTP/2): Support timeout\n // })\n\n // stream.on('push', headers => {\n // // TODO(HTTP/2): Suppor push\n // })\n\n // stream.on('trailers', headers => {\n // // TODO(HTTP/2): Support trailers\n // })\n\n return true\n\n function writeBodyH2 () {\n /* istanbul ignore else: assertion */\n if (!body) {\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n stream.cork()\n stream.write(body)\n stream.uncork()\n stream.end()\n request.onBodySent(body)\n request.onRequestSent()\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({\n client,\n request,\n contentLength,\n h2stream: stream,\n expectsPayload,\n body: body.stream(),\n socket: client[kSocket],\n header: ''\n })\n } else {\n writeBlob({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n h2stream: stream,\n header: '',\n socket: client[kSocket]\n })\n }\n } else if (util.isStream(body)) {\n writeStream({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n socket: client[kSocket],\n h2stream: stream,\n header: ''\n })\n } else if (util.isIterable(body)) {\n writeIterable({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n header: '',\n h2stream: stream,\n socket: client[kSocket]\n })\n } else {\n assert(false)\n }\n }\n}\n\nfunction writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n if (client[kHTTPConnVersion] === 'h2') {\n // For HTTP/2, is enough to pipe the stream\n const pipe = pipeline(\n body,\n h2stream,\n (err) => {\n if (err) {\n util.destroy(body, err)\n util.destroy(h2stream, err)\n } else {\n request.onRequestSent()\n }\n }\n )\n\n pipe.on('data', onPipeData)\n pipe.once('end', () => {\n pipe.removeListener('data', onPipeData)\n util.destroy(pipe)\n })\n\n function onPipeData (chunk) {\n request.onBodySent(chunk)\n }\n\n return\n }\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n if (finished) {\n return\n }\n const err = new RequestAbortedError()\n queueMicrotask(() => onFinished(err))\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n const isH2 = client[kHTTPConnVersion] === 'h2'\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n if (isH2) {\n h2stream.cork()\n h2stream.write(buffer)\n h2stream.uncork()\n } else {\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n }\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(isH2 ? h2stream : socket, err)\n }\n}\n\nasync function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n if (client[kHTTPConnVersion] === 'h2') {\n h2stream\n .on('close', onDrain)\n .on('drain', onDrain)\n\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n const res = h2stream.write(chunk)\n request.onBodySent(chunk)\n if (!res) {\n await waitForDrain()\n }\n }\n } catch (err) {\n h2stream.destroy(err)\n } finally {\n request.onRequestSent()\n h2stream.end()\n h2stream\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n\n return\n }\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n allowH2,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect, allowH2 }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n\n this.on('connectionError', (origin, targets, error) => {\n // If a connection error occurs, we remove the client from the pool,\n // and emit a connectionError event. They will not be re-used.\n // Fixes https://github.com/nodejs/undici/issues/3895\n for (const target of targets) {\n // Do not use kRemoveClient here, as it will close the client,\n // but the client cannot be closed in this state.\n const idx = this[kClients].indexOf(target)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n }\n })\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n if (dispatcher.on) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n }\n}\n\nmodule.exports = function () {\n // FIXME: remove workaround when the Node bug is fixed\n // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\n if (process.env.NODE_V8_COVERAGE) {\n return {\n WeakRef: CompatWeakRef,\n FinalizationRegistry: CompatFinalizer\n }\n }\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nconst noop = () => {}\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n\n if (signal) {\n try {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n if (this.closed) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve, reject) => {\n const signalListenerCleanup = signal\n ? util.addAbortListener(signal, () => {\n this.destroy()\n })\n : noop\n\n this\n .on('close', function () {\n signalListenerCleanup()\n if (signal && signal.aborted) {\n reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))\n } else {\n resolve(null)\n }\n })\n .on('error', noop)\n .on('data', function (chunk) {\n limit -= chunk.length\n if (limit <= 0) {\n this.destroy()\n }\n })\n .resume()\n })\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst.buffer)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n","const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\nmodule.exports.RequestHandler = RequestHandler\n","'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n if (factory === null) {\n return\n }\n\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res ? res.write(chunk) : true\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n if (!res) {\n return\n }\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nconst { AsyncResource } = require('async_hooks')\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n\n let headers = rawHeaders\n // Indicates is an HTTP2Session\n if (headers != null) {\n headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host, username, password } = resolvedUrl\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n } else if (username && password) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`\n }\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","const assert = require('assert')\n\nconst { kRetryHandlerDefaultRetry } = require('../core/symbols')\nconst { RequestRetryError } = require('../core/errors')\nconst { isDisturbed, parseHeaders, parseRangeHeader } = require('../core/util')\n\nfunction calculateRetryAfterHeader (retryAfter) {\n const current = Date.now()\n const diff = new Date(retryAfter).getTime() - current\n\n return diff\n}\n\nclass RetryHandler {\n constructor (opts, handlers) {\n const { retryOptions, ...dispatchOpts } = opts\n const {\n // Retry scoped\n retry: retryFn,\n maxRetries,\n maxTimeout,\n minTimeout,\n timeoutFactor,\n // Response scoped\n methods,\n errorCodes,\n retryAfter,\n statusCodes\n } = retryOptions ?? {}\n\n this.dispatch = handlers.dispatch\n this.handler = handlers.handler\n this.opts = dispatchOpts\n this.abort = null\n this.aborted = false\n this.retryOpts = {\n retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry],\n retryAfter: retryAfter ?? true,\n maxTimeout: maxTimeout ?? 30 * 1000, // 30s,\n timeout: minTimeout ?? 500, // .5s\n timeoutFactor: timeoutFactor ?? 2,\n maxRetries: maxRetries ?? 5,\n // What errors we should retry\n methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],\n // Indicates which errors to retry\n statusCodes: statusCodes ?? [500, 502, 503, 504, 429],\n // List of errors to retry\n errorCodes: errorCodes ?? [\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENOTFOUND',\n 'ENETDOWN',\n 'ENETUNREACH',\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'EPIPE'\n ]\n }\n\n this.retryCount = 0\n this.start = 0\n this.end = null\n this.etag = null\n this.resume = null\n\n // Handle possible onConnect duplication\n this.handler.onConnect(reason => {\n this.aborted = true\n if (this.abort) {\n this.abort(reason)\n } else {\n this.reason = reason\n }\n })\n }\n\n onRequestSent () {\n if (this.handler.onRequestSent) {\n this.handler.onRequestSent()\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n if (this.handler.onUpgrade) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n }\n\n onConnect (abort) {\n if (this.aborted) {\n abort(this.reason)\n } else {\n this.abort = abort\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) return this.handler.onBodySent(chunk)\n }\n\n static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {\n const { statusCode, code, headers } = err\n const { method, retryOptions } = opts\n const {\n maxRetries,\n timeout,\n maxTimeout,\n timeoutFactor,\n statusCodes,\n errorCodes,\n methods\n } = retryOptions\n let { counter, currentTimeout } = state\n\n currentTimeout =\n currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout\n\n // Any code that is not a Undici's originated and allowed to retry\n if (\n code &&\n code !== 'UND_ERR_REQ_RETRY' &&\n code !== 'UND_ERR_SOCKET' &&\n !errorCodes.includes(code)\n ) {\n cb(err)\n return\n }\n\n // If a set of method are provided and the current method is not in the list\n if (Array.isArray(methods) && !methods.includes(method)) {\n cb(err)\n return\n }\n\n // If a set of status code are provided and the current status code is not in the list\n if (\n statusCode != null &&\n Array.isArray(statusCodes) &&\n !statusCodes.includes(statusCode)\n ) {\n cb(err)\n return\n }\n\n // If we reached the max number of retries\n if (counter > maxRetries) {\n cb(err)\n return\n }\n\n let retryAfterHeader = headers != null && headers['retry-after']\n if (retryAfterHeader) {\n retryAfterHeader = Number(retryAfterHeader)\n retryAfterHeader = isNaN(retryAfterHeader)\n ? calculateRetryAfterHeader(retryAfterHeader)\n : retryAfterHeader * 1e3 // Retry-After is in seconds\n }\n\n const retryTimeout =\n retryAfterHeader > 0\n ? Math.min(retryAfterHeader, maxTimeout)\n : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout)\n\n state.currentTimeout = retryTimeout\n\n setTimeout(() => cb(null), retryTimeout)\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const headers = parseHeaders(rawHeaders)\n\n this.retryCount += 1\n\n if (statusCode >= 300) {\n this.abort(\n new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Checkpoint for resume from where we left it\n if (this.resume != null) {\n this.resume = null\n\n if (statusCode !== 206) {\n return true\n }\n\n const contentRange = parseRangeHeader(headers['content-range'])\n // If no content range\n if (!contentRange) {\n this.abort(\n new RequestRetryError('Content-Range mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Let's start with a weak etag check\n if (this.etag != null && this.etag !== headers.etag) {\n this.abort(\n new RequestRetryError('ETag mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n const { start, size, end = size } = contentRange\n\n assert(this.start === start, 'content-range mismatch')\n assert(this.end == null || this.end === end, 'content-range mismatch')\n\n this.resume = resume\n return true\n }\n\n if (this.end == null) {\n if (statusCode === 206) {\n // First time we receive 206\n const range = parseRangeHeader(headers['content-range'])\n\n if (range == null) {\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const { start, size, end = size } = range\n\n assert(\n start != null && Number.isFinite(start) && this.start !== start,\n 'content-range mismatch'\n )\n assert(Number.isFinite(start))\n assert(\n end != null && Number.isFinite(end) && this.end !== end,\n 'invalid content-length'\n )\n\n this.start = start\n this.end = end\n }\n\n // We make our best to checkpoint the body for further range headers\n if (this.end == null) {\n const contentLength = headers['content-length']\n this.end = contentLength != null ? Number(contentLength) : null\n }\n\n assert(Number.isFinite(this.start))\n assert(\n this.end == null || Number.isFinite(this.end),\n 'invalid content-length'\n )\n\n this.resume = resume\n this.etag = headers.etag != null ? headers.etag : null\n\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const err = new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n\n this.abort(err)\n\n return false\n }\n\n onData (chunk) {\n this.start += chunk.length\n\n return this.handler.onData(chunk)\n }\n\n onComplete (rawTrailers) {\n this.retryCount = 0\n return this.handler.onComplete(rawTrailers)\n }\n\n onError (err) {\n if (this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n this.retryOpts.retry(\n err,\n {\n state: { counter: this.retryCount++, currentTimeout: this.retryAfter },\n opts: { retryOptions: this.retryOpts, ...this.opts }\n },\n onRetry.bind(this)\n )\n\n function onRetry (err) {\n if (err != null || this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n if (this.start !== 0) {\n this.opts = {\n ...this.opts,\n headers: {\n ...this.opts.headers,\n range: `bytes=${this.start}-${this.end ?? ''}`\n }\n }\n }\n\n try {\n this.dispatch(this.opts, this)\n } catch (err) {\n this.handler.onError(err)\n }\n }\n }\n}\n\nmodule.exports = RetryHandler\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst util = require('util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @param {number} code\n */\nfunction isHTTPWhiteSpaceCharCode (code) {\n return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n let i = 0; let j = potentialValue.length\n\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i\n\n return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j)\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; ++i) {\n const header = object[i]\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n appendHeader(headers, header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n const keys = Object.keys(object)\n for (let i = 0; i < keys.length; ++i) {\n appendHeader(headers, keys[i], object[keys[i]])\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-headers-append\n */\nfunction appendHeader (headers, name, value) {\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (headers[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (headers[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n return headers[kHeadersList].append(name, value)\n\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies === null ? null : [...init.cookies]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n const value = this[kHeadersMap].get(name.toLowerCase())\n\n // 1. If list does not contain name, then return null.\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return value === undefined ? null : value.value\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n if (init === kConstruct) {\n return\n }\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n return appendHeader(this, name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this’s header list does not contain `Set-Cookie`, then return « ».\n // 2. Return the values of all headers in this’s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (let i = 0; i < names.length; ++i) {\n const [name, value] = names[i]\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (let j = 0; j < cookies.length; ++j) {\n headers.push([name, cookies[j]])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key+value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n },\n [util.inspect.custom]: {\n enumerable: false\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\nconst textEncoder = new TextEncoder('utf-8')\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = textEncoder.encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatusSet.has(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams, err = null) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err }))\n : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err }))\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer,\n normalizeMethodRecord\n} = require('./util')\nconst {\n forbiddenMethodsSet,\n corsSafeListedMethodsSet,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kConstruct) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n const initHasKey = Object.keys(init).length !== 0\n\n // 13. If init is not empty, then:\n if (initHasKey) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer’s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(method)) {\n throw new TypeError(`'${method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethodsSet.has(method.toUpperCase())) {\n throw new TypeError(`'${method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethodRecord[method] ?? normalizeMethod(method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethodsSet.has(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (initHasKey) {\n /** @type {HeadersList} */\n const headersList = this[kHeaders][kHeadersList]\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList)\n\n // 3. Empty this’s headers’s header list.\n headersList.clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers instanceof HeadersList) {\n for (const [key, val] of headers) {\n headersList.append(key, val)\n }\n // Note: Copy the `set-cookie` meta-data.\n headersList.cookies = headers.cookies\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kConstruct)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers(kConstruct)\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n safeMethodsSet,\n requestBodyHeader,\n subresourceSet,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\nconst GET_OR_HEAD = ['GET', 'HEAD']\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller’s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller’s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nfunction fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject’s signal’s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject’s signal’s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject’s signal’s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return Promise.resolve()\n }\n\n // 2. If response’s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller’s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return Promise.resolve()\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return Promise.resolve()\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!response.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 5. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to\n // request’s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresourceSet.has(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nfunction schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return Promise.resolve(makeAppropriateNetworkError(fetchParams))\n }\n\n // 2. Let request be fetchParams’s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request’s current URL’s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return Promise.resolve(makeNetworkError('about scheme is not supported'))\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request’s current URL’s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.'))\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return Promise.resolve(makeNetworkError('invalid method'))\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType’s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body’s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // « (`Content-Length`, length), (`Content-Type`, type) », and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return Promise.resolve(response)\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return Promise.resolve(makeNetworkError('failed to fetch the data URL'))\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body as a body.\n return Promise.resolve(makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n }))\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return Promise.resolve(makeNetworkError('not implemented... yet...'))\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return Promise.resolve(makeNetworkError('unknown scheme'))\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nfunction fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n return fullyReadBody(response.body, processBody, processBodyError)\n }\n return Promise.resolve()\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatusSet.has(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nfunction httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return Promise.resolve(makeNetworkError(err))\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme'))\n }\n\n // 7. If request’s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return Promise.resolve(makeNetworkError('redirect count exceeded'))\n }\n\n // 8. Increase request’s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return Promise.resolve(makeNetworkError('cross origin not allowed for request mode \"cors\"'))\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return Promise.resolve(makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n ))\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return Promise.resolve(makeNetworkError())\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !GET_OR_HEAD.includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s current URL’s origin is not same origin with locationURL’s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request’s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n\n // https://fetch.spec.whatwg.org/#authentication-entries\n request.headersList.delete('proxy-authorization', true)\n\n // \"Cookie\" and \"Host\" are forbidden request-headers, which undici doesn't implement.\n request.headersList.delete('cookie')\n request.headersList.delete('host')\n }\n\n // 14. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n httpRequest.headersList.delete('host')\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethodsSet.has(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams, err)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams’s\n // controller’s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n\n // For H2, the headers are a plain JS object\n // We distinguish between them and iterate accordingly\n if (Array.isArray(headersList)) {\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n } else {\n const keys = Object.keys(headersList)\n for (const key of keys) {\n const val = headersList[key]\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatusSet.has(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers[kHeadersList].append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n","'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n","'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr’s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr’s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr’s result to null.\n fr[kResult] = null\n\n // 4. Set fr’s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob’s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr’s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr’s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr’s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr’s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr’s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type’s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding’s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n","'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute’s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute’s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n","'use strict'\n\nmodule.exports = {\n kConstruct: require('../core/symbols').kConstruct\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n","'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n","'use strict'\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = \n token = 1*\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = \n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n validateCookieName,\n validateCookiePath,\n validateCookieValue,\n toIMFDate,\n stringify\n}\n","'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n","'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = headers.getSetCookie()\n\n if (!cookies) {\n return []\n }\n\n return cookies.map((pair) => parseSetCookie(pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n","'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n","'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n","'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n","'use strict'\n\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n","'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = crypto.randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n","'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik \n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { getGlobalOrigin } = require('../fetch/global')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let baseURL be this's relevant settings object's API base URL.\n const baseURL = getGlobalOrigin()\n\n // 1. Let urlRecord be the result of applying the URL parser to url with baseURL.\n let urlRecord\n\n try {\n urlRecord = new URL(url, baseURL)\n } catch (e) {\n // 3. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 4. If urlRecord’s scheme is \"http\", then set urlRecord’s scheme to \"ws\".\n if (urlRecord.protocol === 'http:') {\n urlRecord.protocol = 'ws:'\n } else if (urlRecord.protocol === 'https:') {\n // 5. Otherwise, if urlRecord’s scheme is \"https\", set urlRecord’s scheme to \"wss\".\n urlRecord.protocol = 'wss:'\n }\n\n // 6. If urlRecord’s scheme is not \"ws\" or \"wss\", then throw a \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 7. If urlRecord’s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash || urlRecord.href.endsWith('#')) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 8. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 9. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 10. Set this's url to urlRecord.\n this[kWebSocketURL] = new URL(urlRecord.href)\n\n // 11. Let client be this's relevant settings object.\n\n // 12. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data’s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object’s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response’s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute’s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute’s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst RetryHandler = require('./lib/handler/RetryHandler')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\nmodule.exports.RetryHandler = RetryHandler\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n if (typeof err === 'object') {\n Error.captureStackTrace(err, this)\n }\n\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nconst undici_1 = require(\"undici\");\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes || (exports.HttpCodes = HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers || (exports.Headers = Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes || (exports.MediaTypes = MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n readBodyBuffer() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n const chunks = [];\n this.message.on('data', (chunk) => {\n chunks.push(chunk);\n });\n this.message.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n getAgentDispatcher(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (!useProxy) {\n return;\n }\n return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (!useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if tunneling agent isn't assigned create a new agent\n if (!agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _getProxyAgentDispatcher(parsedUrl, proxyUrl) {\n let proxyAgent;\n if (this._keepAlive) {\n proxyAgent = this._proxyAgentDispatcher;\n }\n // if agent is already assigned use that agent.\n if (proxyAgent) {\n return proxyAgent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && {\n token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}`\n })));\n this._proxyAgentDispatcher = proxyAgent;\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, {\n rejectUnauthorized: false\n });\n }\n return proxyAgent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n (0, core_1.debug)(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n (0, core_1.setSecret)(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\n_a = fs.promises\n// export const {open} = 'fs'\n, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;\n// export const {open} = 'fs'\nexports.IS_WINDOWS = process.platform === 'win32';\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nexports.UV_FS_O_EXLOCK = 0x10000000;\nexports.READONLY = fs.constants.O_RDONLY;\nfunction exists(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield exports.stat(fsPath);\n }\n catch (err) {\n if (err.code === 'ENOENT') {\n return false;\n }\n throw err;\n }\n return true;\n });\n}\nexports.exists = exists;\nfunction isDirectory(fsPath, useStat = false) {\n return __awaiter(this, void 0, void 0, function* () {\n const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nexports.isDirectory = isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */\nfunction isRooted(p) {\n p = normalizeSeparators(p);\n if (!p) {\n throw new Error('isRooted() parameter \"p\" cannot be empty');\n }\n if (exports.IS_WINDOWS) {\n return (p.startsWith('\\\\') || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ); // e.g. C: or C:\\hello\n }\n return p.startsWith('/');\n}\nexports.isRooted = isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */\nfunction tryGetExecutablePath(filePath, extensions) {\n return __awaiter(this, void 0, void 0, function* () {\n let stats = undefined;\n try {\n // test file exists\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = path.extname(filePath).toUpperCase();\n if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {\n return filePath;\n }\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions) {\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = path.dirname(filePath);\n const upperName = path.basename(filePath).toUpperCase();\n for (const actualName of yield exports.readdir(directory)) {\n if (upperName === actualName.toUpperCase()) {\n filePath = path.join(directory, actualName);\n break;\n }\n }\n }\n catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n }\n return '';\n });\n}\nexports.tryGetExecutablePath = tryGetExecutablePath;\nfunction normalizeSeparators(p) {\n p = p || '';\n if (exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, '\\\\');\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, '\\\\');\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, '/');\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction isUnixExecutable(stats) {\n return ((stats.mode & 1) > 0 ||\n ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||\n ((stats.mode & 64) > 0 && stats.uid === process.getuid()));\n}\n// Get the path of cmd.exe in windows\nfunction getCmdPath() {\n var _a;\n return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nexports.getCmdPath = getCmdPath;\n//# sourceMappingURL=io-util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;\nconst assert_1 = require(\"assert\");\nconst path = __importStar(require(\"path\"));\nconst ioUtil = __importStar(require(\"./io-util\"));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */\nfunction cp(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { force, recursive, copySourceDirectory } = readCopyOptions(options);\n const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) {\n return;\n }\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory\n ? path.join(dest, path.basename(source))\n : dest;\n if (!(yield ioUtil.exists(source))) {\n throw new Error(`no such file or directory: ${source}`);\n }\n const sourceStat = yield ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) {\n throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n }\n else {\n yield cpDirRecursive(source, newDest, 0, force);\n }\n }\n else {\n if (path.relative(source, newDest) === '') {\n // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n }\n yield copyFile(source, newDest, force);\n }\n });\n}\nexports.cp = cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */\nfunction mv(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (yield ioUtil.exists(dest)) {\n let destExists = true;\n if (yield ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = path.join(dest, path.basename(source));\n destExists = yield ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) {\n yield rmRF(dest);\n }\n else {\n throw new Error('Destination already exists');\n }\n }\n }\n yield mkdirP(path.dirname(dest));\n yield ioUtil.rename(source, dest);\n });\n}\nexports.mv = mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */\nfunction rmRF(inputPath) {\n return __awaiter(this, void 0, void 0, function* () {\n if (ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) {\n throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n }\n try {\n // note if path does not exist, error is silent\n yield ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n }\n catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nexports.rmRF = rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */\nfunction mkdirP(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n assert_1.ok(fsPath, 'a path argument must be provided');\n yield ioUtil.mkdir(fsPath, { recursive: true });\n });\n}\nexports.mkdirP = mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */\nfunction which(tool, check) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // recursive when check=true\n if (check) {\n const result = yield which(tool, false);\n if (!result) {\n if (ioUtil.IS_WINDOWS) {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n }\n else {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n }\n return result;\n }\n const matches = yield findInPath(tool);\n if (matches && matches.length > 0) {\n return matches[0];\n }\n return '';\n });\n}\nexports.which = which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */\nfunction findInPath(tool) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // build the list of extensions to try\n const extensions = [];\n if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) {\n for (const extension of process.env['PATHEXT'].split(path.delimiter)) {\n if (extension) {\n extensions.push(extension);\n }\n }\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if (ioUtil.isRooted(tool)) {\n const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) {\n return [filePath];\n }\n return [];\n }\n // if any path separators, return empty\n if (tool.includes(path.sep)) {\n return [];\n }\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split(path.delimiter)) {\n if (p) {\n directories.push(p);\n }\n }\n }\n // find all matches\n const matches = [];\n for (const directory of directories) {\n const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions);\n if (filePath) {\n matches.push(filePath);\n }\n }\n return matches;\n });\n}\nexports.findInPath = findInPath;\nfunction readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null\n ? true\n : Boolean(options.copySourceDirectory);\n return { force, recursive, copySourceDirectory };\n}\nfunction cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return __awaiter(this, void 0, void 0, function* () {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255)\n return;\n currentDepth++;\n yield mkdirP(destDir);\n const files = yield ioUtil.readdir(sourceDir);\n for (const fileName of files) {\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) {\n // Recurse\n yield cpDirRecursive(srcFile, destFile, currentDepth, force);\n }\n else {\n yield copyFile(srcFile, destFile, force);\n }\n }\n // Change the mode for the newly created directory\n yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction copyFile(srcFile, destFile, force) {\n return __awaiter(this, void 0, void 0, function* () {\n if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield ioUtil.lstat(destFile);\n yield ioUtil.unlink(destFile);\n }\n catch (e) {\n // Try to override file permission\n if (e.code === 'EPERM') {\n yield ioUtil.chmod(destFile, '0666');\n yield ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield ioUtil.readlink(srcFile);\n yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);\n }\n else if (!(yield ioUtil.exists(destFile)) || force) {\n yield ioUtil.copyFile(srcFile, destFile);\n }\n });\n}\n//# sourceMappingURL=io.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argStringToArray = exports.ToolRunner = void 0;\nconst os = __importStar(require(\"os\"));\nconst events = __importStar(require(\"events\"));\nconst child = __importStar(require(\"child_process\"));\nconst path = __importStar(require(\"path\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst ioUtil = __importStar(require(\"@actions/io/lib/io-util\"));\nconst timers_1 = require(\"timers\");\n/* eslint-disable @typescript-eslint/unbound-method */\nconst IS_WINDOWS = process.platform === 'win32';\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */\nclass ToolRunner extends events.EventEmitter {\n constructor(toolPath, args, options) {\n super();\n if (!toolPath) {\n throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n }\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) {\n this.options.listeners.debug(message);\n }\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool\n if (IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows + verbatim\n else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows (regular)\n else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args) {\n cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n }\n }\n else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf(os.EOL);\n while (n > -1) {\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + os.EOL.length);\n n = s.indexOf(os.EOL);\n }\n return s;\n }\n catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return '';\n }\n }\n _getSpawnFileName() {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n return process.env['COMSPEC'] || 'cmd.exe';\n }\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args) {\n argline += ' ';\n argline += options.windowsVerbatimArguments\n ? a\n : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [argline];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return (this._endsWith(upperToolPath, '.CMD') ||\n this._endsWith(upperToolPath, '.BAT'));\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) {\n return this._uvQuoteCmdArg(arg);\n }\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) {\n return '\"\"';\n }\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n ' ',\n '\\t',\n '&',\n '(',\n ')',\n '[',\n ']',\n '{',\n '}',\n '^',\n '=',\n ';',\n '!',\n \"'\",\n '+',\n ',',\n '`',\n '~',\n '|',\n '<',\n '>',\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg) {\n if (cmdSpecialChars.some(x => x === char)) {\n needsQuotes = true;\n break;\n }\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) {\n return arg;\n }\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\'; // double the slash\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) {\n // Need double quotation for empty argument\n return '\"\"';\n }\n if (!arg.includes(' ') && !arg.includes('\\t') && !arg.includes('\"')) {\n // No quotation needed\n return arg;\n }\n if (!arg.includes('\"') && !arg.includes('\\\\')) {\n // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n }\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\';\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\\\\';\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result['windowsVerbatimArguments'] =\n options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) {\n result.argv0 = `\"${toolPath}\"`;\n }\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */\n exec() {\n return __awaiter(this, void 0, void 0, function* () {\n // root the tool path if it is unrooted and contains relative pathing\n if (!ioUtil.isRooted(this.toolPath) &&\n (this.toolPath.includes('/') ||\n (IS_WINDOWS && this.toolPath.includes('\\\\')))) {\n // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n }\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield io.which(this.toolPath, true);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug('arguments:');\n for (const arg of this.args) {\n this._debug(` ${arg}`);\n }\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);\n }\n const state = new ExecState(optionsNonNull, this.toolPath);\n state.on('debug', (message) => {\n this._debug(message);\n });\n if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) {\n return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n }\n const fileName = this._getSpawnFileName();\n const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = '';\n if (cp.stdout) {\n cp.stdout.on('data', (data) => {\n if (this.options.listeners && this.options.listeners.stdout) {\n this.options.listeners.stdout(data);\n }\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(data);\n }\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.stdline) {\n this.options.listeners.stdline(line);\n }\n });\n });\n }\n let errbuffer = '';\n if (cp.stderr) {\n cp.stderr.on('data', (data) => {\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) {\n this.options.listeners.stderr(data);\n }\n if (!optionsNonNull.silent &&\n optionsNonNull.errStream &&\n optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr\n ? optionsNonNull.errStream\n : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.errline) {\n this.options.listeners.errline(line);\n }\n });\n });\n }\n cp.on('error', (err) => {\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on('exit', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on('close', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on('done', (error, exitCode) => {\n if (stdbuffer.length > 0) {\n this.emit('stdline', stdbuffer);\n }\n if (errbuffer.length > 0) {\n this.emit('errline', errbuffer);\n }\n cp.removeAllListeners();\n if (error) {\n reject(error);\n }\n else {\n resolve(exitCode);\n }\n });\n if (this.options.input) {\n if (!cp.stdin) {\n throw new Error('child process missing stdin');\n }\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nexports.ToolRunner = ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */\nfunction argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = '';\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') {\n arg += '\\\\';\n }\n arg += c;\n escaped = false;\n }\n for (let i = 0; i < argString.length; i++) {\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) {\n inQuotes = !inQuotes;\n }\n else {\n append(c);\n }\n continue;\n }\n if (c === '\\\\' && escaped) {\n append(c);\n continue;\n }\n if (c === '\\\\' && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === ' ' && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = '';\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) {\n args.push(arg.trim());\n }\n return args;\n}\nexports.argStringToArray = argStringToArray;\nclass ExecState extends events.EventEmitter {\n constructor(options, toolPath) {\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = '';\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) {\n throw new Error('toolPath must not be empty');\n }\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) {\n this.delay = options.delay;\n }\n }\n CheckComplete() {\n if (this.done) {\n return;\n }\n if (this.processClosed) {\n this._setResult();\n }\n else if (this.processExited) {\n this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this);\n }\n }\n _debug(message) {\n this.emit('debug', message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) {\n error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n }\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) {\n error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n }\n else if (this.processStderr && this.options.failOnStdErr) {\n error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit('done', error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) {\n return;\n }\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay /\n 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n//# sourceMappingURL=toolrunner.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExecOutput = exports.exec = void 0;\nconst string_decoder_1 = require(\"string_decoder\");\nconst tr = __importStar(require(\"./toolrunner\"));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */\nfunction exec(commandLine, args, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const commandArgs = tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) {\n throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n }\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nexports.exec = exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */\nfunction getExecOutput(commandLine, args, options) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n let stdout = '';\n let stderr = '';\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new string_decoder_1.StringDecoder('utf8');\n const stderrDecoder = new string_decoder_1.StringDecoder('utf8');\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data) => {\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) {\n originalStdErrListener(data);\n }\n };\n const stdOutListener = (data) => {\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) {\n originalStdoutListener(data);\n }\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener });\n const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode,\n stdout,\n stderr\n };\n });\n}\nexports.getExecOutput = getExecOutput;\n//# sourceMappingURL=exec.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst exec = __importStar(require(\"@actions/exec\"));\nconst getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout: version } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Version\"', undefined, {\n silent: true\n });\n const { stdout: name } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n return {\n name: name.trim(),\n version: version.trim()\n };\n});\nconst getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n const { stdout } = yield exec.getExecOutput('sw_vers', undefined, {\n silent: true\n });\n const version = (_b = (_a = stdout.match(/ProductVersion:\\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';\n const name = (_d = (_c = stdout.match(/ProductName:\\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : '';\n return {\n name,\n version\n };\n});\nconst getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n const [name, version] = stdout.trim().split('\\n');\n return {\n name,\n version\n };\n});\nexports.platform = os_1.default.platform();\nexports.arch = os_1.default.arch();\nexports.isWindows = exports.platform === 'win32';\nexports.isMacOS = exports.platform === 'darwin';\nexports.isLinux = exports.platform === 'linux';\nfunction getDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n return Object.assign(Object.assign({}, (yield (exports.isWindows\n ? getWindowsInfo()\n : exports.isMacOS\n ? getMacOsInfo()\n : getLinuxInfo()))), { platform: exports.platform,\n arch: exports.arch,\n isWindows: exports.isWindows,\n isMacOS: exports.isMacOS,\n isLinux: exports.isLinux });\n });\n}\nexports.getDetails = getDetails;\n//# sourceMappingURL=platform.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode || (exports.ExitCode = ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = (0, utils_1.toCommandValue)(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val));\n }\n (0, command_1.issueCommand)('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n (0, command_1.issueCommand)('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n (0, file_command_1.issueFileCommand)('PATH', inputPath);\n }\n else {\n (0, command_1.issueCommand)('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n process.stdout.write(os.EOL);\n (0, command_1.issueCommand)('set-output', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n (0, command_1.issue)('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n (0, command_1.issueCommand)('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n (0, command_1.issueCommand)('error', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n (0, command_1.issueCommand)('warning', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n (0, command_1.issueCommand)('notice', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n (0, command_1.issue)('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n (0, command_1.issue)('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n (0, command_1.issueCommand)('save-state', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n/**\n * Platform utilities exports\n */\nexports.platform = __importStar(require(\"./platform\"));\n//# sourceMappingURL=core.js.map","/*!\n * Tmp\n *\n * Copyright (c) 2011-2017 KARASZI Istvan \n *\n * MIT Licensed\n */\n\n/*\n * Module dependencies.\n */\nconst fs = require('fs');\nconst os = require('os');\nconst path = require('path');\nconst crypto = require('crypto');\nconst _c = { fs: fs.constants, os: os.constants };\n\n/*\n * The working inner variables.\n */\nconst // the random characters to choose from\n RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n TEMPLATE_PATTERN = /XXXXXX/,\n DEFAULT_TRIES = 3,\n CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR),\n // constants are off on the windows platform and will not match the actual errno codes\n IS_WIN32 = os.platform() === 'win32',\n EBADF = _c.EBADF || _c.os.errno.EBADF,\n ENOENT = _c.ENOENT || _c.os.errno.ENOENT,\n DIR_MODE = 0o700 /* 448 */,\n FILE_MODE = 0o600 /* 384 */,\n EXIT = 'exit',\n // this will hold the objects need to be removed on exit\n _removeObjects = [],\n // API change in fs.rmdirSync leads to error when passing in a second parameter, e.g. the callback\n FN_RMDIR_SYNC = fs.rmdirSync.bind(fs);\n\nlet _gracefulCleanup = false;\n\n/**\n * Recursively remove a directory and its contents.\n *\n * @param {string} dirPath path of directory to remove\n * @param {Function} callback\n * @private\n */\nfunction rimraf(dirPath, callback) {\n return fs.rm(dirPath, { recursive: true }, callback);\n}\n\n/**\n * Recursively remove a directory and its contents, synchronously.\n *\n * @param {string} dirPath path of directory to remove\n * @private\n */\nfunction FN_RIMRAF_SYNC(dirPath) {\n return fs.rmSync(dirPath, { recursive: true });\n}\n\n/**\n * Gets a temporary file name.\n *\n * @param {(Options|tmpNameCallback)} options options or callback\n * @param {?tmpNameCallback} callback the callback function\n */\nfunction tmpName(options, callback) {\n const args = _parseArguments(options, callback),\n opts = args[0],\n cb = args[1];\n\n _assertAndSanitizeOptions(opts, function (err, sanitizedOptions) {\n if (err) return cb(err);\n\n let tries = sanitizedOptions.tries;\n (function _getUniqueName() {\n try {\n const name = _generateTmpName(sanitizedOptions);\n\n // check whether the path exists then retry if needed\n fs.stat(name, function (err) {\n /* istanbul ignore else */\n if (!err) {\n /* istanbul ignore else */\n if (tries-- > 0) return _getUniqueName();\n\n return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));\n }\n\n cb(null, name);\n });\n } catch (err) {\n cb(err);\n }\n })();\n });\n}\n\n/**\n * Synchronous version of tmpName.\n *\n * @param {Object} options\n * @returns {string} the generated random name\n * @throws {Error} if the options are invalid or could not generate a filename\n */\nfunction tmpNameSync(options) {\n const args = _parseArguments(options),\n opts = args[0];\n\n const sanitizedOptions = _assertAndSanitizeOptionsSync(opts);\n\n let tries = sanitizedOptions.tries;\n do {\n const name = _generateTmpName(sanitizedOptions);\n try {\n fs.statSync(name);\n } catch (e) {\n return name;\n }\n } while (tries-- > 0);\n\n throw new Error('Could not get a unique tmp filename, max tries reached');\n}\n\n/**\n * Creates and opens a temporary file.\n *\n * @param {(Options|null|undefined|fileCallback)} options the config options or the callback function or null or undefined\n * @param {?fileCallback} callback\n */\nfunction file(options, callback) {\n const args = _parseArguments(options, callback),\n opts = args[0],\n cb = args[1];\n\n // gets a temporary filename\n tmpName(opts, function _tmpNameCreated(err, name) {\n /* istanbul ignore else */\n if (err) return cb(err);\n\n // create and open the file\n fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {\n /* istanbu ignore else */\n if (err) return cb(err);\n\n if (opts.discardDescriptor) {\n return fs.close(fd, function _discardCallback(possibleErr) {\n // the chance of getting an error on close here is rather low and might occur in the most edgiest cases only\n return cb(possibleErr, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts, false));\n });\n } else {\n // detachDescriptor passes the descriptor whereas discardDescriptor closes it, either way, we no longer care\n // about the descriptor\n const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;\n cb(null, name, fd, _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts, false));\n }\n });\n });\n}\n\n/**\n * Synchronous version of file.\n *\n * @param {Options} options\n * @returns {FileSyncObject} object consists of name, fd and removeCallback\n * @throws {Error} if cannot create a file\n */\nfunction fileSync(options) {\n const args = _parseArguments(options),\n opts = args[0];\n\n const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;\n const name = tmpNameSync(opts);\n let fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);\n /* istanbul ignore else */\n if (opts.discardDescriptor) {\n fs.closeSync(fd);\n fd = undefined;\n }\n\n return {\n name: name,\n fd: fd,\n removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts, true)\n };\n}\n\n/**\n * Creates a temporary directory.\n *\n * @param {(Options|dirCallback)} options the options or the callback function\n * @param {?dirCallback} callback\n */\nfunction dir(options, callback) {\n const args = _parseArguments(options, callback),\n opts = args[0],\n cb = args[1];\n\n // gets a temporary filename\n tmpName(opts, function _tmpNameCreated(err, name) {\n /* istanbul ignore else */\n if (err) return cb(err);\n\n // create the directory\n fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {\n /* istanbul ignore else */\n if (err) return cb(err);\n\n cb(null, name, _prepareTmpDirRemoveCallback(name, opts, false));\n });\n });\n}\n\n/**\n * Synchronous version of dir.\n *\n * @param {Options} options\n * @returns {DirSyncObject} object consists of name and removeCallback\n * @throws {Error} if it cannot create a directory\n */\nfunction dirSync(options) {\n const args = _parseArguments(options),\n opts = args[0];\n\n const name = tmpNameSync(opts);\n fs.mkdirSync(name, opts.mode || DIR_MODE);\n\n return {\n name: name,\n removeCallback: _prepareTmpDirRemoveCallback(name, opts, true)\n };\n}\n\n/**\n * Removes files asynchronously.\n *\n * @param {Object} fdPath\n * @param {Function} next\n * @private\n */\nfunction _removeFileAsync(fdPath, next) {\n const _handler = function (err) {\n if (err && !_isENOENT(err)) {\n // reraise any unanticipated error\n return next(err);\n }\n next();\n };\n\n if (0 <= fdPath[0])\n fs.close(fdPath[0], function () {\n fs.unlink(fdPath[1], _handler);\n });\n else fs.unlink(fdPath[1], _handler);\n}\n\n/**\n * Removes files synchronously.\n *\n * @param {Object} fdPath\n * @private\n */\nfunction _removeFileSync(fdPath) {\n let rethrownException = null;\n try {\n if (0 <= fdPath[0]) fs.closeSync(fdPath[0]);\n } catch (e) {\n // reraise any unanticipated error\n if (!_isEBADF(e) && !_isENOENT(e)) throw e;\n } finally {\n try {\n fs.unlinkSync(fdPath[1]);\n } catch (e) {\n // reraise any unanticipated error\n if (!_isENOENT(e)) rethrownException = e;\n }\n }\n if (rethrownException !== null) {\n throw rethrownException;\n }\n}\n\n/**\n * Prepares the callback for removal of the temporary file.\n *\n * Returns either a sync callback or a async callback depending on whether\n * fileSync or file was called, which is expressed by the sync parameter.\n *\n * @param {string} name the path of the file\n * @param {number} fd file descriptor\n * @param {Object} opts\n * @param {boolean} sync\n * @returns {fileCallback | fileCallbackSync}\n * @private\n */\nfunction _prepareTmpFileRemoveCallback(name, fd, opts, sync) {\n const removeCallbackSync = _prepareRemoveCallback(_removeFileSync, [fd, name], sync);\n const removeCallback = _prepareRemoveCallback(_removeFileAsync, [fd, name], sync, removeCallbackSync);\n\n if (!opts.keep) _removeObjects.unshift(removeCallbackSync);\n\n return sync ? removeCallbackSync : removeCallback;\n}\n\n/**\n * Prepares the callback for removal of the temporary directory.\n *\n * Returns either a sync callback or a async callback depending on whether\n * tmpFileSync or tmpFile was called, which is expressed by the sync parameter.\n *\n * @param {string} name\n * @param {Object} opts\n * @param {boolean} sync\n * @returns {Function} the callback\n * @private\n */\nfunction _prepareTmpDirRemoveCallback(name, opts, sync) {\n const removeFunction = opts.unsafeCleanup ? rimraf : fs.rmdir.bind(fs);\n const removeFunctionSync = opts.unsafeCleanup ? FN_RIMRAF_SYNC : FN_RMDIR_SYNC;\n const removeCallbackSync = _prepareRemoveCallback(removeFunctionSync, name, sync);\n const removeCallback = _prepareRemoveCallback(removeFunction, name, sync, removeCallbackSync);\n if (!opts.keep) _removeObjects.unshift(removeCallbackSync);\n\n return sync ? removeCallbackSync : removeCallback;\n}\n\n/**\n * Creates a guarded function wrapping the removeFunction call.\n *\n * The cleanup callback is save to be called multiple times.\n * Subsequent invocations will be ignored.\n *\n * @param {Function} removeFunction\n * @param {string} fileOrDirName\n * @param {boolean} sync\n * @param {cleanupCallbackSync?} cleanupCallbackSync\n * @returns {cleanupCallback | cleanupCallbackSync}\n * @private\n */\nfunction _prepareRemoveCallback(removeFunction, fileOrDirName, sync, cleanupCallbackSync) {\n let called = false;\n\n // if sync is true, the next parameter will be ignored\n return function _cleanupCallback(next) {\n /* istanbul ignore else */\n if (!called) {\n // remove cleanupCallback from cache\n const toRemove = cleanupCallbackSync || _cleanupCallback;\n const index = _removeObjects.indexOf(toRemove);\n /* istanbul ignore else */\n if (index >= 0) _removeObjects.splice(index, 1);\n\n called = true;\n if (sync || removeFunction === FN_RMDIR_SYNC || removeFunction === FN_RIMRAF_SYNC) {\n return removeFunction(fileOrDirName);\n } else {\n return removeFunction(fileOrDirName, next || function () {});\n }\n }\n };\n}\n\n/**\n * The garbage collector.\n *\n * @private\n */\nfunction _garbageCollector() {\n /* istanbul ignore else */\n if (!_gracefulCleanup) return;\n\n // the function being called removes itself from _removeObjects,\n // loop until _removeObjects is empty\n while (_removeObjects.length) {\n try {\n _removeObjects[0]();\n } catch (e) {\n // already removed?\n }\n }\n}\n\n/**\n * Random name generator based on crypto.\n * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript\n *\n * @param {number} howMany\n * @returns {string} the generated random name\n * @private\n */\nfunction _randomChars(howMany) {\n let value = [],\n rnd = null;\n\n // make sure that we do not fail because we ran out of entropy\n try {\n rnd = crypto.randomBytes(howMany);\n } catch (e) {\n rnd = crypto.pseudoRandomBytes(howMany);\n }\n\n for (let i = 0; i < howMany; i++) {\n value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);\n }\n\n return value.join('');\n}\n\n/**\n * Checks whether the `obj` parameter is defined or not.\n *\n * @param {Object} obj\n * @returns {boolean} true if the object is undefined\n * @private\n */\nfunction _isUndefined(obj) {\n return typeof obj === 'undefined';\n}\n\n/**\n * Parses the function arguments.\n *\n * This function helps to have optional arguments.\n *\n * @param {(Options|null|undefined|Function)} options\n * @param {?Function} callback\n * @returns {Array} parsed arguments\n * @private\n */\nfunction _parseArguments(options, callback) {\n /* istanbul ignore else */\n if (typeof options === 'function') {\n return [{}, options];\n }\n\n /* istanbul ignore else */\n if (_isUndefined(options)) {\n return [{}, callback];\n }\n\n // copy options so we do not leak the changes we make internally\n const actualOptions = {};\n for (const key of Object.getOwnPropertyNames(options)) {\n actualOptions[key] = options[key];\n }\n\n return [actualOptions, callback];\n}\n\n/**\n * Resolve the specified path name in respect to tmpDir.\n *\n * The specified name might include relative path components, e.g. ../\n * so we need to resolve in order to be sure that is is located inside tmpDir\n *\n * @private\n */\nfunction _resolvePath(name, tmpDir, cb) {\n const pathToResolve = path.isAbsolute(name) ? name : path.join(tmpDir, name);\n\n fs.stat(pathToResolve, function (err) {\n if (err) {\n fs.realpath(path.dirname(pathToResolve), function (err, parentDir) {\n if (err) return cb(err);\n\n cb(null, path.join(parentDir, path.basename(pathToResolve)));\n });\n } else {\n fs.realpath(pathToResolve, cb);\n }\n });\n}\n\n/**\n * Resolve the specified path name in respect to tmpDir.\n *\n * The specified name might include relative path components, e.g. ../\n * so we need to resolve in order to be sure that is is located inside tmpDir\n *\n * @private\n */\nfunction _resolvePathSync(name, tmpDir) {\n const pathToResolve = path.isAbsolute(name) ? name : path.join(tmpDir, name);\n\n try {\n fs.statSync(pathToResolve);\n return fs.realpathSync(pathToResolve);\n } catch (_err) {\n const parentDir = fs.realpathSync(path.dirname(pathToResolve));\n\n return path.join(parentDir, path.basename(pathToResolve));\n }\n}\n\n/**\n * Generates a new temporary name.\n *\n * @param {Object} opts\n * @returns {string} the new random name according to opts\n * @private\n */\nfunction _generateTmpName(opts) {\n const tmpDir = opts.tmpdir;\n\n /* istanbul ignore else */\n if (!_isUndefined(opts.name)) {\n return path.join(tmpDir, opts.dir, opts.name);\n }\n\n /* istanbul ignore else */\n if (!_isUndefined(opts.template)) {\n return path.join(tmpDir, opts.dir, opts.template).replace(TEMPLATE_PATTERN, _randomChars(6));\n }\n\n // prefix and postfix\n const name = [\n opts.prefix ? opts.prefix : 'tmp',\n '-',\n process.pid,\n '-',\n _randomChars(12),\n opts.postfix ? '-' + opts.postfix : ''\n ].join('');\n\n return path.join(tmpDir, opts.dir, name);\n}\n\n/**\n * Asserts and sanitizes the basic options.\n *\n * @private\n */\nfunction _assertOptionsBase(options) {\n if (!_isUndefined(options.name)) {\n const name = options.name;\n\n // assert that name is not absolute and does not contain a path\n if (path.isAbsolute(name)) throw new Error(`name option must not contain an absolute path, found \"${name}\".`);\n\n // must not fail on valid . or .. or similar such constructs\n const basename = path.basename(name);\n if (basename === '..' || basename === '.' || basename !== name)\n throw new Error(`name option must not contain a path, found \"${name}\".`);\n }\n\n /* istanbul ignore else */\n if (!_isUndefined(options.template) && !options.template.match(TEMPLATE_PATTERN)) {\n throw new Error(`Invalid template, found \"${options.template}\".`);\n }\n\n /* istanbul ignore else */\n if ((!_isUndefined(options.tries) && isNaN(options.tries)) || options.tries < 0) {\n throw new Error(`Invalid tries, found \"${options.tries}\".`);\n }\n\n // if a name was specified we will try once\n options.tries = _isUndefined(options.name) ? options.tries || DEFAULT_TRIES : 1;\n options.keep = !!options.keep;\n options.detachDescriptor = !!options.detachDescriptor;\n options.discardDescriptor = !!options.discardDescriptor;\n options.unsafeCleanup = !!options.unsafeCleanup;\n\n // for completeness' sake only, also keep (multiple) blanks if the user, purportedly sane, requests us to\n options.prefix = _isUndefined(options.prefix) ? '' : options.prefix;\n options.postfix = _isUndefined(options.postfix) ? '' : options.postfix;\n}\n\n/**\n * Gets the relative directory to tmpDir.\n *\n * @private\n */\nfunction _getRelativePath(option, name, tmpDir, cb) {\n if (_isUndefined(name)) return cb(null);\n\n _resolvePath(name, tmpDir, function (err, resolvedPath) {\n if (err) return cb(err);\n\n const relativePath = path.relative(tmpDir, resolvedPath);\n\n if (!resolvedPath.startsWith(tmpDir)) {\n return cb(new Error(`${option} option must be relative to \"${tmpDir}\", found \"${relativePath}\".`));\n }\n\n cb(null, relativePath);\n });\n}\n\n/**\n * Gets the relative path to tmpDir.\n *\n * @private\n */\nfunction _getRelativePathSync(option, name, tmpDir) {\n if (_isUndefined(name)) return;\n\n const resolvedPath = _resolvePathSync(name, tmpDir);\n const relativePath = path.relative(tmpDir, resolvedPath);\n\n if (!resolvedPath.startsWith(tmpDir)) {\n throw new Error(`${option} option must be relative to \"${tmpDir}\", found \"${relativePath}\".`);\n }\n\n return relativePath;\n}\n\n/**\n * Asserts whether the specified options are valid, also sanitizes options and provides sane defaults for missing\n * options.\n *\n * @private\n */\nfunction _assertAndSanitizeOptions(options, cb) {\n _getTmpDir(options, function (err, tmpDir) {\n if (err) return cb(err);\n\n options.tmpdir = tmpDir;\n\n try {\n _assertOptionsBase(options, tmpDir);\n } catch (err) {\n return cb(err);\n }\n\n // sanitize dir, also keep (multiple) blanks if the user, purportedly sane, requests us to\n _getRelativePath('dir', options.dir, tmpDir, function (err, dir) {\n if (err) return cb(err);\n\n options.dir = _isUndefined(dir) ? '' : dir;\n\n // sanitize further if template is relative to options.dir\n _getRelativePath('template', options.template, tmpDir, function (err, template) {\n if (err) return cb(err);\n\n options.template = template;\n\n cb(null, options);\n });\n });\n });\n}\n\n/**\n * Asserts whether the specified options are valid, also sanitizes options and provides sane defaults for missing\n * options.\n *\n * @private\n */\nfunction _assertAndSanitizeOptionsSync(options) {\n const tmpDir = (options.tmpdir = _getTmpDirSync(options));\n\n _assertOptionsBase(options, tmpDir);\n\n const dir = _getRelativePathSync('dir', options.dir, tmpDir);\n options.dir = _isUndefined(dir) ? '' : dir;\n\n options.template = _getRelativePathSync('template', options.template, tmpDir);\n\n return options;\n}\n\n/**\n * Helper for testing against EBADF to compensate changes made to Node 7.x under Windows.\n *\n * @private\n */\nfunction _isEBADF(error) {\n return _isExpectedError(error, -EBADF, 'EBADF');\n}\n\n/**\n * Helper for testing against ENOENT to compensate changes made to Node 7.x under Windows.\n *\n * @private\n */\nfunction _isENOENT(error) {\n return _isExpectedError(error, -ENOENT, 'ENOENT');\n}\n\n/**\n * Helper to determine whether the expected error code matches the actual code and errno,\n * which will differ between the supported node versions.\n *\n * - Node >= 7.0:\n * error.code {string}\n * error.errno {number} any numerical value will be negated\n *\n * CAVEAT\n *\n * On windows, the errno for EBADF is -4083 but os.constants.errno.EBADF is different and we must assume that ENOENT\n * is no different here.\n *\n * @param {SystemError} error\n * @param {number} errno\n * @param {string} code\n * @private\n */\nfunction _isExpectedError(error, errno, code) {\n return IS_WIN32 ? error.code === code : error.code === code && error.errno === errno;\n}\n\n/**\n * Sets the graceful cleanup.\n *\n * If graceful cleanup is set, tmp will remove all controlled temporary objects on process exit, otherwise the\n * temporary objects will remain in place, waiting to be cleaned up on system restart or otherwise scheduled temporary\n * object removals.\n */\nfunction setGracefulCleanup() {\n _gracefulCleanup = true;\n}\n\n/**\n * Returns the currently configured tmp dir from os.tmpdir().\n *\n * @private\n */\nfunction _getTmpDir(options, cb) {\n return fs.realpath((options && options.tmpdir) || os.tmpdir(), cb);\n}\n\n/**\n * Returns the currently configured tmp dir from os.tmpdir().\n *\n * @private\n */\nfunction _getTmpDirSync(options) {\n return fs.realpathSync((options && options.tmpdir) || os.tmpdir());\n}\n\n// Install process exit listener\nprocess.addListener(EXIT, _garbageCollector);\n\n/**\n * Configuration options.\n *\n * @typedef {Object} Options\n * @property {?boolean} keep the temporary object (file or dir) will not be garbage collected\n * @property {?number} tries the number of tries before give up the name generation\n * @property (?int) mode the access mode, defaults are 0o700 for directories and 0o600 for files\n * @property {?string} template the \"mkstemp\" like filename template\n * @property {?string} name fixed name relative to tmpdir or the specified dir option\n * @property {?string} dir tmp directory relative to the root tmp directory in use\n * @property {?string} prefix prefix for the generated name\n * @property {?string} postfix postfix for the generated name\n * @property {?string} tmpdir the root tmp directory which overrides the os tmpdir\n * @property {?boolean} unsafeCleanup recursively removes the created temporary directory, even when it's not empty\n * @property {?boolean} detachDescriptor detaches the file descriptor, caller is responsible for closing the file, tmp will no longer try closing the file during garbage collection\n * @property {?boolean} discardDescriptor discards the file descriptor (closes file, fd is -1), tmp will no longer try closing the file during garbage collection\n */\n\n/**\n * @typedef {Object} FileSyncObject\n * @property {string} name the name of the file\n * @property {string} fd the file descriptor or -1 if the fd has been discarded\n * @property {fileCallback} removeCallback the callback function to remove the file\n */\n\n/**\n * @typedef {Object} DirSyncObject\n * @property {string} name the name of the directory\n * @property {fileCallback} removeCallback the callback function to remove the directory\n */\n\n/**\n * @callback tmpNameCallback\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n */\n\n/**\n * @callback fileCallback\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {number} fd the file descriptor or -1 if the fd had been discarded\n * @param {cleanupCallback} fn the cleanup callback function\n */\n\n/**\n * @callback fileCallbackSync\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {number} fd the file descriptor or -1 if the fd had been discarded\n * @param {cleanupCallbackSync} fn the cleanup callback function\n */\n\n/**\n * @callback dirCallback\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {cleanupCallback} fn the cleanup callback function\n */\n\n/**\n * @callback dirCallbackSync\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {cleanupCallbackSync} fn the cleanup callback function\n */\n\n/**\n * Removes the temporary created file or directory.\n *\n * @callback cleanupCallback\n * @param {simpleCallback} [next] function to call whenever the tmp object needs to be removed\n */\n\n/**\n * Removes the temporary created file or directory.\n *\n * @callback cleanupCallbackSync\n */\n\n/**\n * Callback function for function composition.\n * @see {@link https://github.com/raszi/node-tmp/issues/57|raszi/node-tmp#57}\n *\n * @callback simpleCallback\n */\n\n// exporting all the needed methods\n\n// evaluate _getTmpDir() lazily, mainly for simplifying testing but it also will\n// allow users to reconfigure the temporary directory\nObject.defineProperty(module.exports, 'tmpdir', {\n enumerable: true,\n configurable: false,\n get: function () {\n return _getTmpDirSync();\n }\n});\n\nmodule.exports.dir = dir;\nmodule.exports.dirSync = dirSync;\n\nmodule.exports.file = file;\nmodule.exports.fileSync = fileSync;\n\nmodule.exports.tmpName = tmpName;\nmodule.exports.tmpNameSync = tmpNameSync;\n\nmodule.exports.setGracefulCleanup = setGracefulCleanup;\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n ? Error.captureStackTrace\n : (..._args) => { };\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nexport const _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp =\n// /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\nexport const hostname = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 0,\n patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const orig = payload.value;\n const url = new URL(orig);\n const href = url.href;\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // payload.value = url.href;\n if (!orig.endsWith(\"/\") && href.endsWith(\"/\")) {\n payload.value = href.slice(0, -1);\n }\n else {\n payload.value = href;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n if (normalized.optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n return def.innerType._zod.run(payload, ctx);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new Map();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new Map();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n return { ...pm, ...this._map.get(schema) };\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// export function _refine(\n// Class: util.SchemaClass,\n// fn: (arg: NoInfer) => util.MaybeAsync,\n// _params: string | $ZodCustomParams = {}\n// ): checks.$ZodCheck {\n// return _custom(Class, fn, _params);\n// }\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const _Transform = Classes.Transform ?? schemas.$ZodTransform;\n const tx = new _Transform({\n type: \"transform\",\n transform: (input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: tx,\n });\n return {};\n }\n },\n error: params.error,\n });\n // params.error;\n const innerPipe = new _Pipe({\n type: \"pipe\",\n in: new _String({ type: \"string\", error: params.error }),\n out: tx,\n error: params.error,\n });\n const outerPipe = new _Pipe({\n type: \"pipe\",\n in: innerPipe,\n out: new _Boolean({\n type: \"boolean\",\n error: params.error,\n }),\n error: params.error,\n });\n return outerPipe;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","// zod-compat.ts\n// ----------------------------------------------------\n// Unified types + helpers to accept Zod v3 and v4 (Mini)\n// ----------------------------------------------------\nimport * as z3rt from 'zod/v3';\nimport * as z4mini from 'zod/v4-mini';\n// --- Runtime detection ---\nexport function isZ4Schema(s) {\n // Present on Zod 4 (Classic & Mini) schemas; absent on Zod 3\n const schema = s;\n return !!schema._zod;\n}\n// --- Schema construction ---\nexport function objectFromShape(shape) {\n const values = Object.values(shape);\n if (values.length === 0)\n return z4mini.object({}); // default to v4 Mini\n const allV4 = values.every(isZ4Schema);\n const allV3 = values.every(s => !isZ4Schema(s));\n if (allV4)\n return z4mini.object(shape);\n if (allV3)\n return z3rt.object(shape);\n throw new Error('Mixed Zod versions detected in object shape.');\n}\n// --- Unified parsing ---\nexport function safeParse(schema, data) {\n if (isZ4Schema(schema)) {\n // Mini exposes top-level safeParse\n const result = z4mini.safeParse(schema, data);\n return result;\n }\n const v3Schema = schema;\n const result = v3Schema.safeParse(data);\n return result;\n}\nexport async function safeParseAsync(schema, data) {\n if (isZ4Schema(schema)) {\n // Mini exposes top-level safeParseAsync\n const result = await z4mini.safeParseAsync(schema, data);\n return result;\n }\n const v3Schema = schema;\n const result = await v3Schema.safeParseAsync(data);\n return result;\n}\n// --- Shape extraction ---\nexport function getObjectShape(schema) {\n if (!schema)\n return undefined;\n // Zod v3 exposes `.shape`; Zod v4 keeps the shape on `_zod.def.shape`\n let rawShape;\n if (isZ4Schema(schema)) {\n const v4Schema = schema;\n rawShape = v4Schema._zod?.def?.shape;\n }\n else {\n const v3Schema = schema;\n rawShape = v3Schema.shape;\n }\n if (!rawShape)\n return undefined;\n if (typeof rawShape === 'function') {\n try {\n return rawShape();\n }\n catch {\n return undefined;\n }\n }\n return rawShape;\n}\n// --- Schema normalization ---\n/**\n * Normalizes a schema to an object schema. Handles both:\n * - Already-constructed object schemas (v3 or v4)\n * - Raw shapes that need to be wrapped into object schemas\n */\nexport function normalizeObjectSchema(schema) {\n if (!schema)\n return undefined;\n // First check if it's a raw shape (Record)\n // Raw shapes don't have _def or _zod properties and aren't schemas themselves\n if (typeof schema === 'object') {\n // Check if it's actually a ZodRawShapeCompat (not a schema instance)\n // by checking if it lacks schema-like internal properties\n const asV3 = schema;\n const asV4 = schema;\n // If it's not a schema instance (no _def or _zod), it might be a raw shape\n if (!asV3._def && !asV4._zod) {\n // Check if all values are schemas (heuristic to confirm it's a raw shape)\n const values = Object.values(schema);\n if (values.length > 0 &&\n values.every(v => typeof v === 'object' &&\n v !== null &&\n (v._def !== undefined ||\n v._zod !== undefined ||\n typeof v.parse === 'function'))) {\n return objectFromShape(schema);\n }\n }\n }\n // If we get here, it should be an AnySchema (not a raw shape)\n // Check if it's already an object schema\n if (isZ4Schema(schema)) {\n // Check if it's a v4 object\n const v4Schema = schema;\n const def = v4Schema._zod?.def;\n if (def && (def.type === 'object' || def.shape !== undefined)) {\n return schema;\n }\n }\n else {\n // Check if it's a v3 object\n const v3Schema = schema;\n if (v3Schema.shape !== undefined) {\n return schema;\n }\n }\n return undefined;\n}\n// --- Error message extraction ---\n/**\n * Safely extracts an error message from a parse result error.\n * Zod errors can have different structures, so we handle various cases.\n */\nexport function getParseErrorMessage(error) {\n if (error && typeof error === 'object') {\n // Try common error structures\n if ('message' in error && typeof error.message === 'string') {\n return error.message;\n }\n if ('issues' in error && Array.isArray(error.issues) && error.issues.length > 0) {\n const firstIssue = error.issues[0];\n if (firstIssue && typeof firstIssue === 'object' && 'message' in firstIssue) {\n return String(firstIssue.message);\n }\n }\n // Fallback: try to stringify the error\n try {\n return JSON.stringify(error);\n }\n catch {\n return String(error);\n }\n }\n return String(error);\n}\n// --- Schema metadata access ---\n/**\n * Gets the description from a schema, if available.\n * Works with both Zod v3 and v4.\n *\n * Both versions expose a `.description` getter that returns the description\n * from their respective internal storage (v3: _def, v4: globalRegistry).\n */\nexport function getSchemaDescription(schema) {\n return schema.description;\n}\n/**\n * Checks if a schema is optional.\n * Works with both Zod v3 and v4.\n */\nexport function isSchemaOptional(schema) {\n if (isZ4Schema(schema)) {\n const v4Schema = schema;\n return v4Schema._zod?.def?.type === 'optional';\n }\n const v3Schema = schema;\n // v3 has isOptional() method\n if (typeof schema.isOptional === 'function') {\n return schema.isOptional();\n }\n return v3Schema._def?.typeName === 'ZodOptional';\n}\n/**\n * Gets the literal value from a schema, if it's a literal schema.\n * Works with both Zod v3 and v4.\n * Returns undefined if the schema is not a literal or the value cannot be determined.\n */\nexport function getLiteralValue(schema) {\n if (isZ4Schema(schema)) {\n const v4Schema = schema;\n const def = v4Schema._zod?.def;\n if (def) {\n // Try various ways to get the literal value\n if (def.value !== undefined)\n return def.value;\n if (Array.isArray(def.values) && def.values.length > 0) {\n return def.values[0];\n }\n }\n }\n const v3Schema = schema;\n const def = v3Schema._def;\n if (def) {\n if (def.value !== undefined)\n return def.value;\n if (Array.isArray(def.values) && def.values.length > 0) {\n return def.values[0];\n }\n }\n // Fallback: check for direct value property (some Zod versions)\n const directValue = schema.value;\n if (directValue !== undefined)\n return directValue;\n return undefined;\n}\n//# sourceMappingURL=zod-compat.js.map","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => inst.issues.push(issue),\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => inst.issues.push(...issues),\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n // inst.nonstrict = () => inst.clone({ ...inst._zod.def, catchall: api.unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output;\nexport function partialRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n _issue.continue ?? (_issue.continue = true);\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n const ch = check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodPipe,\n Boolean: ZodBoolean,\n String: ZodString,\n Transform: ZodTransform,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","import * as z from 'zod/v4';\nexport const LATEST_PROTOCOL_VERSION = '2025-11-25';\nexport const DEFAULT_NEGOTIATED_PROTOCOL_VERSION = '2025-03-26';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, '2025-06-18', '2025-03-26', '2024-11-05', '2024-10-07'];\nexport const RELATED_TASK_META_KEY = 'io.modelcontextprotocol/related-task';\n/* JSON-RPC types */\nexport const JSONRPC_VERSION = '2.0';\n/**\n * Assert 'object' type schema.\n *\n * @internal\n */\nconst AssertObjectSchema = z.custom((v) => v !== null && (typeof v === 'object' || typeof v === 'function'));\n/**\n * A progress token, used to associate progress notifications with the original request.\n */\nexport const ProgressTokenSchema = z.union([z.string(), z.number().int()]);\n/**\n * An opaque token used to represent a cursor for pagination.\n */\nexport const CursorSchema = z.string();\n/**\n * Task creation parameters, used to ask that the server create a task to represent a request.\n */\nexport const TaskCreationParamsSchema = z.looseObject({\n /**\n * Time in milliseconds to keep task results available after completion.\n * If null, the task has unlimited lifetime until manually cleaned up.\n */\n ttl: z.union([z.number(), z.null()]).optional(),\n /**\n * Time in milliseconds to wait between task status requests.\n */\n pollInterval: z.number().optional()\n});\nexport const TaskMetadataSchema = z.object({\n ttl: z.number().optional()\n});\n/**\n * Metadata for associating messages with a task.\n * Include this in the `_meta` field under the key `io.modelcontextprotocol/related-task`.\n */\nexport const RelatedTaskMetadataSchema = z.object({\n taskId: z.string()\n});\nconst RequestMetaSchema = z.looseObject({\n /**\n * If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.\n */\n progressToken: ProgressTokenSchema.optional(),\n /**\n * If specified, this request is related to the provided task.\n */\n [RELATED_TASK_META_KEY]: RelatedTaskMetadataSchema.optional()\n});\n/**\n * Common params for any request.\n */\nconst BaseRequestParamsSchema = z.object({\n /**\n * See [General fields: `_meta`](/specification/draft/basic/index#meta) for notes on `_meta` usage.\n */\n _meta: RequestMetaSchema.optional()\n});\n/**\n * Common params for any task-augmented request.\n */\nexport const TaskAugmentedRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * If specified, the caller is requesting task-augmented execution for this request.\n * The request will return a CreateTaskResult immediately, and the actual result can be\n * retrieved later via tasks/result.\n *\n * Task augmentation is subject to capability negotiation - receivers MUST declare support\n * for task augmentation of specific request types in their capabilities.\n */\n task: TaskMetadataSchema.optional()\n});\n/**\n * Checks if a value is a valid TaskAugmentedRequestParams.\n * @param value - The value to check.\n *\n * @returns True if the value is a valid TaskAugmentedRequestParams, false otherwise.\n */\nexport const isTaskAugmentedRequestParams = (value) => TaskAugmentedRequestParamsSchema.safeParse(value).success;\nexport const RequestSchema = z.object({\n method: z.string(),\n params: BaseRequestParamsSchema.loose().optional()\n});\nconst NotificationsParamsSchema = z.object({\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: RequestMetaSchema.optional()\n});\nexport const NotificationSchema = z.object({\n method: z.string(),\n params: NotificationsParamsSchema.loose().optional()\n});\nexport const ResultSchema = z.looseObject({\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: RequestMetaSchema.optional()\n});\n/**\n * A uniquely identifying ID for a request in JSON-RPC.\n */\nexport const RequestIdSchema = z.union([z.string(), z.number().int()]);\n/**\n * A request that expects a response.\n */\nexport const JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n ...RequestSchema.shape\n})\n .strict();\nexport const isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;\n/**\n * A notification which does not expect a response.\n */\nexport const JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n ...NotificationSchema.shape\n})\n .strict();\nexport const isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;\n/**\n * A successful (non-error) response to a request.\n */\nexport const JSONRPCResultResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n result: ResultSchema\n})\n .strict();\n/**\n * Checks if a value is a valid JSONRPCResultResponse.\n * @param value - The value to check.\n *\n * @returns True if the value is a valid JSONRPCResultResponse, false otherwise.\n */\nexport const isJSONRPCResultResponse = (value) => JSONRPCResultResponseSchema.safeParse(value).success;\n/**\n * @deprecated Use {@link isJSONRPCResultResponse} instead.\n *\n * Please note that {@link JSONRPCResponse} is a union of {@link JSONRPCResultResponse} and {@link JSONRPCErrorResponse} as per the updated JSON-RPC specification. (was previously just {@link JSONRPCResultResponse})\n */\nexport const isJSONRPCResponse = isJSONRPCResultResponse;\n/**\n * Error codes defined by the JSON-RPC specification.\n */\nexport var ErrorCode;\n(function (ErrorCode) {\n // SDK error codes\n ErrorCode[ErrorCode[\"ConnectionClosed\"] = -32000] = \"ConnectionClosed\";\n ErrorCode[ErrorCode[\"RequestTimeout\"] = -32001] = \"RequestTimeout\";\n // Standard JSON-RPC error codes\n ErrorCode[ErrorCode[\"ParseError\"] = -32700] = \"ParseError\";\n ErrorCode[ErrorCode[\"InvalidRequest\"] = -32600] = \"InvalidRequest\";\n ErrorCode[ErrorCode[\"MethodNotFound\"] = -32601] = \"MethodNotFound\";\n ErrorCode[ErrorCode[\"InvalidParams\"] = -32602] = \"InvalidParams\";\n ErrorCode[ErrorCode[\"InternalError\"] = -32603] = \"InternalError\";\n // MCP-specific error codes\n ErrorCode[ErrorCode[\"UrlElicitationRequired\"] = -32042] = \"UrlElicitationRequired\";\n})(ErrorCode || (ErrorCode = {}));\n/**\n * A response to a request that indicates an error occurred.\n */\nexport const JSONRPCErrorResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema.optional(),\n error: z.object({\n /**\n * The error type that occurred.\n */\n code: z.number().int(),\n /**\n * A short description of the error. The message SHOULD be limited to a concise single sentence.\n */\n message: z.string(),\n /**\n * Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).\n */\n data: z.unknown().optional()\n })\n})\n .strict();\n/**\n * @deprecated Use {@link JSONRPCErrorResponseSchema} instead.\n */\nexport const JSONRPCErrorSchema = JSONRPCErrorResponseSchema;\n/**\n * Checks if a value is a valid JSONRPCErrorResponse.\n * @param value - The value to check.\n *\n * @returns True if the value is a valid JSONRPCErrorResponse, false otherwise.\n */\nexport const isJSONRPCErrorResponse = (value) => JSONRPCErrorResponseSchema.safeParse(value).success;\n/**\n * @deprecated Use {@link isJSONRPCErrorResponse} instead.\n */\nexport const isJSONRPCError = isJSONRPCErrorResponse;\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResultResponseSchema,\n JSONRPCErrorResponseSchema\n]);\nexport const JSONRPCResponseSchema = z.union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]);\n/* Empty result */\n/**\n * A response that indicates success but carries no data.\n */\nexport const EmptyResultSchema = ResultSchema.strict();\nexport const CancelledNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The ID of the request to cancel.\n *\n * This MUST correspond to the ID of a request previously issued in the same direction.\n */\n requestId: RequestIdSchema.optional(),\n /**\n * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.\n */\n reason: z.string().optional()\n});\n/* Cancellation */\n/**\n * This notification can be sent by either side to indicate that it is cancelling a previously-issued request.\n *\n * The request SHOULD still be in-flight, but due to communication latency, it is always possible that this notification MAY arrive after the request has already finished.\n *\n * This notification indicates that the result will be unused, so any associated processing SHOULD cease.\n *\n * A client MUST NOT attempt to cancel its `initialize` request.\n */\nexport const CancelledNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/cancelled'),\n params: CancelledNotificationParamsSchema\n});\n/* Base Metadata */\n/**\n * Icon schema for use in tools, prompts, resources, and implementations.\n */\nexport const IconSchema = z.object({\n /**\n * URL or data URI for the icon.\n */\n src: z.string(),\n /**\n * Optional MIME type for the icon.\n */\n mimeType: z.string().optional(),\n /**\n * Optional array of strings that specify sizes at which the icon can be used.\n * Each string should be in WxH format (e.g., `\"48x48\"`, `\"96x96\"`) or `\"any\"` for scalable formats like SVG.\n *\n * If not provided, the client should assume that the icon can be used at any size.\n */\n sizes: z.array(z.string()).optional(),\n /**\n * Optional specifier for the theme this icon is designed for. `light` indicates\n * the icon is designed to be used with a light background, and `dark` indicates\n * the icon is designed to be used with a dark background.\n *\n * If not provided, the client should assume the icon can be used with any theme.\n */\n theme: z.enum(['light', 'dark']).optional()\n});\n/**\n * Base schema to add `icons` property.\n *\n */\nexport const IconsSchema = z.object({\n /**\n * Optional set of sized icons that the client can display in a user interface.\n *\n * Clients that support rendering icons MUST support at least the following MIME types:\n * - `image/png` - PNG images (safe, universal compatibility)\n * - `image/jpeg` (and `image/jpg`) - JPEG images (safe, universal compatibility)\n *\n * Clients that support rendering icons SHOULD also support:\n * - `image/svg+xml` - SVG images (scalable but requires security precautions)\n * - `image/webp` - WebP images (modern, efficient format)\n */\n icons: z.array(IconSchema).optional()\n});\n/**\n * Base metadata interface for common properties across resources, tools, prompts, and implementations.\n */\nexport const BaseMetadataSchema = z.object({\n /** Intended for programmatic or logical use, but used as a display name in past specs or fallback */\n name: z.string(),\n /**\n * Intended for UI and end-user contexts — optimized to be human-readable and easily understood,\n * even by those unfamiliar with domain-specific terminology.\n *\n * If not provided, the name should be used for display (except for Tool,\n * where `annotations.title` should be given precedence over using `name`,\n * if present).\n */\n title: z.string().optional()\n});\n/* Initialization */\n/**\n * Describes the name and version of an MCP implementation.\n */\nexport const ImplementationSchema = BaseMetadataSchema.extend({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n version: z.string(),\n /**\n * An optional URL of the website for this implementation.\n */\n websiteUrl: z.string().optional(),\n /**\n * An optional human-readable description of what this implementation does.\n *\n * This can be used by clients or servers to provide context about their purpose\n * and capabilities. For example, a server might describe the types of resources\n * or tools it provides, while a client might describe its intended use case.\n */\n description: z.string().optional()\n});\nconst FormElicitationCapabilitySchema = z.intersection(z.object({\n applyDefaults: z.boolean().optional()\n}), z.record(z.string(), z.unknown()));\nconst ElicitationCapabilitySchema = z.preprocess(value => {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n if (Object.keys(value).length === 0) {\n return { form: {} };\n }\n }\n return value;\n}, z.intersection(z.object({\n form: FormElicitationCapabilitySchema.optional(),\n url: AssertObjectSchema.optional()\n}), z.record(z.string(), z.unknown()).optional()));\n/**\n * Task capabilities for clients, indicating which request types support task creation.\n */\nexport const ClientTasksCapabilitySchema = z.looseObject({\n /**\n * Present if the client supports listing tasks.\n */\n list: AssertObjectSchema.optional(),\n /**\n * Present if the client supports cancelling tasks.\n */\n cancel: AssertObjectSchema.optional(),\n /**\n * Capabilities for task creation on specific request types.\n */\n requests: z\n .looseObject({\n /**\n * Task support for sampling requests.\n */\n sampling: z\n .looseObject({\n createMessage: AssertObjectSchema.optional()\n })\n .optional(),\n /**\n * Task support for elicitation requests.\n */\n elicitation: z\n .looseObject({\n create: AssertObjectSchema.optional()\n })\n .optional()\n })\n .optional()\n});\n/**\n * Task capabilities for servers, indicating which request types support task creation.\n */\nexport const ServerTasksCapabilitySchema = z.looseObject({\n /**\n * Present if the server supports listing tasks.\n */\n list: AssertObjectSchema.optional(),\n /**\n * Present if the server supports cancelling tasks.\n */\n cancel: AssertObjectSchema.optional(),\n /**\n * Capabilities for task creation on specific request types.\n */\n requests: z\n .looseObject({\n /**\n * Task support for tool requests.\n */\n tools: z\n .looseObject({\n call: AssertObjectSchema.optional()\n })\n .optional()\n })\n .optional()\n});\n/**\n * Capabilities a client may support. Known capabilities are defined here, in this schema, but this is not a closed set: any client can define its own, additional capabilities.\n */\nexport const ClientCapabilitiesSchema = z.object({\n /**\n * Experimental, non-standard capabilities that the client supports.\n */\n experimental: z.record(z.string(), AssertObjectSchema).optional(),\n /**\n * Present if the client supports sampling from an LLM.\n */\n sampling: z\n .object({\n /**\n * Present if the client supports context inclusion via includeContext parameter.\n * If not declared, servers SHOULD only use `includeContext: \"none\"` (or omit it).\n */\n context: AssertObjectSchema.optional(),\n /**\n * Present if the client supports tool use via tools and toolChoice parameters.\n */\n tools: AssertObjectSchema.optional()\n })\n .optional(),\n /**\n * Present if the client supports eliciting user input.\n */\n elicitation: ElicitationCapabilitySchema.optional(),\n /**\n * Present if the client supports listing roots.\n */\n roots: z\n .object({\n /**\n * Whether the client supports issuing notifications for changes to the roots list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the client supports task creation.\n */\n tasks: ClientTasksCapabilitySchema.optional()\n});\nexport const InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.\n */\n protocolVersion: z.string(),\n capabilities: ClientCapabilitiesSchema,\n clientInfo: ImplementationSchema\n});\n/**\n * This request is sent from the client to the server when it first connects, asking it to begin initialization.\n */\nexport const InitializeRequestSchema = RequestSchema.extend({\n method: z.literal('initialize'),\n params: InitializeRequestParamsSchema\n});\nexport const isInitializeRequest = (value) => InitializeRequestSchema.safeParse(value).success;\n/**\n * Capabilities that a server may support. Known capabilities are defined here, in this schema, but this is not a closed set: any server can define its own, additional capabilities.\n */\nexport const ServerCapabilitiesSchema = z.object({\n /**\n * Experimental, non-standard capabilities that the server supports.\n */\n experimental: z.record(z.string(), AssertObjectSchema).optional(),\n /**\n * Present if the server supports sending log messages to the client.\n */\n logging: AssertObjectSchema.optional(),\n /**\n * Present if the server supports sending completions to the client.\n */\n completions: AssertObjectSchema.optional(),\n /**\n * Present if the server offers any prompt templates.\n */\n prompts: z\n .object({\n /**\n * Whether this server supports issuing notifications for changes to the prompt list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the server offers any resources to read.\n */\n resources: z\n .object({\n /**\n * Whether this server supports clients subscribing to resource updates.\n */\n subscribe: z.boolean().optional(),\n /**\n * Whether this server supports issuing notifications for changes to the resource list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the server offers any tools to call.\n */\n tools: z\n .object({\n /**\n * Whether this server supports issuing notifications for changes to the tool list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the server supports task creation.\n */\n tasks: ServerTasksCapabilitySchema.optional()\n});\n/**\n * After receiving an initialize request from the client, the server sends this response.\n */\nexport const InitializeResultSchema = ResultSchema.extend({\n /**\n * The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.\n */\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ImplementationSchema,\n /**\n * Instructions describing how to use the server and its features.\n *\n * This can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a \"hint\" to the model. For example, this information MAY be added to the system prompt.\n */\n instructions: z.string().optional()\n});\n/**\n * This notification is sent from the client to the server after initialization has finished.\n */\nexport const InitializedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/initialized'),\n params: NotificationsParamsSchema.optional()\n});\nexport const isInitializedNotification = (value) => InitializedNotificationSchema.safeParse(value).success;\n/* Ping */\n/**\n * A ping, issued by either the server or the client, to check that the other party is still alive. The receiver must promptly respond, or else may be disconnected.\n */\nexport const PingRequestSchema = RequestSchema.extend({\n method: z.literal('ping'),\n params: BaseRequestParamsSchema.optional()\n});\n/* Progress notifications */\nexport const ProgressSchema = z.object({\n /**\n * The progress thus far. This should increase every time progress is made, even if the total is unknown.\n */\n progress: z.number(),\n /**\n * Total number of items to process (or total progress required), if known.\n */\n total: z.optional(z.number()),\n /**\n * An optional message describing the current progress.\n */\n message: z.optional(z.string())\n});\nexport const ProgressNotificationParamsSchema = z.object({\n ...NotificationsParamsSchema.shape,\n ...ProgressSchema.shape,\n /**\n * The progress token which was given in the initial request, used to associate this notification with the request that is proceeding.\n */\n progressToken: ProgressTokenSchema\n});\n/**\n * An out-of-band notification used to inform the receiver of a progress update for a long-running request.\n *\n * @category notifications/progress\n */\nexport const ProgressNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/progress'),\n params: ProgressNotificationParamsSchema\n});\nexport const PaginatedRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * An opaque token representing the current pagination position.\n * If provided, the server should return results starting after this cursor.\n */\n cursor: CursorSchema.optional()\n});\n/* Pagination */\nexport const PaginatedRequestSchema = RequestSchema.extend({\n params: PaginatedRequestParamsSchema.optional()\n});\nexport const PaginatedResultSchema = ResultSchema.extend({\n /**\n * An opaque token representing the pagination position after the last returned result.\n * If present, there may be more results available.\n */\n nextCursor: CursorSchema.optional()\n});\n/**\n * The status of a task.\n * */\nexport const TaskStatusSchema = z.enum(['working', 'input_required', 'completed', 'failed', 'cancelled']);\n/* Tasks */\n/**\n * A pollable state object associated with a request.\n */\nexport const TaskSchema = z.object({\n taskId: z.string(),\n status: TaskStatusSchema,\n /**\n * Time in milliseconds to keep task results available after completion.\n * If null, the task has unlimited lifetime until manually cleaned up.\n */\n ttl: z.union([z.number(), z.null()]),\n /**\n * ISO 8601 timestamp when the task was created.\n */\n createdAt: z.string(),\n /**\n * ISO 8601 timestamp when the task was last updated.\n */\n lastUpdatedAt: z.string(),\n pollInterval: z.optional(z.number()),\n /**\n * Optional diagnostic message for failed tasks or other status information.\n */\n statusMessage: z.optional(z.string())\n});\n/**\n * Result returned when a task is created, containing the task data wrapped in a task field.\n */\nexport const CreateTaskResultSchema = ResultSchema.extend({\n task: TaskSchema\n});\n/**\n * Parameters for task status notification.\n */\nexport const TaskStatusNotificationParamsSchema = NotificationsParamsSchema.merge(TaskSchema);\n/**\n * A notification sent when a task's status changes.\n */\nexport const TaskStatusNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/tasks/status'),\n params: TaskStatusNotificationParamsSchema\n});\n/**\n * A request to get the state of a specific task.\n */\nexport const GetTaskRequestSchema = RequestSchema.extend({\n method: z.literal('tasks/get'),\n params: BaseRequestParamsSchema.extend({\n taskId: z.string()\n })\n});\n/**\n * The response to a tasks/get request.\n */\nexport const GetTaskResultSchema = ResultSchema.merge(TaskSchema);\n/**\n * A request to get the result of a specific task.\n */\nexport const GetTaskPayloadRequestSchema = RequestSchema.extend({\n method: z.literal('tasks/result'),\n params: BaseRequestParamsSchema.extend({\n taskId: z.string()\n })\n});\n/**\n * The response to a tasks/result request.\n * The structure matches the result type of the original request.\n * For example, a tools/call task would return the CallToolResult structure.\n *\n */\nexport const GetTaskPayloadResultSchema = ResultSchema.loose();\n/**\n * A request to list tasks.\n */\nexport const ListTasksRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('tasks/list')\n});\n/**\n * The response to a tasks/list request.\n */\nexport const ListTasksResultSchema = PaginatedResultSchema.extend({\n tasks: z.array(TaskSchema)\n});\n/**\n * A request to cancel a specific task.\n */\nexport const CancelTaskRequestSchema = RequestSchema.extend({\n method: z.literal('tasks/cancel'),\n params: BaseRequestParamsSchema.extend({\n taskId: z.string()\n })\n});\n/**\n * The response to a tasks/cancel request.\n */\nexport const CancelTaskResultSchema = ResultSchema.merge(TaskSchema);\n/* Resources */\n/**\n * The contents of a specific resource or sub-resource.\n */\nexport const ResourceContentsSchema = z.object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\nexport const TextResourceContentsSchema = ResourceContentsSchema.extend({\n /**\n * The text of the item. This must only be set if the item can actually be represented as text (not binary data).\n */\n text: z.string()\n});\n/**\n * A Zod schema for validating Base64 strings that is more performant and\n * robust for very large inputs than the default regex-based check. It avoids\n * stack overflows by using the native `atob` function for validation.\n */\nconst Base64Schema = z.string().refine(val => {\n try {\n // atob throws a DOMException if the string contains characters\n // that are not part of the Base64 character set.\n atob(val);\n return true;\n }\n catch {\n return false;\n }\n}, { message: 'Invalid Base64 string' });\nexport const BlobResourceContentsSchema = ResourceContentsSchema.extend({\n /**\n * A base64-encoded string representing the binary data of the item.\n */\n blob: Base64Schema\n});\n/**\n * The sender or recipient of messages and data in a conversation.\n */\nexport const RoleSchema = z.enum(['user', 'assistant']);\n/**\n * Optional annotations providing clients additional context about a resource.\n */\nexport const AnnotationsSchema = z.object({\n /**\n * Intended audience(s) for the resource.\n */\n audience: z.array(RoleSchema).optional(),\n /**\n * Importance hint for the resource, from 0 (least) to 1 (most).\n */\n priority: z.number().min(0).max(1).optional(),\n /**\n * ISO 8601 timestamp for the most recent modification.\n */\n lastModified: z.iso.datetime({ offset: true }).optional()\n});\n/**\n * A known resource that the server is capable of reading.\n */\nexport const ResourceSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * A description of what this resource represents.\n *\n * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.\n */\n description: z.optional(z.string()),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.looseObject({}))\n});\n/**\n * A template description for resources available on the server.\n */\nexport const ResourceTemplateSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * A URI template (according to RFC 6570) that can be used to construct resource URIs.\n */\n uriTemplate: z.string(),\n /**\n * A description of what this template is for.\n *\n * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.\n */\n description: z.optional(z.string()),\n /**\n * The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.\n */\n mimeType: z.optional(z.string()),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.looseObject({}))\n});\n/**\n * Sent from the client to request a list of resources the server has.\n */\nexport const ListResourcesRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('resources/list')\n});\n/**\n * The server's response to a resources/list request from the client.\n */\nexport const ListResourcesResultSchema = PaginatedResultSchema.extend({\n resources: z.array(ResourceSchema)\n});\n/**\n * Sent from the client to request a list of resource templates the server has.\n */\nexport const ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('resources/templates/list')\n});\n/**\n * The server's response to a resources/templates/list request from the client.\n */\nexport const ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({\n resourceTemplates: z.array(ResourceTemplateSchema)\n});\nexport const ResourceRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The URI of the resource to read. The URI can use any protocol; it is up to the server how to interpret it.\n *\n * @format uri\n */\n uri: z.string()\n});\n/**\n * Parameters for a `resources/read` request.\n */\nexport const ReadResourceRequestParamsSchema = ResourceRequestParamsSchema;\n/**\n * Sent from the client to the server, to read a specific resource URI.\n */\nexport const ReadResourceRequestSchema = RequestSchema.extend({\n method: z.literal('resources/read'),\n params: ReadResourceRequestParamsSchema\n});\n/**\n * The server's response to a resources/read request from the client.\n */\nexport const ReadResourceResultSchema = ResultSchema.extend({\n contents: z.array(z.union([TextResourceContentsSchema, BlobResourceContentsSchema]))\n});\n/**\n * An optional notification from the server to the client, informing it that the list of resources it can read from has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const ResourceListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/resources/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\nexport const SubscribeRequestParamsSchema = ResourceRequestParamsSchema;\n/**\n * Sent from the client to request resources/updated notifications from the server whenever a particular resource changes.\n */\nexport const SubscribeRequestSchema = RequestSchema.extend({\n method: z.literal('resources/subscribe'),\n params: SubscribeRequestParamsSchema\n});\nexport const UnsubscribeRequestParamsSchema = ResourceRequestParamsSchema;\n/**\n * Sent from the client to request cancellation of resources/updated notifications from the server. This should follow a previous resources/subscribe request.\n */\nexport const UnsubscribeRequestSchema = RequestSchema.extend({\n method: z.literal('resources/unsubscribe'),\n params: UnsubscribeRequestParamsSchema\n});\n/**\n * Parameters for a `notifications/resources/updated` notification.\n */\nexport const ResourceUpdatedNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to.\n */\n uri: z.string()\n});\n/**\n * A notification from the server to the client, informing it that a resource has changed and may need to be read again. This should only be sent if the client previously sent a resources/subscribe request.\n */\nexport const ResourceUpdatedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/resources/updated'),\n params: ResourceUpdatedNotificationParamsSchema\n});\n/* Prompts */\n/**\n * Describes an argument that a prompt can accept.\n */\nexport const PromptArgumentSchema = z.object({\n /**\n * The name of the argument.\n */\n name: z.string(),\n /**\n * A human-readable description of the argument.\n */\n description: z.optional(z.string()),\n /**\n * Whether this argument must be provided.\n */\n required: z.optional(z.boolean())\n});\n/**\n * A prompt or prompt template that the server offers.\n */\nexport const PromptSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * An optional description of what this prompt provides\n */\n description: z.optional(z.string()),\n /**\n * A list of arguments to use for templating the prompt.\n */\n arguments: z.optional(z.array(PromptArgumentSchema)),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.looseObject({}))\n});\n/**\n * Sent from the client to request a list of prompts and prompt templates the server has.\n */\nexport const ListPromptsRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('prompts/list')\n});\n/**\n * The server's response to a prompts/list request from the client.\n */\nexport const ListPromptsResultSchema = PaginatedResultSchema.extend({\n prompts: z.array(PromptSchema)\n});\n/**\n * Parameters for a `prompts/get` request.\n */\nexport const GetPromptRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The name of the prompt or prompt template.\n */\n name: z.string(),\n /**\n * Arguments to use for templating the prompt.\n */\n arguments: z.record(z.string(), z.string()).optional()\n});\n/**\n * Used by the client to get a prompt provided by the server.\n */\nexport const GetPromptRequestSchema = RequestSchema.extend({\n method: z.literal('prompts/get'),\n params: GetPromptRequestParamsSchema\n});\n/**\n * Text provided to or from an LLM.\n */\nexport const TextContentSchema = z.object({\n type: z.literal('text'),\n /**\n * The text content of the message.\n */\n text: z.string(),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * An image provided to or from an LLM.\n */\nexport const ImageContentSchema = z.object({\n type: z.literal('image'),\n /**\n * The base64-encoded image data.\n */\n data: Base64Schema,\n /**\n * The MIME type of the image. Different providers may support different image types.\n */\n mimeType: z.string(),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * An Audio provided to or from an LLM.\n */\nexport const AudioContentSchema = z.object({\n type: z.literal('audio'),\n /**\n * The base64-encoded audio data.\n */\n data: Base64Schema,\n /**\n * The MIME type of the audio. Different providers may support different audio types.\n */\n mimeType: z.string(),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * A tool call request from an assistant (LLM).\n * Represents the assistant's request to use a tool.\n */\nexport const ToolUseContentSchema = z.object({\n type: z.literal('tool_use'),\n /**\n * The name of the tool to invoke.\n * Must match a tool name from the request's tools array.\n */\n name: z.string(),\n /**\n * Unique identifier for this tool call.\n * Used to correlate with ToolResultContent in subsequent messages.\n */\n id: z.string(),\n /**\n * Arguments to pass to the tool.\n * Must conform to the tool's inputSchema.\n */\n input: z.record(z.string(), z.unknown()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * The contents of a resource, embedded into a prompt or tool call result.\n */\nexport const EmbeddedResourceSchema = z.object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * A resource that the server is capable of reading, included in a prompt or tool call result.\n *\n * Note: resource links returned by tools are not guaranteed to appear in the results of `resources/list` requests.\n */\nexport const ResourceLinkSchema = ResourceSchema.extend({\n type: z.literal('resource_link')\n});\n/**\n * A content block that can be used in prompts and tool results.\n */\nexport const ContentBlockSchema = z.union([\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema,\n ResourceLinkSchema,\n EmbeddedResourceSchema\n]);\n/**\n * Describes a message returned as part of a prompt.\n */\nexport const PromptMessageSchema = z.object({\n role: RoleSchema,\n content: ContentBlockSchema\n});\n/**\n * The server's response to a prompts/get request from the client.\n */\nexport const GetPromptResultSchema = ResultSchema.extend({\n /**\n * An optional description for the prompt.\n */\n description: z.string().optional(),\n messages: z.array(PromptMessageSchema)\n});\n/**\n * An optional notification from the server to the client, informing it that the list of prompts it offers has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const PromptListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/prompts/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\n/* Tools */\n/**\n * Additional properties describing a Tool to clients.\n *\n * NOTE: all properties in ToolAnnotations are **hints**.\n * They are not guaranteed to provide a faithful description of\n * tool behavior (including descriptive properties like `title`).\n *\n * Clients should never make tool use decisions based on ToolAnnotations\n * received from untrusted servers.\n */\nexport const ToolAnnotationsSchema = z.object({\n /**\n * A human-readable title for the tool.\n */\n title: z.string().optional(),\n /**\n * If true, the tool does not modify its environment.\n *\n * Default: false\n */\n readOnlyHint: z.boolean().optional(),\n /**\n * If true, the tool may perform destructive updates to its environment.\n * If false, the tool performs only additive updates.\n *\n * (This property is meaningful only when `readOnlyHint == false`)\n *\n * Default: true\n */\n destructiveHint: z.boolean().optional(),\n /**\n * If true, calling the tool repeatedly with the same arguments\n * will have no additional effect on the its environment.\n *\n * (This property is meaningful only when `readOnlyHint == false`)\n *\n * Default: false\n */\n idempotentHint: z.boolean().optional(),\n /**\n * If true, this tool may interact with an \"open world\" of external\n * entities. If false, the tool's domain of interaction is closed.\n * For example, the world of a web search tool is open, whereas that\n * of a memory tool is not.\n *\n * Default: true\n */\n openWorldHint: z.boolean().optional()\n});\n/**\n * Execution-related properties for a tool.\n */\nexport const ToolExecutionSchema = z.object({\n /**\n * Indicates the tool's preference for task-augmented execution.\n * - \"required\": Clients MUST invoke the tool as a task\n * - \"optional\": Clients MAY invoke the tool as a task or normal request\n * - \"forbidden\": Clients MUST NOT attempt to invoke the tool as a task\n *\n * If not present, defaults to \"forbidden\".\n */\n taskSupport: z.enum(['required', 'optional', 'forbidden']).optional()\n});\n/**\n * Definition for a tool the client can call.\n */\nexport const ToolSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * A human-readable description of the tool.\n */\n description: z.string().optional(),\n /**\n * A JSON Schema 2020-12 object defining the expected parameters for the tool.\n * Must have type: 'object' at the root level per MCP spec.\n */\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), AssertObjectSchema).optional(),\n required: z.array(z.string()).optional()\n })\n .catchall(z.unknown()),\n /**\n * An optional JSON Schema 2020-12 object defining the structure of the tool's output\n * returned in the structuredContent field of a CallToolResult.\n * Must have type: 'object' at the root level per MCP spec.\n */\n outputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), AssertObjectSchema).optional(),\n required: z.array(z.string()).optional()\n })\n .catchall(z.unknown())\n .optional(),\n /**\n * Optional additional tool information.\n */\n annotations: ToolAnnotationsSchema.optional(),\n /**\n * Execution-related properties for this tool.\n */\n execution: ToolExecutionSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Sent from the client to request a list of tools the server has.\n */\nexport const ListToolsRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('tools/list')\n});\n/**\n * The server's response to a tools/list request from the client.\n */\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema)\n});\n/**\n * The server's response to a tool call.\n */\nexport const CallToolResultSchema = ResultSchema.extend({\n /**\n * A list of content objects that represent the result of the tool call.\n *\n * If the Tool does not define an outputSchema, this field MUST be present in the result.\n * For backwards compatibility, this field is always present, but it may be empty.\n */\n content: z.array(ContentBlockSchema).default([]),\n /**\n * An object containing structured tool output.\n *\n * If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.\n */\n structuredContent: z.record(z.string(), z.unknown()).optional(),\n /**\n * Whether the tool call ended in an error.\n *\n * If not set, this is assumed to be false (the call was successful).\n *\n * Any errors that originate from the tool SHOULD be reported inside the result\n * object, with `isError` set to true, _not_ as an MCP protocol-level error\n * response. Otherwise, the LLM would not be able to see that an error occurred\n * and self-correct.\n *\n * However, any errors in _finding_ the tool, an error indicating that the\n * server does not support tool calls, or any other exceptional conditions,\n * should be reported as an MCP error response.\n */\n isError: z.boolean().optional()\n});\n/**\n * CallToolResultSchema extended with backwards compatibility to protocol version 2024-10-07.\n */\nexport const CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({\n toolResult: z.unknown()\n}));\n/**\n * Parameters for a `tools/call` request.\n */\nexport const CallToolRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n /**\n * The name of the tool to call.\n */\n name: z.string(),\n /**\n * Arguments to pass to the tool.\n */\n arguments: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Used by the client to invoke a tool provided by the server.\n */\nexport const CallToolRequestSchema = RequestSchema.extend({\n method: z.literal('tools/call'),\n params: CallToolRequestParamsSchema\n});\n/**\n * An optional notification from the server to the client, informing it that the list of tools it offers has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const ToolListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/tools/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\n/**\n * Base schema for list changed subscription options (without callback).\n * Used internally for Zod validation of autoRefresh and debounceMs.\n */\nexport const ListChangedOptionsBaseSchema = z.object({\n /**\n * If true, the list will be refreshed automatically when a list changed notification is received.\n * The callback will be called with the updated list.\n *\n * If false, the callback will be called with null items, allowing manual refresh.\n *\n * @default true\n */\n autoRefresh: z.boolean().default(true),\n /**\n * Debounce time in milliseconds for list changed notification processing.\n *\n * Multiple notifications received within this timeframe will only trigger one refresh.\n * Set to 0 to disable debouncing.\n *\n * @default 300\n */\n debounceMs: z.number().int().nonnegative().default(300)\n});\n/* Logging */\n/**\n * The severity of a log message.\n */\nexport const LoggingLevelSchema = z.enum(['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency']);\n/**\n * Parameters for a `logging/setLevel` request.\n */\nexport const SetLevelRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The level of logging that the client wants to receive from the server. The server should send all logs at this level and higher (i.e., more severe) to the client as notifications/logging/message.\n */\n level: LoggingLevelSchema\n});\n/**\n * A request from the client to the server, to enable or adjust logging.\n */\nexport const SetLevelRequestSchema = RequestSchema.extend({\n method: z.literal('logging/setLevel'),\n params: SetLevelRequestParamsSchema\n});\n/**\n * Parameters for a `notifications/message` notification.\n */\nexport const LoggingMessageNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The severity of this log message.\n */\n level: LoggingLevelSchema,\n /**\n * An optional name of the logger issuing this message.\n */\n logger: z.string().optional(),\n /**\n * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.\n */\n data: z.unknown()\n});\n/**\n * Notification of a log message passed from server to client. If no logging/setLevel request has been sent from the client, the server MAY decide which messages to send automatically.\n */\nexport const LoggingMessageNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/message'),\n params: LoggingMessageNotificationParamsSchema\n});\n/* Sampling */\n/**\n * Hints to use for model selection.\n */\nexport const ModelHintSchema = z.object({\n /**\n * A hint for a model name.\n */\n name: z.string().optional()\n});\n/**\n * The server's preferences for model selection, requested of the client during sampling.\n */\nexport const ModelPreferencesSchema = z.object({\n /**\n * Optional hints to use for model selection.\n */\n hints: z.array(ModelHintSchema).optional(),\n /**\n * How much to prioritize cost when selecting a model.\n */\n costPriority: z.number().min(0).max(1).optional(),\n /**\n * How much to prioritize sampling speed (latency) when selecting a model.\n */\n speedPriority: z.number().min(0).max(1).optional(),\n /**\n * How much to prioritize intelligence and capabilities when selecting a model.\n */\n intelligencePriority: z.number().min(0).max(1).optional()\n});\n/**\n * Controls tool usage behavior in sampling requests.\n */\nexport const ToolChoiceSchema = z.object({\n /**\n * Controls when tools are used:\n * - \"auto\": Model decides whether to use tools (default)\n * - \"required\": Model MUST use at least one tool before completing\n * - \"none\": Model MUST NOT use any tools\n */\n mode: z.enum(['auto', 'required', 'none']).optional()\n});\n/**\n * The result of a tool execution, provided by the user (server).\n * Represents the outcome of invoking a tool requested via ToolUseContent.\n */\nexport const ToolResultContentSchema = z.object({\n type: z.literal('tool_result'),\n toolUseId: z.string().describe('The unique identifier for the corresponding tool call.'),\n content: z.array(ContentBlockSchema).default([]),\n structuredContent: z.object({}).loose().optional(),\n isError: z.boolean().optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Basic content types for sampling responses (without tool use).\n * Used for backwards-compatible CreateMessageResult when tools are not used.\n */\nexport const SamplingContentSchema = z.discriminatedUnion('type', [TextContentSchema, ImageContentSchema, AudioContentSchema]);\n/**\n * Content block types allowed in sampling messages.\n * This includes text, image, audio, tool use requests, and tool results.\n */\nexport const SamplingMessageContentBlockSchema = z.discriminatedUnion('type', [\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema,\n ToolUseContentSchema,\n ToolResultContentSchema\n]);\n/**\n * Describes a message issued to or received from an LLM API.\n */\nexport const SamplingMessageSchema = z.object({\n role: RoleSchema,\n content: z.union([SamplingMessageContentBlockSchema, z.array(SamplingMessageContentBlockSchema)]),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Parameters for a `sampling/createMessage` request.\n */\nexport const CreateMessageRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n messages: z.array(SamplingMessageSchema),\n /**\n * The server's preferences for which model to select. The client MAY modify or omit this request.\n */\n modelPreferences: ModelPreferencesSchema.optional(),\n /**\n * An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.\n */\n systemPrompt: z.string().optional(),\n /**\n * A request to include context from one or more MCP servers (including the caller), to be attached to the prompt.\n * The client MAY ignore this request.\n *\n * Default is \"none\". Values \"thisServer\" and \"allServers\" are soft-deprecated. Servers SHOULD only use these values if the client\n * declares ClientCapabilities.sampling.context. These values may be removed in future spec releases.\n */\n includeContext: z.enum(['none', 'thisServer', 'allServers']).optional(),\n temperature: z.number().optional(),\n /**\n * The requested maximum number of tokens to sample (to prevent runaway completions).\n *\n * The client MAY choose to sample fewer tokens than the requested maximum.\n */\n maxTokens: z.number().int(),\n stopSequences: z.array(z.string()).optional(),\n /**\n * Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.\n */\n metadata: AssertObjectSchema.optional(),\n /**\n * Tools that the model may use during generation.\n * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.\n */\n tools: z.array(ToolSchema).optional(),\n /**\n * Controls how the model uses tools.\n * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.\n * Default is `{ mode: \"auto\" }`.\n */\n toolChoice: ToolChoiceSchema.optional()\n});\n/**\n * A request from the server to sample an LLM via the client. The client has full discretion over which model to select. The client should also inform the user before beginning sampling, to allow them to inspect the request (human in the loop) and decide whether to approve it.\n */\nexport const CreateMessageRequestSchema = RequestSchema.extend({\n method: z.literal('sampling/createMessage'),\n params: CreateMessageRequestParamsSchema\n});\n/**\n * The client's response to a sampling/create_message request from the server.\n * This is the backwards-compatible version that returns single content (no arrays).\n * Used when the request does not include tools.\n */\nexport const CreateMessageResultSchema = ResultSchema.extend({\n /**\n * The name of the model that generated the message.\n */\n model: z.string(),\n /**\n * The reason why sampling stopped, if known.\n *\n * Standard values:\n * - \"endTurn\": Natural end of the assistant's turn\n * - \"stopSequence\": A stop sequence was encountered\n * - \"maxTokens\": Maximum token limit was reached\n *\n * This field is an open string to allow for provider-specific stop reasons.\n */\n stopReason: z.optional(z.enum(['endTurn', 'stopSequence', 'maxTokens']).or(z.string())),\n role: RoleSchema,\n /**\n * Response content. Single content block (text, image, or audio).\n */\n content: SamplingContentSchema\n});\n/**\n * The client's response to a sampling/create_message request when tools were provided.\n * This version supports array content for tool use flows.\n */\nexport const CreateMessageResultWithToolsSchema = ResultSchema.extend({\n /**\n * The name of the model that generated the message.\n */\n model: z.string(),\n /**\n * The reason why sampling stopped, if known.\n *\n * Standard values:\n * - \"endTurn\": Natural end of the assistant's turn\n * - \"stopSequence\": A stop sequence was encountered\n * - \"maxTokens\": Maximum token limit was reached\n * - \"toolUse\": The model wants to use one or more tools\n *\n * This field is an open string to allow for provider-specific stop reasons.\n */\n stopReason: z.optional(z.enum(['endTurn', 'stopSequence', 'maxTokens', 'toolUse']).or(z.string())),\n role: RoleSchema,\n /**\n * Response content. May be a single block or array. May include ToolUseContent if stopReason is \"toolUse\".\n */\n content: z.union([SamplingMessageContentBlockSchema, z.array(SamplingMessageContentBlockSchema)])\n});\n/* Elicitation */\n/**\n * Primitive schema definition for boolean fields.\n */\nexport const BooleanSchemaSchema = z.object({\n type: z.literal('boolean'),\n title: z.string().optional(),\n description: z.string().optional(),\n default: z.boolean().optional()\n});\n/**\n * Primitive schema definition for string fields.\n */\nexport const StringSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n format: z.enum(['email', 'uri', 'date', 'date-time']).optional(),\n default: z.string().optional()\n});\n/**\n * Primitive schema definition for number fields.\n */\nexport const NumberSchemaSchema = z.object({\n type: z.enum(['number', 'integer']),\n title: z.string().optional(),\n description: z.string().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n default: z.number().optional()\n});\n/**\n * Schema for single-selection enumeration without display titles for options.\n */\nexport const UntitledSingleSelectEnumSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n enum: z.array(z.string()),\n default: z.string().optional()\n});\n/**\n * Schema for single-selection enumeration with display titles for each option.\n */\nexport const TitledSingleSelectEnumSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n oneOf: z.array(z.object({\n const: z.string(),\n title: z.string()\n })),\n default: z.string().optional()\n});\n/**\n * Use TitledSingleSelectEnumSchema instead.\n * This interface will be removed in a future version.\n */\nexport const LegacyTitledEnumSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n enum: z.array(z.string()),\n enumNames: z.array(z.string()).optional(),\n default: z.string().optional()\n});\n// Combined single selection enumeration\nexport const SingleSelectEnumSchemaSchema = z.union([UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema]);\n/**\n * Schema for multiple-selection enumeration without display titles for options.\n */\nexport const UntitledMultiSelectEnumSchemaSchema = z.object({\n type: z.literal('array'),\n title: z.string().optional(),\n description: z.string().optional(),\n minItems: z.number().optional(),\n maxItems: z.number().optional(),\n items: z.object({\n type: z.literal('string'),\n enum: z.array(z.string())\n }),\n default: z.array(z.string()).optional()\n});\n/**\n * Schema for multiple-selection enumeration with display titles for each option.\n */\nexport const TitledMultiSelectEnumSchemaSchema = z.object({\n type: z.literal('array'),\n title: z.string().optional(),\n description: z.string().optional(),\n minItems: z.number().optional(),\n maxItems: z.number().optional(),\n items: z.object({\n anyOf: z.array(z.object({\n const: z.string(),\n title: z.string()\n }))\n }),\n default: z.array(z.string()).optional()\n});\n/**\n * Combined schema for multiple-selection enumeration\n */\nexport const MultiSelectEnumSchemaSchema = z.union([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]);\n/**\n * Primitive schema definition for enum fields.\n */\nexport const EnumSchemaSchema = z.union([LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema]);\n/**\n * Union of all primitive schema definitions.\n */\nexport const PrimitiveSchemaDefinitionSchema = z.union([EnumSchemaSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema]);\n/**\n * Parameters for an `elicitation/create` request for form-based elicitation.\n */\nexport const ElicitRequestFormParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n /**\n * The elicitation mode.\n *\n * Optional for backward compatibility. Clients MUST treat missing mode as \"form\".\n */\n mode: z.literal('form').optional(),\n /**\n * The message to present to the user describing what information is being requested.\n */\n message: z.string(),\n /**\n * A restricted subset of JSON Schema.\n * Only top-level properties are allowed, without nesting.\n */\n requestedSchema: z.object({\n type: z.literal('object'),\n properties: z.record(z.string(), PrimitiveSchemaDefinitionSchema),\n required: z.array(z.string()).optional()\n })\n});\n/**\n * Parameters for an `elicitation/create` request for URL-based elicitation.\n */\nexport const ElicitRequestURLParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n /**\n * The elicitation mode.\n */\n mode: z.literal('url'),\n /**\n * The message to present to the user explaining why the interaction is needed.\n */\n message: z.string(),\n /**\n * The ID of the elicitation, which must be unique within the context of the server.\n * The client MUST treat this ID as an opaque value.\n */\n elicitationId: z.string(),\n /**\n * The URL that the user should navigate to.\n */\n url: z.string().url()\n});\n/**\n * The parameters for a request to elicit additional information from the user via the client.\n */\nexport const ElicitRequestParamsSchema = z.union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]);\n/**\n * A request from the server to elicit user input via the client.\n * The client should present the message and form fields to the user (form mode)\n * or navigate to a URL (URL mode).\n */\nexport const ElicitRequestSchema = RequestSchema.extend({\n method: z.literal('elicitation/create'),\n params: ElicitRequestParamsSchema\n});\n/**\n * Parameters for a `notifications/elicitation/complete` notification.\n *\n * @category notifications/elicitation/complete\n */\nexport const ElicitationCompleteNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The ID of the elicitation that completed.\n */\n elicitationId: z.string()\n});\n/**\n * A notification from the server to the client, informing it of a completion of an out-of-band elicitation request.\n *\n * @category notifications/elicitation/complete\n */\nexport const ElicitationCompleteNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/elicitation/complete'),\n params: ElicitationCompleteNotificationParamsSchema\n});\n/**\n * The client's response to an elicitation/create request from the server.\n */\nexport const ElicitResultSchema = ResultSchema.extend({\n /**\n * The user action in response to the elicitation.\n * - \"accept\": User submitted the form/confirmed the action\n * - \"decline\": User explicitly decline the action\n * - \"cancel\": User dismissed without making an explicit choice\n */\n action: z.enum(['accept', 'decline', 'cancel']),\n /**\n * The submitted form data, only present when action is \"accept\".\n * Contains values matching the requested schema.\n * Per MCP spec, content is \"typically omitted\" for decline/cancel actions.\n * We normalize null to undefined for leniency while maintaining type compatibility.\n */\n content: z.preprocess(val => (val === null ? undefined : val), z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.string())])).optional())\n});\n/* Autocomplete */\n/**\n * A reference to a resource or resource template definition.\n */\nexport const ResourceTemplateReferenceSchema = z.object({\n type: z.literal('ref/resource'),\n /**\n * The URI or URI template of the resource.\n */\n uri: z.string()\n});\n/**\n * @deprecated Use ResourceTemplateReferenceSchema instead\n */\nexport const ResourceReferenceSchema = ResourceTemplateReferenceSchema;\n/**\n * Identifies a prompt.\n */\nexport const PromptReferenceSchema = z.object({\n type: z.literal('ref/prompt'),\n /**\n * The name of the prompt or prompt template\n */\n name: z.string()\n});\n/**\n * Parameters for a `completion/complete` request.\n */\nexport const CompleteRequestParamsSchema = BaseRequestParamsSchema.extend({\n ref: z.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),\n /**\n * The argument's information\n */\n argument: z.object({\n /**\n * The name of the argument\n */\n name: z.string(),\n /**\n * The value of the argument to use for completion matching.\n */\n value: z.string()\n }),\n context: z\n .object({\n /**\n * Previously-resolved variables in a URI template or prompt.\n */\n arguments: z.record(z.string(), z.string()).optional()\n })\n .optional()\n});\n/**\n * A request from the client to the server, to ask for completion options.\n */\nexport const CompleteRequestSchema = RequestSchema.extend({\n method: z.literal('completion/complete'),\n params: CompleteRequestParamsSchema\n});\nexport function assertCompleteRequestPrompt(request) {\n if (request.params.ref.type !== 'ref/prompt') {\n throw new TypeError(`Expected CompleteRequestPrompt, but got ${request.params.ref.type}`);\n }\n void request;\n}\nexport function assertCompleteRequestResourceTemplate(request) {\n if (request.params.ref.type !== 'ref/resource') {\n throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${request.params.ref.type}`);\n }\n void request;\n}\n/**\n * The server's response to a completion/complete request\n */\nexport const CompleteResultSchema = ResultSchema.extend({\n completion: z.looseObject({\n /**\n * An array of completion values. Must not exceed 100 items.\n */\n values: z.array(z.string()).max(100),\n /**\n * The total number of completion options available. This can exceed the number of values actually sent in the response.\n */\n total: z.optional(z.number().int()),\n /**\n * Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.\n */\n hasMore: z.optional(z.boolean())\n })\n});\n/* Roots */\n/**\n * Represents a root directory or file that the server can operate on.\n */\nexport const RootSchema = z.object({\n /**\n * The URI identifying the root. This *must* start with file:// for now.\n */\n uri: z.string().startsWith('file://'),\n /**\n * An optional name for the root.\n */\n name: z.string().optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Sent from the server to request a list of root URIs from the client.\n */\nexport const ListRootsRequestSchema = RequestSchema.extend({\n method: z.literal('roots/list'),\n params: BaseRequestParamsSchema.optional()\n});\n/**\n * The client's response to a roots/list request from the server.\n */\nexport const ListRootsResultSchema = ResultSchema.extend({\n roots: z.array(RootSchema)\n});\n/**\n * A notification from the client to the server, informing it that the list of roots has changed.\n */\nexport const RootsListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/roots/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\n/* Client messages */\nexport const ClientRequestSchema = z.union([\n PingRequestSchema,\n InitializeRequestSchema,\n CompleteRequestSchema,\n SetLevelRequestSchema,\n GetPromptRequestSchema,\n ListPromptsRequestSchema,\n ListResourcesRequestSchema,\n ListResourceTemplatesRequestSchema,\n ReadResourceRequestSchema,\n SubscribeRequestSchema,\n UnsubscribeRequestSchema,\n CallToolRequestSchema,\n ListToolsRequestSchema,\n GetTaskRequestSchema,\n GetTaskPayloadRequestSchema,\n ListTasksRequestSchema,\n CancelTaskRequestSchema\n]);\nexport const ClientNotificationSchema = z.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n InitializedNotificationSchema,\n RootsListChangedNotificationSchema,\n TaskStatusNotificationSchema\n]);\nexport const ClientResultSchema = z.union([\n EmptyResultSchema,\n CreateMessageResultSchema,\n CreateMessageResultWithToolsSchema,\n ElicitResultSchema,\n ListRootsResultSchema,\n GetTaskResultSchema,\n ListTasksResultSchema,\n CreateTaskResultSchema\n]);\n/* Server messages */\nexport const ServerRequestSchema = z.union([\n PingRequestSchema,\n CreateMessageRequestSchema,\n ElicitRequestSchema,\n ListRootsRequestSchema,\n GetTaskRequestSchema,\n GetTaskPayloadRequestSchema,\n ListTasksRequestSchema,\n CancelTaskRequestSchema\n]);\nexport const ServerNotificationSchema = z.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n LoggingMessageNotificationSchema,\n ResourceUpdatedNotificationSchema,\n ResourceListChangedNotificationSchema,\n ToolListChangedNotificationSchema,\n PromptListChangedNotificationSchema,\n TaskStatusNotificationSchema,\n ElicitationCompleteNotificationSchema\n]);\nexport const ServerResultSchema = z.union([\n EmptyResultSchema,\n InitializeResultSchema,\n CompleteResultSchema,\n GetPromptResultSchema,\n ListPromptsResultSchema,\n ListResourcesResultSchema,\n ListResourceTemplatesResultSchema,\n ReadResourceResultSchema,\n CallToolResultSchema,\n ListToolsResultSchema,\n GetTaskResultSchema,\n ListTasksResultSchema,\n CreateTaskResultSchema\n]);\nexport class McpError extends Error {\n constructor(code, message, data) {\n super(`MCP error ${code}: ${message}`);\n this.code = code;\n this.data = data;\n this.name = 'McpError';\n }\n /**\n * Factory method to create the appropriate error type based on the error code and data\n */\n static fromError(code, message, data) {\n // Check for specific error types\n if (code === ErrorCode.UrlElicitationRequired && data) {\n const errorData = data;\n if (errorData.elicitations) {\n return new UrlElicitationRequiredError(errorData.elicitations, message);\n }\n }\n // Default to generic McpError\n return new McpError(code, message, data);\n }\n}\n/**\n * Specialized error type when a tool requires a URL mode elicitation.\n * This makes it nicer for the client to handle since there is specific data to work with instead of just a code to check against.\n */\nexport class UrlElicitationRequiredError extends McpError {\n constructor(elicitations, message = `URL elicitation${elicitations.length > 1 ? 's' : ''} required`) {\n super(ErrorCode.UrlElicitationRequired, message, {\n elicitations: elicitations\n });\n }\n get elicitations() {\n return this.data?.elicitations ?? [];\n }\n}\n//# sourceMappingURL=types.js.map","/**\n * Experimental task interfaces for MCP SDK.\n * WARNING: These APIs are experimental and may change without notice.\n */\n/**\n * Checks if a task status represents a terminal state.\n * Terminal states are those where the task has finished and will not change.\n *\n * @param status - The task status to check\n * @returns True if the status is terminal (completed, failed, or cancelled)\n * @experimental\n */\nexport function isTerminal(status) {\n return status === 'completed' || status === 'failed' || status === 'cancelled';\n}\n//# sourceMappingURL=interfaces.js.map","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n","// zod-json-schema-compat.ts\n// ----------------------------------------------------\n// JSON Schema conversion for both Zod v3 and Zod v4 (Mini)\n// v3 uses your vendored converter; v4 uses Mini's toJSONSchema\n// ----------------------------------------------------\nimport * as z4mini from 'zod/v4-mini';\nimport { getObjectShape, safeParse, isZ4Schema, getLiteralValue } from './zod-compat.js';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nfunction mapMiniTarget(t) {\n if (!t)\n return 'draft-7';\n if (t === 'jsonSchema7' || t === 'draft-7')\n return 'draft-7';\n if (t === 'jsonSchema2019-09' || t === 'draft-2020-12')\n return 'draft-2020-12';\n return 'draft-7'; // fallback\n}\nexport function toJsonSchemaCompat(schema, opts) {\n if (isZ4Schema(schema)) {\n // v4 branch — use Mini's built-in toJSONSchema\n return z4mini.toJSONSchema(schema, {\n target: mapMiniTarget(opts?.target),\n io: opts?.pipeStrategy ?? 'input'\n });\n }\n // v3 branch — use vendored converter\n return zodToJsonSchema(schema, {\n strictUnions: opts?.strictUnions ?? true,\n pipeStrategy: opts?.pipeStrategy ?? 'input'\n });\n}\nexport function getMethodLiteral(schema) {\n const shape = getObjectShape(schema);\n const methodSchema = shape?.method;\n if (!methodSchema) {\n throw new Error('Schema is missing a method literal');\n }\n const value = getLiteralValue(methodSchema);\n if (typeof value !== 'string') {\n throw new Error('Schema method literal must be a string');\n }\n return value;\n}\nexport function parseWithCompat(schema, data) {\n const result = safeParse(schema, data);\n if (!result.success) {\n throw result.error;\n }\n return result.data;\n}\n//# sourceMappingURL=zod-json-schema-compat.js.map","import { safeParse } from '../server/zod-compat.js';\nimport { CancelledNotificationSchema, CreateTaskResultSchema, ErrorCode, GetTaskRequestSchema, GetTaskResultSchema, GetTaskPayloadRequestSchema, ListTasksRequestSchema, ListTasksResultSchema, CancelTaskRequestSchema, CancelTaskResultSchema, isJSONRPCErrorResponse, isJSONRPCRequest, isJSONRPCResultResponse, isJSONRPCNotification, McpError, PingRequestSchema, ProgressNotificationSchema, RELATED_TASK_META_KEY, TaskStatusNotificationSchema, isTaskAugmentedRequestParams } from '../types.js';\nimport { isTerminal } from '../experimental/tasks/interfaces.js';\nimport { getMethodLiteral, parseWithCompat } from '../server/zod-json-schema-compat.js';\n/**\n * The default request timeout, in miliseconds.\n */\nexport const DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;\n/**\n * Implements MCP protocol framing on top of a pluggable transport, including\n * features like request/response linking, notifications, and progress.\n */\nexport class Protocol {\n constructor(_options) {\n this._options = _options;\n this._requestMessageId = 0;\n this._requestHandlers = new Map();\n this._requestHandlerAbortControllers = new Map();\n this._notificationHandlers = new Map();\n this._responseHandlers = new Map();\n this._progressHandlers = new Map();\n this._timeoutInfo = new Map();\n this._pendingDebouncedNotifications = new Set();\n // Maps task IDs to progress tokens to keep handlers alive after CreateTaskResult\n this._taskProgressTokens = new Map();\n this._requestResolvers = new Map();\n this.setNotificationHandler(CancelledNotificationSchema, notification => {\n this._oncancel(notification);\n });\n this.setNotificationHandler(ProgressNotificationSchema, notification => {\n this._onprogress(notification);\n });\n this.setRequestHandler(PingRequestSchema, \n // Automatic pong by default.\n _request => ({}));\n // Install task handlers if TaskStore is provided\n this._taskStore = _options?.taskStore;\n this._taskMessageQueue = _options?.taskMessageQueue;\n if (this._taskStore) {\n this.setRequestHandler(GetTaskRequestSchema, async (request, extra) => {\n const task = await this._taskStore.getTask(request.params.taskId, extra.sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');\n }\n // Per spec: tasks/get responses SHALL NOT include related-task metadata\n // as the taskId parameter is the source of truth\n // @ts-expect-error SendResultT cannot contain GetTaskResult, but we include it in our derived types everywhere else\n return {\n ...task\n };\n });\n this.setRequestHandler(GetTaskPayloadRequestSchema, async (request, extra) => {\n const handleTaskResult = async () => {\n const taskId = request.params.taskId;\n // Deliver queued messages\n if (this._taskMessageQueue) {\n let queuedMessage;\n while ((queuedMessage = await this._taskMessageQueue.dequeue(taskId, extra.sessionId))) {\n // Handle response and error messages by routing them to the appropriate resolver\n if (queuedMessage.type === 'response' || queuedMessage.type === 'error') {\n const message = queuedMessage.message;\n const requestId = message.id;\n // Lookup resolver in _requestResolvers map\n const resolver = this._requestResolvers.get(requestId);\n if (resolver) {\n // Remove resolver from map after invocation\n this._requestResolvers.delete(requestId);\n // Invoke resolver with response or error\n if (queuedMessage.type === 'response') {\n resolver(message);\n }\n else {\n // Convert JSONRPCError to McpError\n const errorMessage = message;\n const error = new McpError(errorMessage.error.code, errorMessage.error.message, errorMessage.error.data);\n resolver(error);\n }\n }\n else {\n // Handle missing resolver gracefully with error logging\n const messageType = queuedMessage.type === 'response' ? 'Response' : 'Error';\n this._onerror(new Error(`${messageType} handler missing for request ${requestId}`));\n }\n // Continue to next message\n continue;\n }\n // Send the message on the response stream by passing the relatedRequestId\n // This tells the transport to write the message to the tasks/result response stream\n await this._transport?.send(queuedMessage.message, { relatedRequestId: extra.requestId });\n }\n }\n // Now check task status\n const task = await this._taskStore.getTask(taskId, extra.sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, `Task not found: ${taskId}`);\n }\n // Block if task is not terminal (we've already delivered all queued messages above)\n if (!isTerminal(task.status)) {\n // Wait for status change or new messages\n await this._waitForTaskUpdate(taskId, extra.signal);\n // After waking up, recursively call to deliver any new messages or result\n return await handleTaskResult();\n }\n // If task is terminal, return the result\n if (isTerminal(task.status)) {\n const result = await this._taskStore.getTaskResult(taskId, extra.sessionId);\n this._clearTaskQueue(taskId);\n return {\n ...result,\n _meta: {\n ...result._meta,\n [RELATED_TASK_META_KEY]: {\n taskId: taskId\n }\n }\n };\n }\n return await handleTaskResult();\n };\n return await handleTaskResult();\n });\n this.setRequestHandler(ListTasksRequestSchema, async (request, extra) => {\n try {\n const { tasks, nextCursor } = await this._taskStore.listTasks(request.params?.cursor, extra.sessionId);\n // @ts-expect-error SendResultT cannot contain ListTasksResult, but we include it in our derived types everywhere else\n return {\n tasks,\n nextCursor,\n _meta: {}\n };\n }\n catch (error) {\n throw new McpError(ErrorCode.InvalidParams, `Failed to list tasks: ${error instanceof Error ? error.message : String(error)}`);\n }\n });\n this.setRequestHandler(CancelTaskRequestSchema, async (request, extra) => {\n try {\n // Get the current task to check if it's in a terminal state, in case the implementation is not atomic\n const task = await this._taskStore.getTask(request.params.taskId, extra.sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, `Task not found: ${request.params.taskId}`);\n }\n // Reject cancellation of terminal tasks\n if (isTerminal(task.status)) {\n throw new McpError(ErrorCode.InvalidParams, `Cannot cancel task in terminal status: ${task.status}`);\n }\n await this._taskStore.updateTaskStatus(request.params.taskId, 'cancelled', 'Client cancelled task execution.', extra.sessionId);\n this._clearTaskQueue(request.params.taskId);\n const cancelledTask = await this._taskStore.getTask(request.params.taskId, extra.sessionId);\n if (!cancelledTask) {\n // Task was deleted during cancellation (e.g., cleanup happened)\n throw new McpError(ErrorCode.InvalidParams, `Task not found after cancellation: ${request.params.taskId}`);\n }\n return {\n _meta: {},\n ...cancelledTask\n };\n }\n catch (error) {\n // Re-throw McpError as-is\n if (error instanceof McpError) {\n throw error;\n }\n throw new McpError(ErrorCode.InvalidRequest, `Failed to cancel task: ${error instanceof Error ? error.message : String(error)}`);\n }\n });\n }\n }\n async _oncancel(notification) {\n if (!notification.params.requestId) {\n return;\n }\n // Handle request cancellation\n const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);\n controller?.abort(notification.params.reason);\n }\n _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {\n this._timeoutInfo.set(messageId, {\n timeoutId: setTimeout(onTimeout, timeout),\n startTime: Date.now(),\n timeout,\n maxTotalTimeout,\n resetTimeoutOnProgress,\n onTimeout\n });\n }\n _resetTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (!info)\n return false;\n const totalElapsed = Date.now() - info.startTime;\n if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {\n this._timeoutInfo.delete(messageId);\n throw McpError.fromError(ErrorCode.RequestTimeout, 'Maximum total timeout exceeded', {\n maxTotalTimeout: info.maxTotalTimeout,\n totalElapsed\n });\n }\n clearTimeout(info.timeoutId);\n info.timeoutId = setTimeout(info.onTimeout, info.timeout);\n return true;\n }\n _cleanupTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (info) {\n clearTimeout(info.timeoutId);\n this._timeoutInfo.delete(messageId);\n }\n }\n /**\n * Attaches to the given transport, starts it, and starts listening for messages.\n *\n * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.\n */\n async connect(transport) {\n this._transport = transport;\n const _onclose = this.transport?.onclose;\n this._transport.onclose = () => {\n _onclose?.();\n this._onclose();\n };\n const _onerror = this.transport?.onerror;\n this._transport.onerror = (error) => {\n _onerror?.(error);\n this._onerror(error);\n };\n const _onmessage = this._transport?.onmessage;\n this._transport.onmessage = (message, extra) => {\n _onmessage?.(message, extra);\n if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {\n this._onresponse(message);\n }\n else if (isJSONRPCRequest(message)) {\n this._onrequest(message, extra);\n }\n else if (isJSONRPCNotification(message)) {\n this._onnotification(message);\n }\n else {\n this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));\n }\n };\n await this._transport.start();\n }\n _onclose() {\n const responseHandlers = this._responseHandlers;\n this._responseHandlers = new Map();\n this._progressHandlers.clear();\n this._taskProgressTokens.clear();\n this._pendingDebouncedNotifications.clear();\n const error = McpError.fromError(ErrorCode.ConnectionClosed, 'Connection closed');\n this._transport = undefined;\n this.onclose?.();\n for (const handler of responseHandlers.values()) {\n handler(error);\n }\n }\n _onerror(error) {\n this.onerror?.(error);\n }\n _onnotification(notification) {\n const handler = this._notificationHandlers.get(notification.method) ?? this.fallbackNotificationHandler;\n // Ignore notifications not being subscribed to.\n if (handler === undefined) {\n return;\n }\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(notification))\n .catch(error => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));\n }\n _onrequest(request, extra) {\n const handler = this._requestHandlers.get(request.method) ?? this.fallbackRequestHandler;\n // Capture the current transport at request time to ensure responses go to the correct client\n const capturedTransport = this._transport;\n // Extract taskId from request metadata if present (needed early for method not found case)\n const relatedTaskId = request.params?._meta?.[RELATED_TASK_META_KEY]?.taskId;\n if (handler === undefined) {\n const errorResponse = {\n jsonrpc: '2.0',\n id: request.id,\n error: {\n code: ErrorCode.MethodNotFound,\n message: 'Method not found'\n }\n };\n // Queue or send the error response based on whether this is a task-related request\n if (relatedTaskId && this._taskMessageQueue) {\n this._enqueueTaskMessage(relatedTaskId, {\n type: 'error',\n message: errorResponse,\n timestamp: Date.now()\n }, capturedTransport?.sessionId).catch(error => this._onerror(new Error(`Failed to enqueue error response: ${error}`)));\n }\n else {\n capturedTransport\n ?.send(errorResponse)\n .catch(error => this._onerror(new Error(`Failed to send an error response: ${error}`)));\n }\n return;\n }\n const abortController = new AbortController();\n this._requestHandlerAbortControllers.set(request.id, abortController);\n const taskCreationParams = isTaskAugmentedRequestParams(request.params) ? request.params.task : undefined;\n const taskStore = this._taskStore ? this.requestTaskStore(request, capturedTransport?.sessionId) : undefined;\n const fullExtra = {\n signal: abortController.signal,\n sessionId: capturedTransport?.sessionId,\n _meta: request.params?._meta,\n sendNotification: async (notification) => {\n // Include related-task metadata if this request is part of a task\n const notificationOptions = { relatedRequestId: request.id };\n if (relatedTaskId) {\n notificationOptions.relatedTask = { taskId: relatedTaskId };\n }\n await this.notification(notification, notificationOptions);\n },\n sendRequest: async (r, resultSchema, options) => {\n // Include related-task metadata if this request is part of a task\n const requestOptions = { ...options, relatedRequestId: request.id };\n if (relatedTaskId && !requestOptions.relatedTask) {\n requestOptions.relatedTask = { taskId: relatedTaskId };\n }\n // Set task status to input_required when sending a request within a task context\n // Use the taskId from options (explicit) or fall back to relatedTaskId (inherited)\n const effectiveTaskId = requestOptions.relatedTask?.taskId ?? relatedTaskId;\n if (effectiveTaskId && taskStore) {\n await taskStore.updateTaskStatus(effectiveTaskId, 'input_required');\n }\n return await this.request(r, resultSchema, requestOptions);\n },\n authInfo: extra?.authInfo,\n requestId: request.id,\n requestInfo: extra?.requestInfo,\n taskId: relatedTaskId,\n taskStore: taskStore,\n taskRequestedTtl: taskCreationParams?.ttl,\n closeSSEStream: extra?.closeSSEStream,\n closeStandaloneSSEStream: extra?.closeStandaloneSSEStream\n };\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => {\n // If this request asked for task creation, check capability first\n if (taskCreationParams) {\n // Check if the request method supports task creation\n this.assertTaskHandlerCapability(request.method);\n }\n })\n .then(() => handler(request, fullExtra))\n .then(async (result) => {\n if (abortController.signal.aborted) {\n // Request was cancelled\n return;\n }\n const response = {\n result,\n jsonrpc: '2.0',\n id: request.id\n };\n // Queue or send the response based on whether this is a task-related request\n if (relatedTaskId && this._taskMessageQueue) {\n await this._enqueueTaskMessage(relatedTaskId, {\n type: 'response',\n message: response,\n timestamp: Date.now()\n }, capturedTransport?.sessionId);\n }\n else {\n await capturedTransport?.send(response);\n }\n }, async (error) => {\n if (abortController.signal.aborted) {\n // Request was cancelled\n return;\n }\n const errorResponse = {\n jsonrpc: '2.0',\n id: request.id,\n error: {\n code: Number.isSafeInteger(error['code']) ? error['code'] : ErrorCode.InternalError,\n message: error.message ?? 'Internal error',\n ...(error['data'] !== undefined && { data: error['data'] })\n }\n };\n // Queue or send the error response based on whether this is a task-related request\n if (relatedTaskId && this._taskMessageQueue) {\n await this._enqueueTaskMessage(relatedTaskId, {\n type: 'error',\n message: errorResponse,\n timestamp: Date.now()\n }, capturedTransport?.sessionId);\n }\n else {\n await capturedTransport?.send(errorResponse);\n }\n })\n .catch(error => this._onerror(new Error(`Failed to send response: ${error}`)))\n .finally(() => {\n this._requestHandlerAbortControllers.delete(request.id);\n });\n }\n _onprogress(notification) {\n const { progressToken, ...params } = notification.params;\n const messageId = Number(progressToken);\n const handler = this._progressHandlers.get(messageId);\n if (!handler) {\n this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));\n return;\n }\n const responseHandler = this._responseHandlers.get(messageId);\n const timeoutInfo = this._timeoutInfo.get(messageId);\n if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {\n try {\n this._resetTimeout(messageId);\n }\n catch (error) {\n // Clean up if maxTotalTimeout was exceeded\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n responseHandler(error);\n return;\n }\n }\n handler(params);\n }\n _onresponse(response) {\n const messageId = Number(response.id);\n // Check if this is a response to a queued request\n const resolver = this._requestResolvers.get(messageId);\n if (resolver) {\n this._requestResolvers.delete(messageId);\n if (isJSONRPCResultResponse(response)) {\n resolver(response);\n }\n else {\n const error = new McpError(response.error.code, response.error.message, response.error.data);\n resolver(error);\n }\n return;\n }\n const handler = this._responseHandlers.get(messageId);\n if (handler === undefined) {\n this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));\n return;\n }\n this._responseHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n // Keep progress handler alive for CreateTaskResult responses\n let isTaskResponse = false;\n if (isJSONRPCResultResponse(response) && response.result && typeof response.result === 'object') {\n const result = response.result;\n if (result.task && typeof result.task === 'object') {\n const task = result.task;\n if (typeof task.taskId === 'string') {\n isTaskResponse = true;\n this._taskProgressTokens.set(task.taskId, messageId);\n }\n }\n }\n if (!isTaskResponse) {\n this._progressHandlers.delete(messageId);\n }\n if (isJSONRPCResultResponse(response)) {\n handler(response);\n }\n else {\n const error = McpError.fromError(response.error.code, response.error.message, response.error.data);\n handler(error);\n }\n }\n get transport() {\n return this._transport;\n }\n /**\n * Closes the connection.\n */\n async close() {\n await this._transport?.close();\n }\n /**\n * Sends a request and returns an AsyncGenerator that yields response messages.\n * The generator is guaranteed to end with either a 'result' or 'error' message.\n *\n * @example\n * ```typescript\n * const stream = protocol.requestStream(request, resultSchema, options);\n * for await (const message of stream) {\n * switch (message.type) {\n * case 'taskCreated':\n * console.log('Task created:', message.task.taskId);\n * break;\n * case 'taskStatus':\n * console.log('Task status:', message.task.status);\n * break;\n * case 'result':\n * console.log('Final result:', message.result);\n * break;\n * case 'error':\n * console.error('Error:', message.error);\n * break;\n * }\n * }\n * ```\n *\n * @experimental Use `client.experimental.tasks.requestStream()` to access this method.\n */\n async *requestStream(request, resultSchema, options) {\n const { task } = options ?? {};\n // For non-task requests, just yield the result\n if (!task) {\n try {\n const result = await this.request(request, resultSchema, options);\n yield { type: 'result', result };\n }\n catch (error) {\n yield {\n type: 'error',\n error: error instanceof McpError ? error : new McpError(ErrorCode.InternalError, String(error))\n };\n }\n return;\n }\n // For task-augmented requests, we need to poll for status\n // First, make the request to create the task\n let taskId;\n try {\n // Send the request and get the CreateTaskResult\n const createResult = await this.request(request, CreateTaskResultSchema, options);\n // Extract taskId from the result\n if (createResult.task) {\n taskId = createResult.task.taskId;\n yield { type: 'taskCreated', task: createResult.task };\n }\n else {\n throw new McpError(ErrorCode.InternalError, 'Task creation did not return a task');\n }\n // Poll for task completion\n while (true) {\n // Get current task status\n const task = await this.getTask({ taskId }, options);\n yield { type: 'taskStatus', task };\n // Check if task is terminal\n if (isTerminal(task.status)) {\n if (task.status === 'completed') {\n // Get the final result\n const result = await this.getTaskResult({ taskId }, resultSchema, options);\n yield { type: 'result', result };\n }\n else if (task.status === 'failed') {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InternalError, `Task ${taskId} failed`)\n };\n }\n else if (task.status === 'cancelled') {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InternalError, `Task ${taskId} was cancelled`)\n };\n }\n return;\n }\n // When input_required, call tasks/result to deliver queued messages\n // (elicitation, sampling) via SSE and block until terminal\n if (task.status === 'input_required') {\n const result = await this.getTaskResult({ taskId }, resultSchema, options);\n yield { type: 'result', result };\n return;\n }\n // Wait before polling again\n const pollInterval = task.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1000;\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n // Check if cancelled\n options?.signal?.throwIfAborted();\n }\n }\n catch (error) {\n yield {\n type: 'error',\n error: error instanceof McpError ? error : new McpError(ErrorCode.InternalError, String(error))\n };\n }\n }\n /**\n * Sends a request and waits for a response.\n *\n * Do not use this method to emit notifications! Use notification() instead.\n */\n request(request, resultSchema, options) {\n const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};\n // Send the request\n return new Promise((resolve, reject) => {\n const earlyReject = (error) => {\n reject(error);\n };\n if (!this._transport) {\n earlyReject(new Error('Not connected'));\n return;\n }\n if (this._options?.enforceStrictCapabilities === true) {\n try {\n this.assertCapabilityForMethod(request.method);\n // If task creation is requested, also check task capabilities\n if (task) {\n this.assertTaskCapability(request.method);\n }\n }\n catch (e) {\n earlyReject(e);\n return;\n }\n }\n options?.signal?.throwIfAborted();\n const messageId = this._requestMessageId++;\n const jsonrpcRequest = {\n ...request,\n jsonrpc: '2.0',\n id: messageId\n };\n if (options?.onprogress) {\n this._progressHandlers.set(messageId, options.onprogress);\n jsonrpcRequest.params = {\n ...request.params,\n _meta: {\n ...(request.params?._meta || {}),\n progressToken: messageId\n }\n };\n }\n // Augment with task creation parameters if provided\n if (task) {\n jsonrpcRequest.params = {\n ...jsonrpcRequest.params,\n task: task\n };\n }\n // Augment with related task metadata if relatedTask is provided\n if (relatedTask) {\n jsonrpcRequest.params = {\n ...jsonrpcRequest.params,\n _meta: {\n ...(jsonrpcRequest.params?._meta || {}),\n [RELATED_TASK_META_KEY]: relatedTask\n }\n };\n }\n const cancel = (reason) => {\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n this._transport\n ?.send({\n jsonrpc: '2.0',\n method: 'notifications/cancelled',\n params: {\n requestId: messageId,\n reason: String(reason)\n }\n }, { relatedRequestId, resumptionToken, onresumptiontoken })\n .catch(error => this._onerror(new Error(`Failed to send cancellation: ${error}`)));\n // Wrap the reason in an McpError if it isn't already\n const error = reason instanceof McpError ? reason : new McpError(ErrorCode.RequestTimeout, String(reason));\n reject(error);\n };\n this._responseHandlers.set(messageId, response => {\n if (options?.signal?.aborted) {\n return;\n }\n if (response instanceof Error) {\n return reject(response);\n }\n try {\n const parseResult = safeParse(resultSchema, response.result);\n if (!parseResult.success) {\n // Type guard: if success is false, error is guaranteed to exist\n reject(parseResult.error);\n }\n else {\n resolve(parseResult.data);\n }\n }\n catch (error) {\n reject(error);\n }\n });\n options?.signal?.addEventListener('abort', () => {\n cancel(options?.signal?.reason);\n });\n const timeout = options?.timeout ?? DEFAULT_REQUEST_TIMEOUT_MSEC;\n const timeoutHandler = () => cancel(McpError.fromError(ErrorCode.RequestTimeout, 'Request timed out', { timeout }));\n this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? false);\n // Queue request if related to a task\n const relatedTaskId = relatedTask?.taskId;\n if (relatedTaskId) {\n // Store the response resolver for this request so responses can be routed back\n const responseResolver = (response) => {\n const handler = this._responseHandlers.get(messageId);\n if (handler) {\n handler(response);\n }\n else {\n // Log error when resolver is missing, but don't fail\n this._onerror(new Error(`Response handler missing for side-channeled request ${messageId}`));\n }\n };\n this._requestResolvers.set(messageId, responseResolver);\n this._enqueueTaskMessage(relatedTaskId, {\n type: 'request',\n message: jsonrpcRequest,\n timestamp: Date.now()\n }).catch(error => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n // Don't send through transport - queued messages are delivered via tasks/result only\n // This prevents duplicate delivery for bidirectional transports\n }\n else {\n // No related task - send through transport normally\n this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch(error => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n }\n });\n }\n /**\n * Gets the current status of a task.\n *\n * @experimental Use `client.experimental.tasks.getTask()` to access this method.\n */\n async getTask(params, options) {\n // @ts-expect-error SendRequestT cannot directly contain GetTaskRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/get', params }, GetTaskResultSchema, options);\n }\n /**\n * Retrieves the result of a completed task.\n *\n * @experimental Use `client.experimental.tasks.getTaskResult()` to access this method.\n */\n async getTaskResult(params, resultSchema, options) {\n // @ts-expect-error SendRequestT cannot directly contain GetTaskPayloadRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/result', params }, resultSchema, options);\n }\n /**\n * Lists tasks, optionally starting from a pagination cursor.\n *\n * @experimental Use `client.experimental.tasks.listTasks()` to access this method.\n */\n async listTasks(params, options) {\n // @ts-expect-error SendRequestT cannot directly contain ListTasksRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/list', params }, ListTasksResultSchema, options);\n }\n /**\n * Cancels a specific task.\n *\n * @experimental Use `client.experimental.tasks.cancelTask()` to access this method.\n */\n async cancelTask(params, options) {\n // @ts-expect-error SendRequestT cannot directly contain CancelTaskRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/cancel', params }, CancelTaskResultSchema, options);\n }\n /**\n * Emits a notification, which is a one-way message that does not expect a response.\n */\n async notification(notification, options) {\n if (!this._transport) {\n throw new Error('Not connected');\n }\n this.assertNotificationCapability(notification.method);\n // Queue notification if related to a task\n const relatedTaskId = options?.relatedTask?.taskId;\n if (relatedTaskId) {\n // Build the JSONRPC notification with metadata\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0',\n params: {\n ...notification.params,\n _meta: {\n ...(notification.params?._meta || {}),\n [RELATED_TASK_META_KEY]: options.relatedTask\n }\n }\n };\n await this._enqueueTaskMessage(relatedTaskId, {\n type: 'notification',\n message: jsonrpcNotification,\n timestamp: Date.now()\n });\n // Don't send through transport - queued messages are delivered via tasks/result only\n // This prevents duplicate delivery for bidirectional transports\n return;\n }\n const debouncedMethods = this._options?.debouncedNotificationMethods ?? [];\n // A notification can only be debounced if it's in the list AND it's \"simple\"\n // (i.e., has no parameters and no related request ID or related task that could be lost).\n const canDebounce = debouncedMethods.includes(notification.method) && !notification.params && !options?.relatedRequestId && !options?.relatedTask;\n if (canDebounce) {\n // If a notification of this type is already scheduled, do nothing.\n if (this._pendingDebouncedNotifications.has(notification.method)) {\n return;\n }\n // Mark this notification type as pending.\n this._pendingDebouncedNotifications.add(notification.method);\n // Schedule the actual send to happen in the next microtask.\n // This allows all synchronous calls in the current event loop tick to be coalesced.\n Promise.resolve().then(() => {\n // Un-mark the notification so the next one can be scheduled.\n this._pendingDebouncedNotifications.delete(notification.method);\n // SAFETY CHECK: If the connection was closed while this was pending, abort.\n if (!this._transport) {\n return;\n }\n let jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0'\n };\n // Augment with related task metadata if relatedTask is provided\n if (options?.relatedTask) {\n jsonrpcNotification = {\n ...jsonrpcNotification,\n params: {\n ...jsonrpcNotification.params,\n _meta: {\n ...(jsonrpcNotification.params?._meta || {}),\n [RELATED_TASK_META_KEY]: options.relatedTask\n }\n }\n };\n }\n // Send the notification, but don't await it here to avoid blocking.\n // Handle potential errors with a .catch().\n this._transport?.send(jsonrpcNotification, options).catch(error => this._onerror(error));\n });\n // Return immediately.\n return;\n }\n let jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0'\n };\n // Augment with related task metadata if relatedTask is provided\n if (options?.relatedTask) {\n jsonrpcNotification = {\n ...jsonrpcNotification,\n params: {\n ...jsonrpcNotification.params,\n _meta: {\n ...(jsonrpcNotification.params?._meta || {}),\n [RELATED_TASK_META_KEY]: options.relatedTask\n }\n }\n };\n }\n await this._transport.send(jsonrpcNotification, options);\n }\n /**\n * Registers a handler to invoke when this protocol object receives a request with the given method.\n *\n * Note that this will replace any previous request handler for the same method.\n */\n setRequestHandler(requestSchema, handler) {\n const method = getMethodLiteral(requestSchema);\n this.assertRequestHandlerCapability(method);\n this._requestHandlers.set(method, (request, extra) => {\n const parsed = parseWithCompat(requestSchema, request);\n return Promise.resolve(handler(parsed, extra));\n });\n }\n /**\n * Removes the request handler for the given method.\n */\n removeRequestHandler(method) {\n this._requestHandlers.delete(method);\n }\n /**\n * Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed.\n */\n assertCanSetRequestHandler(method) {\n if (this._requestHandlers.has(method)) {\n throw new Error(`A request handler for ${method} already exists, which would be overridden`);\n }\n }\n /**\n * Registers a handler to invoke when this protocol object receives a notification with the given method.\n *\n * Note that this will replace any previous notification handler for the same method.\n */\n setNotificationHandler(notificationSchema, handler) {\n const method = getMethodLiteral(notificationSchema);\n this._notificationHandlers.set(method, notification => {\n const parsed = parseWithCompat(notificationSchema, notification);\n return Promise.resolve(handler(parsed));\n });\n }\n /**\n * Removes the notification handler for the given method.\n */\n removeNotificationHandler(method) {\n this._notificationHandlers.delete(method);\n }\n /**\n * Cleans up the progress handler associated with a task.\n * This should be called when a task reaches a terminal status.\n */\n _cleanupTaskProgressHandler(taskId) {\n const progressToken = this._taskProgressTokens.get(taskId);\n if (progressToken !== undefined) {\n this._progressHandlers.delete(progressToken);\n this._taskProgressTokens.delete(taskId);\n }\n }\n /**\n * Enqueues a task-related message for side-channel delivery via tasks/result.\n * @param taskId The task ID to associate the message with\n * @param message The message to enqueue\n * @param sessionId Optional session ID for binding the operation to a specific session\n * @throws Error if taskStore is not configured or if enqueue fails (e.g., queue overflow)\n *\n * Note: If enqueue fails, it's the TaskMessageQueue implementation's responsibility to handle\n * the error appropriately (e.g., by failing the task, logging, etc.). The Protocol layer\n * simply propagates the error.\n */\n async _enqueueTaskMessage(taskId, message, sessionId) {\n // Task message queues are only used when taskStore is configured\n if (!this._taskStore || !this._taskMessageQueue) {\n throw new Error('Cannot enqueue task message: taskStore and taskMessageQueue are not configured');\n }\n const maxQueueSize = this._options?.maxTaskQueueSize;\n await this._taskMessageQueue.enqueue(taskId, message, sessionId, maxQueueSize);\n }\n /**\n * Clears the message queue for a task and rejects any pending request resolvers.\n * @param taskId The task ID whose queue should be cleared\n * @param sessionId Optional session ID for binding the operation to a specific session\n */\n async _clearTaskQueue(taskId, sessionId) {\n if (this._taskMessageQueue) {\n // Reject any pending request resolvers\n const messages = await this._taskMessageQueue.dequeueAll(taskId, sessionId);\n for (const message of messages) {\n if (message.type === 'request' && isJSONRPCRequest(message.message)) {\n // Extract request ID from the message\n const requestId = message.message.id;\n const resolver = this._requestResolvers.get(requestId);\n if (resolver) {\n resolver(new McpError(ErrorCode.InternalError, 'Task cancelled or completed'));\n this._requestResolvers.delete(requestId);\n }\n else {\n // Log error when resolver is missing during cleanup for better observability\n this._onerror(new Error(`Resolver missing for request ${requestId} during task ${taskId} cleanup`));\n }\n }\n }\n }\n }\n /**\n * Waits for a task update (new messages or status change) with abort signal support.\n * Uses polling to check for updates at the task's configured poll interval.\n * @param taskId The task ID to wait for\n * @param signal Abort signal to cancel the wait\n * @returns Promise that resolves when an update occurs or rejects if aborted\n */\n async _waitForTaskUpdate(taskId, signal) {\n // Get the task's poll interval, falling back to default\n let interval = this._options?.defaultTaskPollInterval ?? 1000;\n try {\n const task = await this._taskStore?.getTask(taskId);\n if (task?.pollInterval) {\n interval = task.pollInterval;\n }\n }\n catch {\n // Use default interval if task lookup fails\n }\n return new Promise((resolve, reject) => {\n if (signal.aborted) {\n reject(new McpError(ErrorCode.InvalidRequest, 'Request cancelled'));\n return;\n }\n // Wait for the poll interval, then resolve so caller can check for updates\n const timeoutId = setTimeout(resolve, interval);\n // Clean up timeout and reject if aborted\n signal.addEventListener('abort', () => {\n clearTimeout(timeoutId);\n reject(new McpError(ErrorCode.InvalidRequest, 'Request cancelled'));\n }, { once: true });\n });\n }\n requestTaskStore(request, sessionId) {\n const taskStore = this._taskStore;\n if (!taskStore) {\n throw new Error('No task store configured');\n }\n return {\n createTask: async (taskParams) => {\n if (!request) {\n throw new Error('No request provided');\n }\n return await taskStore.createTask(taskParams, request.id, {\n method: request.method,\n params: request.params\n }, sessionId);\n },\n getTask: async (taskId) => {\n const task = await taskStore.getTask(taskId, sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');\n }\n return task;\n },\n storeTaskResult: async (taskId, status, result) => {\n await taskStore.storeTaskResult(taskId, status, result, sessionId);\n // Get updated task state and send notification\n const task = await taskStore.getTask(taskId, sessionId);\n if (task) {\n const notification = TaskStatusNotificationSchema.parse({\n method: 'notifications/tasks/status',\n params: task\n });\n await this.notification(notification);\n if (isTerminal(task.status)) {\n this._cleanupTaskProgressHandler(taskId);\n // Don't clear queue here - it will be cleared after delivery via tasks/result\n }\n }\n },\n getTaskResult: taskId => {\n return taskStore.getTaskResult(taskId, sessionId);\n },\n updateTaskStatus: async (taskId, status, statusMessage) => {\n // Check if task exists\n const task = await taskStore.getTask(taskId, sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, `Task \"${taskId}\" not found - it may have been cleaned up`);\n }\n // Don't allow transitions from terminal states\n if (isTerminal(task.status)) {\n throw new McpError(ErrorCode.InvalidParams, `Cannot update task \"${taskId}\" from terminal status \"${task.status}\" to \"${status}\". Terminal states (completed, failed, cancelled) cannot transition to other states.`);\n }\n await taskStore.updateTaskStatus(taskId, status, statusMessage, sessionId);\n // Get updated task state and send notification\n const updatedTask = await taskStore.getTask(taskId, sessionId);\n if (updatedTask) {\n const notification = TaskStatusNotificationSchema.parse({\n method: 'notifications/tasks/status',\n params: updatedTask\n });\n await this.notification(notification);\n if (isTerminal(updatedTask.status)) {\n this._cleanupTaskProgressHandler(taskId);\n // Don't clear queue here - it will be cleared after delivery via tasks/result\n }\n }\n },\n listTasks: cursor => {\n return taskStore.listTasks(cursor, sessionId);\n }\n };\n }\n}\nfunction isPlainObject(value) {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\nexport function mergeCapabilities(base, additional) {\n const result = { ...base };\n for (const key in additional) {\n const k = key;\n const addValue = additional[k];\n if (addValue === undefined)\n continue;\n const baseValue = result[k];\n if (isPlainObject(baseValue) && isPlainObject(addValue)) {\n result[k] = { ...baseValue, ...addValue };\n }\n else {\n result[k] = addValue;\n }\n }\n return result;\n}\n//# sourceMappingURL=protocol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n buffer.length = 0\n return true\n}\n\n/**\n * @param {Array} buffer\n * @param {Array} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n if (buffer.length) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== '') {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n buffer.length = 0\n }\n return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n /** @type {Array} */\n const address = []\n /** @type {Array} */\n const buffer = []\n let endipv6Encountered = false\n let endIpv6 = false\n\n let consume = consumeHextets\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume(buffer, address, output)) { break }\n if (++tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i > 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n address.push(':')\n continue\n } else if (cursor === '%') {\n if (!consume(buffer, address, output)) { break }\n // switch to zone detection\n consume = consumeIsZone\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (consume === consumeIsZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, isIPV6: true, escapedHost }\n } else {\n return { host, isIPV6: false }\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n const func = esc !== true ? escape : unescape\n if (component.scheme !== undefined) {\n component.scheme = func(component.scheme)\n }\n if (component.userinfo !== undefined) {\n component.userinfo = func(component.userinfo)\n }\n if (component.host !== undefined) {\n component.host = func(component.host)\n }\n if (component.path !== undefined) {\n component.path = func(component.path)\n }\n if (component.query !== undefined) {\n component.query = func(component.query)\n }\n if (component.fragment !== undefined) {\n component.fragment = func(component.fragment)\n }\n return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(component.userinfo)\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = unescape(component.host)\n if (!isIPv4(host)) {\n const ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = component.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(component.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const [path, query] = wsComponent.resourceName.split('?')\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = query\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (serialize(parse(uri, options), options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = escape(component.path)\n\n if (component.scheme !== undefined) {\n component.path = component.path.split('%3A').join(':')\n }\n } else {\n component.path = unescape(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', component.query)\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', component.fragment)\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const ipv6result = normalizeIPv6(parsed.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(getTime(true), compareTime),\n \"date-time\": fmtDef(getDateTime(true), compareDateTime),\n \"iso-time\": fmtDef(getTime(), compareIsoTime),\n \"iso-date-time\": fmtDef(getDateTime(), compareIsoDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n \"iso-time\": fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoTime),\n \"iso-date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i;\nfunction getTime(strictTimeZone) {\n return function time(str) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hr = +matches[1];\n const min = +matches[2];\n const sec = +matches[3];\n const tz = matches[4];\n const tzSign = matches[5] === \"-\" ? -1 : 1;\n const tzH = +(matches[6] || 0);\n const tzM = +(matches[7] || 0);\n if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz))\n return false;\n if (hr <= 23 && min <= 59 && sec < 60)\n return true;\n // leap second\n const utcMin = min - tzM * tzSign;\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n };\n}\nfunction compareTime(s1, s2) {\n if (!(s1 && s2))\n return undefined;\n const t1 = new Date(\"2020-01-01T\" + s1).valueOf();\n const t2 = new Date(\"2020-01-01T\" + s2).valueOf();\n if (!(t1 && t2))\n return undefined;\n return t1 - t2;\n}\nfunction compareIsoTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3];\n t2 = a2[1] + a2[2] + a2[3];\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction getDateTime(strictTimeZone) {\n const time = getTime(strictTimeZone);\n return function date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]);\n };\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const d1 = new Date(dt1).valueOf();\n const d2 = new Date(dt2).valueOf();\n if (!(d1 && d2))\n return undefined;\n return d1 - d2;\n}\nfunction compareIsoDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", (0, codegen_1._) `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data((0, codegen_1.or)((0, codegen_1._) `typeof ${fmt} != \"object\"`, (0, codegen_1._) `${fmt} instanceof RegExp`, (0, codegen_1._) `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return (0, codegen_1._) `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n (0, limit_1.default)(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = (0, codegen_1._) `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","/**\n * AJV-based JSON Schema validator provider\n */\nimport Ajv from 'ajv';\nimport _addFormats from 'ajv-formats';\nfunction createDefaultAjvInstance() {\n const ajv = new Ajv({\n strict: false,\n validateFormats: true,\n validateSchema: false,\n allErrors: true\n });\n const addFormats = _addFormats;\n addFormats(ajv);\n return ajv;\n}\n/**\n * @example\n * ```typescript\n * // Use with default AJV instance (recommended)\n * import { AjvJsonSchemaValidator } from '@modelcontextprotocol/sdk/validation/ajv';\n * const validator = new AjvJsonSchemaValidator();\n *\n * // Use with custom AJV instance\n * import { Ajv } from 'ajv';\n * const ajv = new Ajv({ strict: true, allErrors: true });\n * const validator = new AjvJsonSchemaValidator(ajv);\n * ```\n */\nexport class AjvJsonSchemaValidator {\n /**\n * Create an AJV validator\n *\n * @param ajv - Optional pre-configured AJV instance. If not provided, a default instance will be created.\n *\n * @example\n * ```typescript\n * // Use default configuration (recommended for most cases)\n * import { AjvJsonSchemaValidator } from '@modelcontextprotocol/sdk/validation/ajv';\n * const validator = new AjvJsonSchemaValidator();\n *\n * // Or provide custom AJV instance for advanced configuration\n * import { Ajv } from 'ajv';\n * import addFormats from 'ajv-formats';\n *\n * const ajv = new Ajv({ validateFormats: true });\n * addFormats(ajv);\n * const validator = new AjvJsonSchemaValidator(ajv);\n * ```\n */\n constructor(ajv) {\n this._ajv = ajv ?? createDefaultAjvInstance();\n }\n /**\n * Create a validator for the given JSON Schema\n *\n * The validator is compiled once and can be reused multiple times.\n * If the schema has an $id, it will be cached by AJV automatically.\n *\n * @param schema - Standard JSON Schema object\n * @returns A validator function that validates input data\n */\n getValidator(schema) {\n // Check if schema has $id and is already compiled/cached\n const ajvValidator = '$id' in schema && typeof schema.$id === 'string'\n ? (this._ajv.getSchema(schema.$id) ?? this._ajv.compile(schema))\n : this._ajv.compile(schema);\n return (input) => {\n const valid = ajvValidator(input);\n if (valid) {\n return {\n valid: true,\n data: input,\n errorMessage: undefined\n };\n }\n else {\n return {\n valid: false,\n data: undefined,\n errorMessage: this._ajv.errorsText(ajvValidator.errors)\n };\n }\n };\n }\n}\n//# sourceMappingURL=ajv-provider.js.map","/**\n * Experimental client task features for MCP SDK.\n * WARNING: These APIs are experimental and may change without notice.\n *\n * @experimental\n */\nimport { CallToolResultSchema, McpError, ErrorCode } from '../../types.js';\n/**\n * Experimental task features for MCP clients.\n *\n * Access via `client.experimental.tasks`:\n * ```typescript\n * const stream = client.experimental.tasks.callToolStream({ name: 'tool', arguments: {} });\n * const task = await client.experimental.tasks.getTask(taskId);\n * ```\n *\n * @experimental\n */\nexport class ExperimentalClientTasks {\n constructor(_client) {\n this._client = _client;\n }\n /**\n * Calls a tool and returns an AsyncGenerator that yields response messages.\n * The generator is guaranteed to end with either a 'result' or 'error' message.\n *\n * This method provides streaming access to tool execution, allowing you to\n * observe intermediate task status updates for long-running tool calls.\n * Automatically validates structured output if the tool has an outputSchema.\n *\n * @example\n * ```typescript\n * const stream = client.experimental.tasks.callToolStream({ name: 'myTool', arguments: {} });\n * for await (const message of stream) {\n * switch (message.type) {\n * case 'taskCreated':\n * console.log('Tool execution started:', message.task.taskId);\n * break;\n * case 'taskStatus':\n * console.log('Tool status:', message.task.status);\n * break;\n * case 'result':\n * console.log('Tool result:', message.result);\n * break;\n * case 'error':\n * console.error('Tool error:', message.error);\n * break;\n * }\n * }\n * ```\n *\n * @param params - Tool call parameters (name and arguments)\n * @param resultSchema - Zod schema for validating the result (defaults to CallToolResultSchema)\n * @param options - Optional request options (timeout, signal, task creation params, etc.)\n * @returns AsyncGenerator that yields ResponseMessage objects\n *\n * @experimental\n */\n async *callToolStream(params, resultSchema = CallToolResultSchema, options) {\n // Access Client's internal methods\n const clientInternal = this._client;\n // Add task creation parameters if server supports it and not explicitly provided\n const optionsWithTask = {\n ...options,\n // We check if the tool is known to be a task during auto-configuration, but assume\n // the caller knows what they're doing if they pass this explicitly\n task: options?.task ?? (clientInternal.isToolTask(params.name) ? {} : undefined)\n };\n const stream = clientInternal.requestStream({ method: 'tools/call', params }, resultSchema, optionsWithTask);\n // Get the validator for this tool (if it has an output schema)\n const validator = clientInternal.getToolOutputValidator(params.name);\n // Iterate through the stream and validate the final result if needed\n for await (const message of stream) {\n // If this is a result message and the tool has an output schema, validate it\n if (message.type === 'result' && validator) {\n const result = message.result;\n // If tool has outputSchema, it MUST return structuredContent (unless it's an error)\n if (!result.structuredContent && !result.isError) {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InvalidRequest, `Tool ${params.name} has an output schema but did not return structured content`)\n };\n return;\n }\n // Only validate structured content if present (not when there's an error)\n if (result.structuredContent) {\n try {\n // Validate the structured content against the schema\n const validationResult = validator(result.structuredContent);\n if (!validationResult.valid) {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InvalidParams, `Structured content does not match the tool's output schema: ${validationResult.errorMessage}`)\n };\n return;\n }\n }\n catch (error) {\n if (error instanceof McpError) {\n yield { type: 'error', error };\n return;\n }\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InvalidParams, `Failed to validate structured content: ${error instanceof Error ? error.message : String(error)}`)\n };\n return;\n }\n }\n }\n // Yield the message (either validated result or any other message type)\n yield message;\n }\n }\n /**\n * Gets the current status of a task.\n *\n * @param taskId - The task identifier\n * @param options - Optional request options\n * @returns The task status\n *\n * @experimental\n */\n async getTask(taskId, options) {\n return this._client.getTask({ taskId }, options);\n }\n /**\n * Retrieves the result of a completed task.\n *\n * @param taskId - The task identifier\n * @param resultSchema - Zod schema for validating the result\n * @param options - Optional request options\n * @returns The task result\n *\n * @experimental\n */\n async getTaskResult(taskId, resultSchema, options) {\n // Delegate to the client's underlying Protocol method\n return this._client.getTaskResult({ taskId }, resultSchema, options);\n }\n /**\n * Lists tasks with optional pagination.\n *\n * @param cursor - Optional pagination cursor\n * @param options - Optional request options\n * @returns List of tasks with optional next cursor\n *\n * @experimental\n */\n async listTasks(cursor, options) {\n // Delegate to the client's underlying Protocol method\n return this._client.listTasks(cursor ? { cursor } : undefined, options);\n }\n /**\n * Cancels a running task.\n *\n * @param taskId - The task identifier\n * @param options - Optional request options\n *\n * @experimental\n */\n async cancelTask(taskId, options) {\n // Delegate to the client's underlying Protocol method\n return this._client.cancelTask({ taskId }, options);\n }\n /**\n * Sends a request and returns an AsyncGenerator that yields response messages.\n * The generator is guaranteed to end with either a 'result' or 'error' message.\n *\n * This method provides streaming access to request processing, allowing you to\n * observe intermediate task status updates for task-augmented requests.\n *\n * @param request - The request to send\n * @param resultSchema - Zod schema for validating the result\n * @param options - Optional request options (timeout, signal, task creation params, etc.)\n * @returns AsyncGenerator that yields ResponseMessage objects\n *\n * @experimental\n */\n requestStream(request, resultSchema, options) {\n return this._client.requestStream(request, resultSchema, options);\n }\n}\n//# sourceMappingURL=client.js.map","/**\n * Experimental task capability assertion helpers.\n * WARNING: These APIs are experimental and may change without notice.\n *\n * @experimental\n */\n/**\n * Asserts that task creation is supported for tools/call.\n * Used by Client.assertTaskCapability and Server.assertTaskHandlerCapability.\n *\n * @param requests - The task requests capability object\n * @param method - The method being checked\n * @param entityName - 'Server' or 'Client' for error messages\n * @throws Error if the capability is not supported\n *\n * @experimental\n */\nexport function assertToolsCallTaskCapability(requests, method, entityName) {\n if (!requests) {\n throw new Error(`${entityName} does not support task creation (required for ${method})`);\n }\n switch (method) {\n case 'tools/call':\n if (!requests.tools?.call) {\n throw new Error(`${entityName} does not support task creation for tools/call (required for ${method})`);\n }\n break;\n default:\n // Method doesn't support tasks, which is fine - no error\n break;\n }\n}\n/**\n * Asserts that task creation is supported for sampling/createMessage or elicitation/create.\n * Used by Server.assertTaskCapability and Client.assertTaskHandlerCapability.\n *\n * @param requests - The task requests capability object\n * @param method - The method being checked\n * @param entityName - 'Server' or 'Client' for error messages\n * @throws Error if the capability is not supported\n *\n * @experimental\n */\nexport function assertClientRequestTaskCapability(requests, method, entityName) {\n if (!requests) {\n throw new Error(`${entityName} does not support task creation (required for ${method})`);\n }\n switch (method) {\n case 'sampling/createMessage':\n if (!requests.sampling?.createMessage) {\n throw new Error(`${entityName} does not support task creation for sampling/createMessage (required for ${method})`);\n }\n break;\n case 'elicitation/create':\n if (!requests.elicitation?.create) {\n throw new Error(`${entityName} does not support task creation for elicitation/create (required for ${method})`);\n }\n break;\n default:\n // Method doesn't support tasks, which is fine - no error\n break;\n }\n}\n//# sourceMappingURL=helpers.js.map","import { mergeCapabilities, Protocol } from '../shared/protocol.js';\nimport { CallToolResultSchema, CompleteResultSchema, EmptyResultSchema, ErrorCode, GetPromptResultSchema, InitializeResultSchema, LATEST_PROTOCOL_VERSION, ListPromptsResultSchema, ListResourcesResultSchema, ListResourceTemplatesResultSchema, ListToolsResultSchema, McpError, ReadResourceResultSchema, SUPPORTED_PROTOCOL_VERSIONS, ElicitResultSchema, ElicitRequestSchema, CreateTaskResultSchema, CreateMessageRequestSchema, CreateMessageResultSchema, ToolListChangedNotificationSchema, PromptListChangedNotificationSchema, ResourceListChangedNotificationSchema, ListChangedOptionsBaseSchema } from '../types.js';\nimport { AjvJsonSchemaValidator } from '../validation/ajv-provider.js';\nimport { getObjectShape, isZ4Schema, safeParse } from '../server/zod-compat.js';\nimport { ExperimentalClientTasks } from '../experimental/tasks/client.js';\nimport { assertToolsCallTaskCapability, assertClientRequestTaskCapability } from '../experimental/tasks/helpers.js';\n/**\n * Elicitation default application helper. Applies defaults to the data based on the schema.\n *\n * @param schema - The schema to apply defaults to.\n * @param data - The data to apply defaults to.\n */\nfunction applyElicitationDefaults(schema, data) {\n if (!schema || data === null || typeof data !== 'object')\n return;\n // Handle object properties\n if (schema.type === 'object' && schema.properties && typeof schema.properties === 'object') {\n const obj = data;\n const props = schema.properties;\n for (const key of Object.keys(props)) {\n const propSchema = props[key];\n // If missing or explicitly undefined, apply default if present\n if (obj[key] === undefined && Object.prototype.hasOwnProperty.call(propSchema, 'default')) {\n obj[key] = propSchema.default;\n }\n // Recurse into existing nested objects/arrays\n if (obj[key] !== undefined) {\n applyElicitationDefaults(propSchema, obj[key]);\n }\n }\n }\n if (Array.isArray(schema.anyOf)) {\n for (const sub of schema.anyOf) {\n // Skip boolean schemas (true/false are valid JSON Schemas but have no defaults)\n if (typeof sub !== 'boolean') {\n applyElicitationDefaults(sub, data);\n }\n }\n }\n // Combine schemas\n if (Array.isArray(schema.oneOf)) {\n for (const sub of schema.oneOf) {\n // Skip boolean schemas (true/false are valid JSON Schemas but have no defaults)\n if (typeof sub !== 'boolean') {\n applyElicitationDefaults(sub, data);\n }\n }\n }\n}\n/**\n * Determines which elicitation modes are supported based on declared client capabilities.\n *\n * According to the spec:\n * - An empty elicitation capability object defaults to form mode support (backwards compatibility)\n * - URL mode is only supported if explicitly declared\n *\n * @param capabilities - The client's elicitation capabilities\n * @returns An object indicating which modes are supported\n */\nexport function getSupportedElicitationModes(capabilities) {\n if (!capabilities) {\n return { supportsFormMode: false, supportsUrlMode: false };\n }\n const hasFormCapability = capabilities.form !== undefined;\n const hasUrlCapability = capabilities.url !== undefined;\n // If neither form nor url are explicitly declared, form mode is supported (backwards compatibility)\n const supportsFormMode = hasFormCapability || (!hasFormCapability && !hasUrlCapability);\n const supportsUrlMode = hasUrlCapability;\n return { supportsFormMode, supportsUrlMode };\n}\n/**\n * An MCP client on top of a pluggable transport.\n *\n * The client will automatically begin the initialization flow with the server when connect() is called.\n *\n * To use with custom types, extend the base Request/Notification/Result types and pass them as type parameters:\n *\n * ```typescript\n * // Custom schemas\n * const CustomRequestSchema = RequestSchema.extend({...})\n * const CustomNotificationSchema = NotificationSchema.extend({...})\n * const CustomResultSchema = ResultSchema.extend({...})\n *\n * // Type aliases\n * type CustomRequest = z.infer\n * type CustomNotification = z.infer\n * type CustomResult = z.infer\n *\n * // Create typed client\n * const client = new Client({\n * name: \"CustomClient\",\n * version: \"1.0.0\"\n * })\n * ```\n */\nexport class Client extends Protocol {\n /**\n * Initializes this client with the given name and version information.\n */\n constructor(_clientInfo, options) {\n super(options);\n this._clientInfo = _clientInfo;\n this._cachedToolOutputValidators = new Map();\n this._cachedKnownTaskTools = new Set();\n this._cachedRequiredTaskTools = new Set();\n this._listChangedDebounceTimers = new Map();\n this._capabilities = options?.capabilities ?? {};\n this._jsonSchemaValidator = options?.jsonSchemaValidator ?? new AjvJsonSchemaValidator();\n // Store list changed config for setup after connection (when we know server capabilities)\n if (options?.listChanged) {\n this._pendingListChangedConfig = options.listChanged;\n }\n }\n /**\n * Set up handlers for list changed notifications based on config and server capabilities.\n * This should only be called after initialization when server capabilities are known.\n * Handlers are silently skipped if the server doesn't advertise the corresponding listChanged capability.\n * @internal\n */\n _setupListChangedHandlers(config) {\n if (config.tools && this._serverCapabilities?.tools?.listChanged) {\n this._setupListChangedHandler('tools', ToolListChangedNotificationSchema, config.tools, async () => {\n const result = await this.listTools();\n return result.tools;\n });\n }\n if (config.prompts && this._serverCapabilities?.prompts?.listChanged) {\n this._setupListChangedHandler('prompts', PromptListChangedNotificationSchema, config.prompts, async () => {\n const result = await this.listPrompts();\n return result.prompts;\n });\n }\n if (config.resources && this._serverCapabilities?.resources?.listChanged) {\n this._setupListChangedHandler('resources', ResourceListChangedNotificationSchema, config.resources, async () => {\n const result = await this.listResources();\n return result.resources;\n });\n }\n }\n /**\n * Access experimental features.\n *\n * WARNING: These APIs are experimental and may change without notice.\n *\n * @experimental\n */\n get experimental() {\n if (!this._experimental) {\n this._experimental = {\n tasks: new ExperimentalClientTasks(this)\n };\n }\n return this._experimental;\n }\n /**\n * Registers new capabilities. This can only be called before connecting to a transport.\n *\n * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).\n */\n registerCapabilities(capabilities) {\n if (this.transport) {\n throw new Error('Cannot register capabilities after connecting to transport');\n }\n this._capabilities = mergeCapabilities(this._capabilities, capabilities);\n }\n /**\n * Override request handler registration to enforce client-side validation for elicitation.\n */\n setRequestHandler(requestSchema, handler) {\n const shape = getObjectShape(requestSchema);\n const methodSchema = shape?.method;\n if (!methodSchema) {\n throw new Error('Schema is missing a method literal');\n }\n // Extract literal value using type-safe property access\n let methodValue;\n if (isZ4Schema(methodSchema)) {\n const v4Schema = methodSchema;\n const v4Def = v4Schema._zod?.def;\n methodValue = v4Def?.value ?? v4Schema.value;\n }\n else {\n const v3Schema = methodSchema;\n const legacyDef = v3Schema._def;\n methodValue = legacyDef?.value ?? v3Schema.value;\n }\n if (typeof methodValue !== 'string') {\n throw new Error('Schema method literal must be a string');\n }\n const method = methodValue;\n if (method === 'elicitation/create') {\n const wrappedHandler = async (request, extra) => {\n const validatedRequest = safeParse(ElicitRequestSchema, request);\n if (!validatedRequest.success) {\n // Type guard: if success is false, error is guaranteed to exist\n const errorMessage = validatedRequest.error instanceof Error ? validatedRequest.error.message : String(validatedRequest.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid elicitation request: ${errorMessage}`);\n }\n const { params } = validatedRequest.data;\n params.mode = params.mode ?? 'form';\n const { supportsFormMode, supportsUrlMode } = getSupportedElicitationModes(this._capabilities.elicitation);\n if (params.mode === 'form' && !supportsFormMode) {\n throw new McpError(ErrorCode.InvalidParams, 'Client does not support form-mode elicitation requests');\n }\n if (params.mode === 'url' && !supportsUrlMode) {\n throw new McpError(ErrorCode.InvalidParams, 'Client does not support URL-mode elicitation requests');\n }\n const result = await Promise.resolve(handler(request, extra));\n // When task creation is requested, validate and return CreateTaskResult\n if (params.task) {\n const taskValidationResult = safeParse(CreateTaskResultSchema, result);\n if (!taskValidationResult.success) {\n const errorMessage = taskValidationResult.error instanceof Error\n ? taskValidationResult.error.message\n : String(taskValidationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid task creation result: ${errorMessage}`);\n }\n return taskValidationResult.data;\n }\n // For non-task requests, validate against ElicitResultSchema\n const validationResult = safeParse(ElicitResultSchema, result);\n if (!validationResult.success) {\n // Type guard: if success is false, error is guaranteed to exist\n const errorMessage = validationResult.error instanceof Error ? validationResult.error.message : String(validationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid elicitation result: ${errorMessage}`);\n }\n const validatedResult = validationResult.data;\n const requestedSchema = params.mode === 'form' ? params.requestedSchema : undefined;\n if (params.mode === 'form' && validatedResult.action === 'accept' && validatedResult.content && requestedSchema) {\n if (this._capabilities.elicitation?.form?.applyDefaults) {\n try {\n applyElicitationDefaults(requestedSchema, validatedResult.content);\n }\n catch {\n // gracefully ignore errors in default application\n }\n }\n }\n return validatedResult;\n };\n // Install the wrapped handler\n return super.setRequestHandler(requestSchema, wrappedHandler);\n }\n if (method === 'sampling/createMessage') {\n const wrappedHandler = async (request, extra) => {\n const validatedRequest = safeParse(CreateMessageRequestSchema, request);\n if (!validatedRequest.success) {\n const errorMessage = validatedRequest.error instanceof Error ? validatedRequest.error.message : String(validatedRequest.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid sampling request: ${errorMessage}`);\n }\n const { params } = validatedRequest.data;\n const result = await Promise.resolve(handler(request, extra));\n // When task creation is requested, validate and return CreateTaskResult\n if (params.task) {\n const taskValidationResult = safeParse(CreateTaskResultSchema, result);\n if (!taskValidationResult.success) {\n const errorMessage = taskValidationResult.error instanceof Error\n ? taskValidationResult.error.message\n : String(taskValidationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid task creation result: ${errorMessage}`);\n }\n return taskValidationResult.data;\n }\n // For non-task requests, validate against CreateMessageResultSchema\n const validationResult = safeParse(CreateMessageResultSchema, result);\n if (!validationResult.success) {\n const errorMessage = validationResult.error instanceof Error ? validationResult.error.message : String(validationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid sampling result: ${errorMessage}`);\n }\n return validationResult.data;\n };\n // Install the wrapped handler\n return super.setRequestHandler(requestSchema, wrappedHandler);\n }\n // Other handlers use default behavior\n return super.setRequestHandler(requestSchema, handler);\n }\n assertCapability(capability, method) {\n if (!this._serverCapabilities?.[capability]) {\n throw new Error(`Server does not support ${capability} (required for ${method})`);\n }\n }\n async connect(transport, options) {\n await super.connect(transport);\n // When transport sessionId is already set this means we are trying to reconnect.\n // In this case we don't need to initialize again.\n if (transport.sessionId !== undefined) {\n return;\n }\n try {\n const result = await this.request({\n method: 'initialize',\n params: {\n protocolVersion: LATEST_PROTOCOL_VERSION,\n capabilities: this._capabilities,\n clientInfo: this._clientInfo\n }\n }, InitializeResultSchema, options);\n if (result === undefined) {\n throw new Error(`Server sent invalid initialize result: ${result}`);\n }\n if (!SUPPORTED_PROTOCOL_VERSIONS.includes(result.protocolVersion)) {\n throw new Error(`Server's protocol version is not supported: ${result.protocolVersion}`);\n }\n this._serverCapabilities = result.capabilities;\n this._serverVersion = result.serverInfo;\n // HTTP transports must set the protocol version in each header after initialization.\n if (transport.setProtocolVersion) {\n transport.setProtocolVersion(result.protocolVersion);\n }\n this._instructions = result.instructions;\n await this.notification({\n method: 'notifications/initialized'\n });\n // Set up list changed handlers now that we know server capabilities\n if (this._pendingListChangedConfig) {\n this._setupListChangedHandlers(this._pendingListChangedConfig);\n this._pendingListChangedConfig = undefined;\n }\n }\n catch (error) {\n // Disconnect if initialization fails.\n void this.close();\n throw error;\n }\n }\n /**\n * After initialization has completed, this will be populated with the server's reported capabilities.\n */\n getServerCapabilities() {\n return this._serverCapabilities;\n }\n /**\n * After initialization has completed, this will be populated with information about the server's name and version.\n */\n getServerVersion() {\n return this._serverVersion;\n }\n /**\n * After initialization has completed, this may be populated with information about the server's instructions.\n */\n getInstructions() {\n return this._instructions;\n }\n assertCapabilityForMethod(method) {\n switch (method) {\n case 'logging/setLevel':\n if (!this._serverCapabilities?.logging) {\n throw new Error(`Server does not support logging (required for ${method})`);\n }\n break;\n case 'prompts/get':\n case 'prompts/list':\n if (!this._serverCapabilities?.prompts) {\n throw new Error(`Server does not support prompts (required for ${method})`);\n }\n break;\n case 'resources/list':\n case 'resources/templates/list':\n case 'resources/read':\n case 'resources/subscribe':\n case 'resources/unsubscribe':\n if (!this._serverCapabilities?.resources) {\n throw new Error(`Server does not support resources (required for ${method})`);\n }\n if (method === 'resources/subscribe' && !this._serverCapabilities.resources.subscribe) {\n throw new Error(`Server does not support resource subscriptions (required for ${method})`);\n }\n break;\n case 'tools/call':\n case 'tools/list':\n if (!this._serverCapabilities?.tools) {\n throw new Error(`Server does not support tools (required for ${method})`);\n }\n break;\n case 'completion/complete':\n if (!this._serverCapabilities?.completions) {\n throw new Error(`Server does not support completions (required for ${method})`);\n }\n break;\n case 'initialize':\n // No specific capability required for initialize\n break;\n case 'ping':\n // No specific capability required for ping\n break;\n }\n }\n assertNotificationCapability(method) {\n switch (method) {\n case 'notifications/roots/list_changed':\n if (!this._capabilities.roots?.listChanged) {\n throw new Error(`Client does not support roots list changed notifications (required for ${method})`);\n }\n break;\n case 'notifications/initialized':\n // No specific capability required for initialized\n break;\n case 'notifications/cancelled':\n // Cancellation notifications are always allowed\n break;\n case 'notifications/progress':\n // Progress notifications are always allowed\n break;\n }\n }\n assertRequestHandlerCapability(method) {\n // Task handlers are registered in Protocol constructor before _capabilities is initialized\n // Skip capability check for task methods during initialization\n if (!this._capabilities) {\n return;\n }\n switch (method) {\n case 'sampling/createMessage':\n if (!this._capabilities.sampling) {\n throw new Error(`Client does not support sampling capability (required for ${method})`);\n }\n break;\n case 'elicitation/create':\n if (!this._capabilities.elicitation) {\n throw new Error(`Client does not support elicitation capability (required for ${method})`);\n }\n break;\n case 'roots/list':\n if (!this._capabilities.roots) {\n throw new Error(`Client does not support roots capability (required for ${method})`);\n }\n break;\n case 'tasks/get':\n case 'tasks/list':\n case 'tasks/result':\n case 'tasks/cancel':\n if (!this._capabilities.tasks) {\n throw new Error(`Client does not support tasks capability (required for ${method})`);\n }\n break;\n case 'ping':\n // No specific capability required for ping\n break;\n }\n }\n assertTaskCapability(method) {\n assertToolsCallTaskCapability(this._serverCapabilities?.tasks?.requests, method, 'Server');\n }\n assertTaskHandlerCapability(method) {\n // Task handlers are registered in Protocol constructor before _capabilities is initialized\n // Skip capability check for task methods during initialization\n if (!this._capabilities) {\n return;\n }\n assertClientRequestTaskCapability(this._capabilities.tasks?.requests, method, 'Client');\n }\n async ping(options) {\n return this.request({ method: 'ping' }, EmptyResultSchema, options);\n }\n async complete(params, options) {\n return this.request({ method: 'completion/complete', params }, CompleteResultSchema, options);\n }\n async setLoggingLevel(level, options) {\n return this.request({ method: 'logging/setLevel', params: { level } }, EmptyResultSchema, options);\n }\n async getPrompt(params, options) {\n return this.request({ method: 'prompts/get', params }, GetPromptResultSchema, options);\n }\n async listPrompts(params, options) {\n return this.request({ method: 'prompts/list', params }, ListPromptsResultSchema, options);\n }\n async listResources(params, options) {\n return this.request({ method: 'resources/list', params }, ListResourcesResultSchema, options);\n }\n async listResourceTemplates(params, options) {\n return this.request({ method: 'resources/templates/list', params }, ListResourceTemplatesResultSchema, options);\n }\n async readResource(params, options) {\n return this.request({ method: 'resources/read', params }, ReadResourceResultSchema, options);\n }\n async subscribeResource(params, options) {\n return this.request({ method: 'resources/subscribe', params }, EmptyResultSchema, options);\n }\n async unsubscribeResource(params, options) {\n return this.request({ method: 'resources/unsubscribe', params }, EmptyResultSchema, options);\n }\n /**\n * Calls a tool and waits for the result. Automatically validates structured output if the tool has an outputSchema.\n *\n * For task-based execution with streaming behavior, use client.experimental.tasks.callToolStream() instead.\n */\n async callTool(params, resultSchema = CallToolResultSchema, options) {\n // Guard: required-task tools need experimental API\n if (this.isToolTaskRequired(params.name)) {\n throw new McpError(ErrorCode.InvalidRequest, `Tool \"${params.name}\" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);\n }\n const result = await this.request({ method: 'tools/call', params }, resultSchema, options);\n // Check if the tool has an outputSchema\n const validator = this.getToolOutputValidator(params.name);\n if (validator) {\n // If tool has outputSchema, it MUST return structuredContent (unless it's an error)\n if (!result.structuredContent && !result.isError) {\n throw new McpError(ErrorCode.InvalidRequest, `Tool ${params.name} has an output schema but did not return structured content`);\n }\n // Only validate structured content if present (not when there's an error)\n if (result.structuredContent) {\n try {\n // Validate the structured content against the schema\n const validationResult = validator(result.structuredContent);\n if (!validationResult.valid) {\n throw new McpError(ErrorCode.InvalidParams, `Structured content does not match the tool's output schema: ${validationResult.errorMessage}`);\n }\n }\n catch (error) {\n if (error instanceof McpError) {\n throw error;\n }\n throw new McpError(ErrorCode.InvalidParams, `Failed to validate structured content: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n }\n return result;\n }\n isToolTask(toolName) {\n if (!this._serverCapabilities?.tasks?.requests?.tools?.call) {\n return false;\n }\n return this._cachedKnownTaskTools.has(toolName);\n }\n /**\n * Check if a tool requires task-based execution.\n * Unlike isToolTask which includes 'optional' tools, this only checks for 'required'.\n */\n isToolTaskRequired(toolName) {\n return this._cachedRequiredTaskTools.has(toolName);\n }\n /**\n * Cache validators for tool output schemas.\n * Called after listTools() to pre-compile validators for better performance.\n */\n cacheToolMetadata(tools) {\n this._cachedToolOutputValidators.clear();\n this._cachedKnownTaskTools.clear();\n this._cachedRequiredTaskTools.clear();\n for (const tool of tools) {\n // If the tool has an outputSchema, create and cache the validator\n if (tool.outputSchema) {\n const toolValidator = this._jsonSchemaValidator.getValidator(tool.outputSchema);\n this._cachedToolOutputValidators.set(tool.name, toolValidator);\n }\n // If the tool supports task-based execution, cache that information\n const taskSupport = tool.execution?.taskSupport;\n if (taskSupport === 'required' || taskSupport === 'optional') {\n this._cachedKnownTaskTools.add(tool.name);\n }\n if (taskSupport === 'required') {\n this._cachedRequiredTaskTools.add(tool.name);\n }\n }\n }\n /**\n * Get cached validator for a tool\n */\n getToolOutputValidator(toolName) {\n return this._cachedToolOutputValidators.get(toolName);\n }\n async listTools(params, options) {\n const result = await this.request({ method: 'tools/list', params }, ListToolsResultSchema, options);\n // Cache the tools and their output schemas for future validation\n this.cacheToolMetadata(result.tools);\n return result;\n }\n /**\n * Set up a single list changed handler.\n * @internal\n */\n _setupListChangedHandler(listType, notificationSchema, options, fetcher) {\n // Validate options using Zod schema (validates autoRefresh and debounceMs)\n const parseResult = ListChangedOptionsBaseSchema.safeParse(options);\n if (!parseResult.success) {\n throw new Error(`Invalid ${listType} listChanged options: ${parseResult.error.message}`);\n }\n // Validate callback\n if (typeof options.onChanged !== 'function') {\n throw new Error(`Invalid ${listType} listChanged options: onChanged must be a function`);\n }\n const { autoRefresh, debounceMs } = parseResult.data;\n const { onChanged } = options;\n const refresh = async () => {\n if (!autoRefresh) {\n onChanged(null, null);\n return;\n }\n try {\n const items = await fetcher();\n onChanged(null, items);\n }\n catch (e) {\n const error = e instanceof Error ? e : new Error(String(e));\n onChanged(error, null);\n }\n };\n const handler = () => {\n if (debounceMs) {\n // Clear any pending debounce timer for this list type\n const existingTimer = this._listChangedDebounceTimers.get(listType);\n if (existingTimer) {\n clearTimeout(existingTimer);\n }\n // Set up debounced refresh\n const timer = setTimeout(refresh, debounceMs);\n this._listChangedDebounceTimers.set(listType, timer);\n }\n else {\n // No debounce, refresh immediately\n refresh();\n }\n };\n // Register notification handler\n this.setNotificationHandler(notificationSchema, handler);\n }\n async sendRootsListChanged() {\n return this.notification({ method: 'notifications/roots/list_changed' });\n }\n}\n//# sourceMappingURL=index.js.map","/**\n * Normalizes HeadersInit to a plain Record for manipulation.\n * Handles Headers objects, arrays of tuples, and plain objects.\n */\nexport function normalizeHeaders(headers) {\n if (!headers)\n return {};\n if (headers instanceof Headers) {\n return Object.fromEntries(headers.entries());\n }\n if (Array.isArray(headers)) {\n return Object.fromEntries(headers);\n }\n return { ...headers };\n}\n/**\n * Creates a fetch function that includes base RequestInit options.\n * This ensures requests inherit settings like credentials, mode, headers, etc. from the base init.\n *\n * @param baseFetch - The base fetch function to wrap (defaults to global fetch)\n * @param baseInit - The base RequestInit to merge with each request\n * @returns A wrapped fetch function that merges base options with call-specific options\n */\nexport function createFetchWithInit(baseFetch = fetch, baseInit) {\n if (!baseInit) {\n return baseFetch;\n }\n // Return a wrapped fetch that merges base RequestInit with call-specific init\n return async (url, init) => {\n const mergedInit = {\n ...baseInit,\n ...init,\n // Headers need special handling - merge instead of replace\n headers: init?.headers ? { ...normalizeHeaders(baseInit.headers), ...normalizeHeaders(init.headers) } : baseInit.headers\n };\n return baseFetch(url, mergedInit);\n };\n}\n//# sourceMappingURL=transport.js.map","let crypto;\ncrypto =\n globalThis.crypto?.webcrypto ?? // Node.js [18-16] REPL\n globalThis.crypto ?? // Node.js >18\n import(\"node:crypto\").then(m => m.webcrypto); // Node.js <18 Non-REPL\n/**\n * Creates an array of length `size` of random bytes\n * @param size\n * @returns Array of random ints (0 to 255)\n */\nasync function getRandomValues(size) {\n return (await crypto).getRandomValues(new Uint8Array(size));\n}\n/** Generate cryptographically strong random string\n * @param size The desired length of the string\n * @returns The random string\n */\nasync function random(size) {\n const mask = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~\";\n let result = \"\";\n const randomUints = await getRandomValues(size);\n for (let i = 0; i < size; i++) {\n // cap the value of the randomIndex to mask.length - 1\n const randomIndex = randomUints[i] % mask.length;\n result += mask[randomIndex];\n }\n return result;\n}\n/** Generate a PKCE challenge verifier\n * @param length Length of the verifier\n * @returns A random verifier `length` characters long\n */\nasync function generateVerifier(length) {\n return await random(length);\n}\n/** Generate a PKCE code challenge from a code verifier\n * @param code_verifier\n * @returns The base64 url encoded code challenge\n */\nexport async function generateChallenge(code_verifier) {\n const buffer = await (await crypto).subtle.digest(\"SHA-256\", new TextEncoder().encode(code_verifier));\n // Generate base64url string\n // btoa is deprecated in Node.js but is used here for web browser compatibility\n // (which has no good replacement yet, see also https://github.com/whatwg/html/issues/6811)\n return btoa(String.fromCharCode(...new Uint8Array(buffer)))\n .replace(/\\//g, '_')\n .replace(/\\+/g, '-')\n .replace(/=/g, '');\n}\n/** Generate a PKCE challenge pair\n * @param length Length of the verifer (between 43-128). Defaults to 43.\n * @returns PKCE challenge pair\n */\nexport default async function pkceChallenge(length) {\n if (!length)\n length = 43;\n if (length < 43 || length > 128) {\n throw `Expected a length between 43 and 128. Received ${length}.`;\n }\n const verifier = await generateVerifier(length);\n const challenge = await generateChallenge(verifier);\n return {\n code_verifier: verifier,\n code_challenge: challenge,\n };\n}\n/** Verify that a code_verifier produces the expected code challenge\n * @param code_verifier\n * @param expectedChallenge The code challenge to verify\n * @returns True if challenges are equal. False otherwise.\n */\nexport async function verifyChallenge(code_verifier, expectedChallenge) {\n const actualChallenge = await generateChallenge(code_verifier);\n return actualChallenge === expectedChallenge;\n}\n","import * as z from 'zod/v4';\n/**\n * Reusable URL validation that disallows javascript: scheme\n */\nexport const SafeUrlSchema = z\n .url()\n .superRefine((val, ctx) => {\n if (!URL.canParse(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'URL must be parseable',\n fatal: true\n });\n return z.NEVER;\n }\n})\n .refine(url => {\n const u = new URL(url);\n return u.protocol !== 'javascript:' && u.protocol !== 'data:' && u.protocol !== 'vbscript:';\n}, { message: 'URL cannot use javascript:, data:, or vbscript: scheme' });\n/**\n * RFC 9728 OAuth Protected Resource Metadata\n */\nexport const OAuthProtectedResourceMetadataSchema = z.looseObject({\n resource: z.string().url(),\n authorization_servers: z.array(SafeUrlSchema).optional(),\n jwks_uri: z.string().url().optional(),\n scopes_supported: z.array(z.string()).optional(),\n bearer_methods_supported: z.array(z.string()).optional(),\n resource_signing_alg_values_supported: z.array(z.string()).optional(),\n resource_name: z.string().optional(),\n resource_documentation: z.string().optional(),\n resource_policy_uri: z.string().url().optional(),\n resource_tos_uri: z.string().url().optional(),\n tls_client_certificate_bound_access_tokens: z.boolean().optional(),\n authorization_details_types_supported: z.array(z.string()).optional(),\n dpop_signing_alg_values_supported: z.array(z.string()).optional(),\n dpop_bound_access_tokens_required: z.boolean().optional()\n});\n/**\n * RFC 8414 OAuth 2.0 Authorization Server Metadata\n */\nexport const OAuthMetadataSchema = z.looseObject({\n issuer: z.string(),\n authorization_endpoint: SafeUrlSchema,\n token_endpoint: SafeUrlSchema,\n registration_endpoint: SafeUrlSchema.optional(),\n scopes_supported: z.array(z.string()).optional(),\n response_types_supported: z.array(z.string()),\n response_modes_supported: z.array(z.string()).optional(),\n grant_types_supported: z.array(z.string()).optional(),\n token_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n token_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n service_documentation: SafeUrlSchema.optional(),\n revocation_endpoint: SafeUrlSchema.optional(),\n revocation_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n revocation_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n introspection_endpoint: z.string().optional(),\n introspection_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n introspection_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n code_challenge_methods_supported: z.array(z.string()).optional(),\n client_id_metadata_document_supported: z.boolean().optional()\n});\n/**\n * OpenID Connect Discovery 1.0 Provider Metadata\n * see: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\n */\nexport const OpenIdProviderMetadataSchema = z.looseObject({\n issuer: z.string(),\n authorization_endpoint: SafeUrlSchema,\n token_endpoint: SafeUrlSchema,\n userinfo_endpoint: SafeUrlSchema.optional(),\n jwks_uri: SafeUrlSchema,\n registration_endpoint: SafeUrlSchema.optional(),\n scopes_supported: z.array(z.string()).optional(),\n response_types_supported: z.array(z.string()),\n response_modes_supported: z.array(z.string()).optional(),\n grant_types_supported: z.array(z.string()).optional(),\n acr_values_supported: z.array(z.string()).optional(),\n subject_types_supported: z.array(z.string()),\n id_token_signing_alg_values_supported: z.array(z.string()),\n id_token_encryption_alg_values_supported: z.array(z.string()).optional(),\n id_token_encryption_enc_values_supported: z.array(z.string()).optional(),\n userinfo_signing_alg_values_supported: z.array(z.string()).optional(),\n userinfo_encryption_alg_values_supported: z.array(z.string()).optional(),\n userinfo_encryption_enc_values_supported: z.array(z.string()).optional(),\n request_object_signing_alg_values_supported: z.array(z.string()).optional(),\n request_object_encryption_alg_values_supported: z.array(z.string()).optional(),\n request_object_encryption_enc_values_supported: z.array(z.string()).optional(),\n token_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n token_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n display_values_supported: z.array(z.string()).optional(),\n claim_types_supported: z.array(z.string()).optional(),\n claims_supported: z.array(z.string()).optional(),\n service_documentation: z.string().optional(),\n claims_locales_supported: z.array(z.string()).optional(),\n ui_locales_supported: z.array(z.string()).optional(),\n claims_parameter_supported: z.boolean().optional(),\n request_parameter_supported: z.boolean().optional(),\n request_uri_parameter_supported: z.boolean().optional(),\n require_request_uri_registration: z.boolean().optional(),\n op_policy_uri: SafeUrlSchema.optional(),\n op_tos_uri: SafeUrlSchema.optional(),\n client_id_metadata_document_supported: z.boolean().optional()\n});\n/**\n * OpenID Connect Discovery metadata that may include OAuth 2.0 fields\n * This schema represents the real-world scenario where OIDC providers\n * return a mix of OpenID Connect and OAuth 2.0 metadata fields\n */\nexport const OpenIdProviderDiscoveryMetadataSchema = z.object({\n ...OpenIdProviderMetadataSchema.shape,\n ...OAuthMetadataSchema.pick({\n code_challenge_methods_supported: true\n }).shape\n});\n/**\n * OAuth 2.1 token response\n */\nexport const OAuthTokensSchema = z\n .object({\n access_token: z.string(),\n id_token: z.string().optional(), // Optional for OAuth 2.1, but necessary in OpenID Connect\n token_type: z.string(),\n expires_in: z.coerce.number().optional(),\n scope: z.string().optional(),\n refresh_token: z.string().optional()\n})\n .strip();\n/**\n * OAuth 2.1 error response\n */\nexport const OAuthErrorResponseSchema = z.object({\n error: z.string(),\n error_description: z.string().optional(),\n error_uri: z.string().optional()\n});\n/**\n * Optional version of SafeUrlSchema that allows empty string for retrocompatibility on tos_uri and logo_uri\n */\nexport const OptionalSafeUrlSchema = SafeUrlSchema.optional().or(z.literal('').transform(() => undefined));\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration metadata\n */\nexport const OAuthClientMetadataSchema = z\n .object({\n redirect_uris: z.array(SafeUrlSchema),\n token_endpoint_auth_method: z.string().optional(),\n grant_types: z.array(z.string()).optional(),\n response_types: z.array(z.string()).optional(),\n client_name: z.string().optional(),\n client_uri: SafeUrlSchema.optional(),\n logo_uri: OptionalSafeUrlSchema,\n scope: z.string().optional(),\n contacts: z.array(z.string()).optional(),\n tos_uri: OptionalSafeUrlSchema,\n policy_uri: z.string().optional(),\n jwks_uri: SafeUrlSchema.optional(),\n jwks: z.any().optional(),\n software_id: z.string().optional(),\n software_version: z.string().optional(),\n software_statement: z.string().optional()\n})\n .strip();\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration client information\n */\nexport const OAuthClientInformationSchema = z\n .object({\n client_id: z.string(),\n client_secret: z.string().optional(),\n client_id_issued_at: z.number().optional(),\n client_secret_expires_at: z.number().optional()\n})\n .strip();\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration full response (client information plus metadata)\n */\nexport const OAuthClientInformationFullSchema = OAuthClientMetadataSchema.merge(OAuthClientInformationSchema);\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration error response\n */\nexport const OAuthClientRegistrationErrorSchema = z\n .object({\n error: z.string(),\n error_description: z.string().optional()\n})\n .strip();\n/**\n * RFC 7009 OAuth 2.0 Token Revocation request\n */\nexport const OAuthTokenRevocationRequestSchema = z\n .object({\n token: z.string(),\n token_type_hint: z.string().optional()\n})\n .strip();\n//# sourceMappingURL=auth.js.map","/**\n * Utilities for handling OAuth resource URIs.\n */\n/**\n * Converts a server URL to a resource URL by removing the fragment.\n * RFC 8707 section 2 states that resource URIs \"MUST NOT include a fragment component\".\n * Keeps everything else unchanged (scheme, domain, port, path, query).\n */\nexport function resourceUrlFromServerUrl(url) {\n const resourceURL = typeof url === 'string' ? new URL(url) : new URL(url.href);\n resourceURL.hash = ''; // Remove fragment\n return resourceURL;\n}\n/**\n * Checks if a requested resource URL matches a configured resource URL.\n * A requested resource matches if it has the same scheme, domain, port,\n * and its path starts with the configured resource's path.\n *\n * @param requestedResource The resource URL being requested\n * @param configuredResource The resource URL that has been configured\n * @returns true if the requested resource matches the configured resource, false otherwise\n */\nexport function checkResourceAllowed({ requestedResource, configuredResource }) {\n const requested = typeof requestedResource === 'string' ? new URL(requestedResource) : new URL(requestedResource.href);\n const configured = typeof configuredResource === 'string' ? new URL(configuredResource) : new URL(configuredResource.href);\n // Compare the origin (scheme, domain, and port)\n if (requested.origin !== configured.origin) {\n return false;\n }\n // Handle cases like requested=/foo and configured=/foo/\n if (requested.pathname.length < configured.pathname.length) {\n return false;\n }\n // Check if the requested path starts with the configured path\n // Ensure both paths end with / for proper comparison\n // This ensures that if we have paths like \"/api\" and \"/api/users\",\n // we properly detect that \"/api/users\" is a subpath of \"/api\"\n // By adding a trailing slash if missing, we avoid false positives\n // where paths like \"/api123\" would incorrectly match \"/api\"\n const requestedPath = requested.pathname.endsWith('/') ? requested.pathname : requested.pathname + '/';\n const configuredPath = configured.pathname.endsWith('/') ? configured.pathname : configured.pathname + '/';\n return requestedPath.startsWith(configuredPath);\n}\n//# sourceMappingURL=auth-utils.js.map","/**\n * Base class for all OAuth errors\n */\nexport class OAuthError extends Error {\n constructor(message, errorUri) {\n super(message);\n this.errorUri = errorUri;\n this.name = this.constructor.name;\n }\n /**\n * Converts the error to a standard OAuth error response object\n */\n toResponseObject() {\n const response = {\n error: this.errorCode,\n error_description: this.message\n };\n if (this.errorUri) {\n response.error_uri = this.errorUri;\n }\n return response;\n }\n get errorCode() {\n return this.constructor.errorCode;\n }\n}\n/**\n * Invalid request error - The request is missing a required parameter,\n * includes an invalid parameter value, includes a parameter more than once,\n * or is otherwise malformed.\n */\nexport class InvalidRequestError extends OAuthError {\n}\nInvalidRequestError.errorCode = 'invalid_request';\n/**\n * Invalid client error - Client authentication failed (e.g., unknown client, no client\n * authentication included, or unsupported authentication method).\n */\nexport class InvalidClientError extends OAuthError {\n}\nInvalidClientError.errorCode = 'invalid_client';\n/**\n * Invalid grant error - The provided authorization grant or refresh token is\n * invalid, expired, revoked, does not match the redirection URI used in the\n * authorization request, or was issued to another client.\n */\nexport class InvalidGrantError extends OAuthError {\n}\nInvalidGrantError.errorCode = 'invalid_grant';\n/**\n * Unauthorized client error - The authenticated client is not authorized to use\n * this authorization grant type.\n */\nexport class UnauthorizedClientError extends OAuthError {\n}\nUnauthorizedClientError.errorCode = 'unauthorized_client';\n/**\n * Unsupported grant type error - The authorization grant type is not supported\n * by the authorization server.\n */\nexport class UnsupportedGrantTypeError extends OAuthError {\n}\nUnsupportedGrantTypeError.errorCode = 'unsupported_grant_type';\n/**\n * Invalid scope error - The requested scope is invalid, unknown, malformed, or\n * exceeds the scope granted by the resource owner.\n */\nexport class InvalidScopeError extends OAuthError {\n}\nInvalidScopeError.errorCode = 'invalid_scope';\n/**\n * Access denied error - The resource owner or authorization server denied the request.\n */\nexport class AccessDeniedError extends OAuthError {\n}\nAccessDeniedError.errorCode = 'access_denied';\n/**\n * Server error - The authorization server encountered an unexpected condition\n * that prevented it from fulfilling the request.\n */\nexport class ServerError extends OAuthError {\n}\nServerError.errorCode = 'server_error';\n/**\n * Temporarily unavailable error - The authorization server is currently unable to\n * handle the request due to a temporary overloading or maintenance of the server.\n */\nexport class TemporarilyUnavailableError extends OAuthError {\n}\nTemporarilyUnavailableError.errorCode = 'temporarily_unavailable';\n/**\n * Unsupported response type error - The authorization server does not support\n * obtaining an authorization code using this method.\n */\nexport class UnsupportedResponseTypeError extends OAuthError {\n}\nUnsupportedResponseTypeError.errorCode = 'unsupported_response_type';\n/**\n * Unsupported token type error - The authorization server does not support\n * the requested token type.\n */\nexport class UnsupportedTokenTypeError extends OAuthError {\n}\nUnsupportedTokenTypeError.errorCode = 'unsupported_token_type';\n/**\n * Invalid token error - The access token provided is expired, revoked, malformed,\n * or invalid for other reasons.\n */\nexport class InvalidTokenError extends OAuthError {\n}\nInvalidTokenError.errorCode = 'invalid_token';\n/**\n * Method not allowed error - The HTTP method used is not allowed for this endpoint.\n * (Custom, non-standard error)\n */\nexport class MethodNotAllowedError extends OAuthError {\n}\nMethodNotAllowedError.errorCode = 'method_not_allowed';\n/**\n * Too many requests error - Rate limit exceeded.\n * (Custom, non-standard error based on RFC 6585)\n */\nexport class TooManyRequestsError extends OAuthError {\n}\nTooManyRequestsError.errorCode = 'too_many_requests';\n/**\n * Invalid client metadata error - The client metadata is invalid.\n * (Custom error for dynamic client registration - RFC 7591)\n */\nexport class InvalidClientMetadataError extends OAuthError {\n}\nInvalidClientMetadataError.errorCode = 'invalid_client_metadata';\n/**\n * Insufficient scope error - The request requires higher privileges than provided by the access token.\n */\nexport class InsufficientScopeError extends OAuthError {\n}\nInsufficientScopeError.errorCode = 'insufficient_scope';\n/**\n * Invalid target error - The requested resource is invalid, missing, unknown, or malformed.\n * (Custom error for resource indicators - RFC 8707)\n */\nexport class InvalidTargetError extends OAuthError {\n}\nInvalidTargetError.errorCode = 'invalid_target';\n/**\n * A utility class for defining one-off error codes\n */\nexport class CustomOAuthError extends OAuthError {\n constructor(customErrorCode, message, errorUri) {\n super(message, errorUri);\n this.customErrorCode = customErrorCode;\n }\n get errorCode() {\n return this.customErrorCode;\n }\n}\n/**\n * A full list of all OAuthErrors, enabling parsing from error responses\n */\nexport const OAUTH_ERRORS = {\n [InvalidRequestError.errorCode]: InvalidRequestError,\n [InvalidClientError.errorCode]: InvalidClientError,\n [InvalidGrantError.errorCode]: InvalidGrantError,\n [UnauthorizedClientError.errorCode]: UnauthorizedClientError,\n [UnsupportedGrantTypeError.errorCode]: UnsupportedGrantTypeError,\n [InvalidScopeError.errorCode]: InvalidScopeError,\n [AccessDeniedError.errorCode]: AccessDeniedError,\n [ServerError.errorCode]: ServerError,\n [TemporarilyUnavailableError.errorCode]: TemporarilyUnavailableError,\n [UnsupportedResponseTypeError.errorCode]: UnsupportedResponseTypeError,\n [UnsupportedTokenTypeError.errorCode]: UnsupportedTokenTypeError,\n [InvalidTokenError.errorCode]: InvalidTokenError,\n [MethodNotAllowedError.errorCode]: MethodNotAllowedError,\n [TooManyRequestsError.errorCode]: TooManyRequestsError,\n [InvalidClientMetadataError.errorCode]: InvalidClientMetadataError,\n [InsufficientScopeError.errorCode]: InsufficientScopeError,\n [InvalidTargetError.errorCode]: InvalidTargetError\n};\n//# sourceMappingURL=errors.js.map","import pkceChallenge from 'pkce-challenge';\nimport { LATEST_PROTOCOL_VERSION } from '../types.js';\nimport { OAuthErrorResponseSchema, OpenIdProviderDiscoveryMetadataSchema } from '../shared/auth.js';\nimport { OAuthClientInformationFullSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema } from '../shared/auth.js';\nimport { checkResourceAllowed, resourceUrlFromServerUrl } from '../shared/auth-utils.js';\nimport { InvalidClientError, InvalidClientMetadataError, InvalidGrantError, OAUTH_ERRORS, OAuthError, ServerError, UnauthorizedClientError } from '../server/auth/errors.js';\nexport class UnauthorizedError extends Error {\n constructor(message) {\n super(message ?? 'Unauthorized');\n }\n}\nfunction isClientAuthMethod(method) {\n return ['client_secret_basic', 'client_secret_post', 'none'].includes(method);\n}\nconst AUTHORIZATION_CODE_RESPONSE_TYPE = 'code';\nconst AUTHORIZATION_CODE_CHALLENGE_METHOD = 'S256';\n/**\n * Determines the best client authentication method to use based on server support and client configuration.\n *\n * Priority order (highest to lowest):\n * 1. client_secret_basic (if client secret is available)\n * 2. client_secret_post (if client secret is available)\n * 3. none (for public clients)\n *\n * @param clientInformation - OAuth client information containing credentials\n * @param supportedMethods - Authentication methods supported by the authorization server\n * @returns The selected authentication method\n */\nexport function selectClientAuthMethod(clientInformation, supportedMethods) {\n const hasClientSecret = clientInformation.client_secret !== undefined;\n // If server doesn't specify supported methods, use RFC 6749 defaults\n if (supportedMethods.length === 0) {\n return hasClientSecret ? 'client_secret_post' : 'none';\n }\n // Prefer the method returned by the server during client registration if valid and supported\n if ('token_endpoint_auth_method' in clientInformation &&\n clientInformation.token_endpoint_auth_method &&\n isClientAuthMethod(clientInformation.token_endpoint_auth_method) &&\n supportedMethods.includes(clientInformation.token_endpoint_auth_method)) {\n return clientInformation.token_endpoint_auth_method;\n }\n // Try methods in priority order (most secure first)\n if (hasClientSecret && supportedMethods.includes('client_secret_basic')) {\n return 'client_secret_basic';\n }\n if (hasClientSecret && supportedMethods.includes('client_secret_post')) {\n return 'client_secret_post';\n }\n if (supportedMethods.includes('none')) {\n return 'none';\n }\n // Fallback: use what we have\n return hasClientSecret ? 'client_secret_post' : 'none';\n}\n/**\n * Applies client authentication to the request based on the specified method.\n *\n * Implements OAuth 2.1 client authentication methods:\n * - client_secret_basic: HTTP Basic authentication (RFC 6749 Section 2.3.1)\n * - client_secret_post: Credentials in request body (RFC 6749 Section 2.3.1)\n * - none: Public client authentication (RFC 6749 Section 2.1)\n *\n * @param method - The authentication method to use\n * @param clientInformation - OAuth client information containing credentials\n * @param headers - HTTP headers object to modify\n * @param params - URL search parameters to modify\n * @throws {Error} When required credentials are missing\n */\nfunction applyClientAuthentication(method, clientInformation, headers, params) {\n const { client_id, client_secret } = clientInformation;\n switch (method) {\n case 'client_secret_basic':\n applyBasicAuth(client_id, client_secret, headers);\n return;\n case 'client_secret_post':\n applyPostAuth(client_id, client_secret, params);\n return;\n case 'none':\n applyPublicAuth(client_id, params);\n return;\n default:\n throw new Error(`Unsupported client authentication method: ${method}`);\n }\n}\n/**\n * Applies HTTP Basic authentication (RFC 6749 Section 2.3.1)\n */\nfunction applyBasicAuth(clientId, clientSecret, headers) {\n if (!clientSecret) {\n throw new Error('client_secret_basic authentication requires a client_secret');\n }\n const credentials = btoa(`${clientId}:${clientSecret}`);\n headers.set('Authorization', `Basic ${credentials}`);\n}\n/**\n * Applies POST body authentication (RFC 6749 Section 2.3.1)\n */\nfunction applyPostAuth(clientId, clientSecret, params) {\n params.set('client_id', clientId);\n if (clientSecret) {\n params.set('client_secret', clientSecret);\n }\n}\n/**\n * Applies public client authentication (RFC 6749 Section 2.1)\n */\nfunction applyPublicAuth(clientId, params) {\n params.set('client_id', clientId);\n}\n/**\n * Parses an OAuth error response from a string or Response object.\n *\n * If the input is a standard OAuth2.0 error response, it will be parsed according to the spec\n * and an instance of the appropriate OAuthError subclass will be returned.\n * If parsing fails, it falls back to a generic ServerError that includes\n * the response status (if available) and original content.\n *\n * @param input - A Response object or string containing the error response\n * @returns A Promise that resolves to an OAuthError instance\n */\nexport async function parseErrorResponse(input) {\n const statusCode = input instanceof Response ? input.status : undefined;\n const body = input instanceof Response ? await input.text() : input;\n try {\n const result = OAuthErrorResponseSchema.parse(JSON.parse(body));\n const { error, error_description, error_uri } = result;\n const errorClass = OAUTH_ERRORS[error] || ServerError;\n return new errorClass(error_description || '', error_uri);\n }\n catch (error) {\n // Not a valid OAuth error response, but try to inform the user of the raw data anyway\n const errorMessage = `${statusCode ? `HTTP ${statusCode}: ` : ''}Invalid OAuth error response: ${error}. Raw body: ${body}`;\n return new ServerError(errorMessage);\n }\n}\n/**\n * Orchestrates the full auth flow with a server.\n *\n * This can be used as a single entry point for all authorization functionality,\n * instead of linking together the other lower-level functions in this module.\n */\nexport async function auth(provider, options) {\n try {\n return await authInternal(provider, options);\n }\n catch (error) {\n // Handle recoverable error types by invalidating credentials and retrying\n if (error instanceof InvalidClientError || error instanceof UnauthorizedClientError) {\n await provider.invalidateCredentials?.('all');\n return await authInternal(provider, options);\n }\n else if (error instanceof InvalidGrantError) {\n await provider.invalidateCredentials?.('tokens');\n return await authInternal(provider, options);\n }\n // Throw otherwise\n throw error;\n }\n}\nasync function authInternal(provider, { serverUrl, authorizationCode, scope, resourceMetadataUrl, fetchFn }) {\n let resourceMetadata;\n let authorizationServerUrl;\n try {\n resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl }, fetchFn);\n if (resourceMetadata.authorization_servers && resourceMetadata.authorization_servers.length > 0) {\n authorizationServerUrl = resourceMetadata.authorization_servers[0];\n }\n }\n catch {\n // Ignore errors and fall back to /.well-known/oauth-authorization-server\n }\n /**\n * If we don't get a valid authorization server metadata from protected resource metadata,\n * fallback to the legacy MCP spec's implementation (version 2025-03-26): MCP server base URL acts as the Authorization server.\n */\n if (!authorizationServerUrl) {\n authorizationServerUrl = new URL('/', serverUrl);\n }\n const resource = await selectResourceURL(serverUrl, provider, resourceMetadata);\n const metadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, {\n fetchFn\n });\n // Handle client registration if needed\n let clientInformation = await Promise.resolve(provider.clientInformation());\n if (!clientInformation) {\n if (authorizationCode !== undefined) {\n throw new Error('Existing OAuth client information is required when exchanging an authorization code');\n }\n const supportsUrlBasedClientId = metadata?.client_id_metadata_document_supported === true;\n const clientMetadataUrl = provider.clientMetadataUrl;\n if (clientMetadataUrl && !isHttpsUrl(clientMetadataUrl)) {\n throw new InvalidClientMetadataError(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${clientMetadataUrl}`);\n }\n const shouldUseUrlBasedClientId = supportsUrlBasedClientId && clientMetadataUrl;\n if (shouldUseUrlBasedClientId) {\n // SEP-991: URL-based Client IDs\n clientInformation = {\n client_id: clientMetadataUrl\n };\n await provider.saveClientInformation?.(clientInformation);\n }\n else {\n // Fallback to dynamic registration\n if (!provider.saveClientInformation) {\n throw new Error('OAuth client information must be saveable for dynamic registration');\n }\n const fullInformation = await registerClient(authorizationServerUrl, {\n metadata,\n clientMetadata: provider.clientMetadata,\n fetchFn\n });\n await provider.saveClientInformation(fullInformation);\n clientInformation = fullInformation;\n }\n }\n // Non-interactive flows (e.g., client_credentials, jwt-bearer) don't need a redirect URL\n const nonInteractiveFlow = !provider.redirectUrl;\n // Exchange authorization code for tokens, or fetch tokens directly for non-interactive flows\n if (authorizationCode !== undefined || nonInteractiveFlow) {\n const tokens = await fetchToken(provider, authorizationServerUrl, {\n metadata,\n resource,\n authorizationCode,\n fetchFn\n });\n await provider.saveTokens(tokens);\n return 'AUTHORIZED';\n }\n const tokens = await provider.tokens();\n // Handle token refresh or new authorization\n if (tokens?.refresh_token) {\n try {\n // Attempt to refresh the token\n const newTokens = await refreshAuthorization(authorizationServerUrl, {\n metadata,\n clientInformation,\n refreshToken: tokens.refresh_token,\n resource,\n addClientAuthentication: provider.addClientAuthentication,\n fetchFn\n });\n await provider.saveTokens(newTokens);\n return 'AUTHORIZED';\n }\n catch (error) {\n // If this is a ServerError, or an unknown type, log it out and try to continue. Otherwise, escalate so we can fix things and retry.\n if (!(error instanceof OAuthError) || error instanceof ServerError) {\n // Could not refresh OAuth tokens\n }\n else {\n // Refresh failed for another reason, re-throw\n throw error;\n }\n }\n }\n const state = provider.state ? await provider.state() : undefined;\n // Start new authorization flow\n const { authorizationUrl, codeVerifier } = await startAuthorization(authorizationServerUrl, {\n metadata,\n clientInformation,\n state,\n redirectUrl: provider.redirectUrl,\n scope: scope || resourceMetadata?.scopes_supported?.join(' ') || provider.clientMetadata.scope,\n resource\n });\n await provider.saveCodeVerifier(codeVerifier);\n await provider.redirectToAuthorization(authorizationUrl);\n return 'REDIRECT';\n}\n/**\n * SEP-991: URL-based Client IDs\n * Validate that the client_id is a valid URL with https scheme\n */\nexport function isHttpsUrl(value) {\n if (!value)\n return false;\n try {\n const url = new URL(value);\n return url.protocol === 'https:' && url.pathname !== '/';\n }\n catch {\n return false;\n }\n}\nexport async function selectResourceURL(serverUrl, provider, resourceMetadata) {\n const defaultResource = resourceUrlFromServerUrl(serverUrl);\n // If provider has custom validation, delegate to it\n if (provider.validateResourceURL) {\n return await provider.validateResourceURL(defaultResource, resourceMetadata?.resource);\n }\n // Only include resource parameter when Protected Resource Metadata is present\n if (!resourceMetadata) {\n return undefined;\n }\n // Validate that the metadata's resource is compatible with our request\n if (!checkResourceAllowed({ requestedResource: defaultResource, configuredResource: resourceMetadata.resource })) {\n throw new Error(`Protected resource ${resourceMetadata.resource} does not match expected ${defaultResource} (or origin)`);\n }\n // Prefer the resource from metadata since it's what the server is telling us to request\n return new URL(resourceMetadata.resource);\n}\n/**\n * Extract resource_metadata, scope, and error from WWW-Authenticate header.\n */\nexport function extractWWWAuthenticateParams(res) {\n const authenticateHeader = res.headers.get('WWW-Authenticate');\n if (!authenticateHeader) {\n return {};\n }\n const [type, scheme] = authenticateHeader.split(' ');\n if (type.toLowerCase() !== 'bearer' || !scheme) {\n return {};\n }\n const resourceMetadataMatch = extractFieldFromWwwAuth(res, 'resource_metadata') || undefined;\n let resourceMetadataUrl;\n if (resourceMetadataMatch) {\n try {\n resourceMetadataUrl = new URL(resourceMetadataMatch);\n }\n catch {\n // Ignore invalid URL\n }\n }\n const scope = extractFieldFromWwwAuth(res, 'scope') || undefined;\n const error = extractFieldFromWwwAuth(res, 'error') || undefined;\n return {\n resourceMetadataUrl,\n scope,\n error\n };\n}\n/**\n * Extracts a specific field's value from the WWW-Authenticate header string.\n *\n * @param response The HTTP response object containing the headers.\n * @param fieldName The name of the field to extract (e.g., \"realm\", \"nonce\").\n * @returns The field value\n */\nfunction extractFieldFromWwwAuth(response, fieldName) {\n const wwwAuthHeader = response.headers.get('WWW-Authenticate');\n if (!wwwAuthHeader) {\n return null;\n }\n const pattern = new RegExp(`${fieldName}=(?:\"([^\"]+)\"|([^\\\\s,]+))`);\n const match = wwwAuthHeader.match(pattern);\n if (match) {\n // Pattern matches: field_name=\"value\" or field_name=value (unquoted)\n return match[1] || match[2];\n }\n return null;\n}\n/**\n * Extract resource_metadata from response header.\n * @deprecated Use `extractWWWAuthenticateParams` instead.\n */\nexport function extractResourceMetadataUrl(res) {\n const authenticateHeader = res.headers.get('WWW-Authenticate');\n if (!authenticateHeader) {\n return undefined;\n }\n const [type, scheme] = authenticateHeader.split(' ');\n if (type.toLowerCase() !== 'bearer' || !scheme) {\n return undefined;\n }\n const regex = /resource_metadata=\"([^\"]*)\"/;\n const match = regex.exec(authenticateHeader);\n if (!match) {\n return undefined;\n }\n try {\n return new URL(match[1]);\n }\n catch {\n return undefined;\n }\n}\n/**\n * Looks up RFC 9728 OAuth 2.0 Protected Resource Metadata.\n *\n * If the server returns a 404 for the well-known endpoint, this function will\n * return `undefined`. Any other errors will be thrown as exceptions.\n */\nexport async function discoverOAuthProtectedResourceMetadata(serverUrl, opts, fetchFn = fetch) {\n const response = await discoverMetadataWithFallback(serverUrl, 'oauth-protected-resource', fetchFn, {\n protocolVersion: opts?.protocolVersion,\n metadataUrl: opts?.resourceMetadataUrl\n });\n if (!response || response.status === 404) {\n await response?.body?.cancel();\n throw new Error(`Resource server does not implement OAuth 2.0 Protected Resource Metadata.`);\n }\n if (!response.ok) {\n await response.body?.cancel();\n throw new Error(`HTTP ${response.status} trying to load well-known OAuth protected resource metadata.`);\n }\n return OAuthProtectedResourceMetadataSchema.parse(await response.json());\n}\n/**\n * Helper function to handle fetch with CORS retry logic\n */\nasync function fetchWithCorsRetry(url, headers, fetchFn = fetch) {\n try {\n return await fetchFn(url, { headers });\n }\n catch (error) {\n if (error instanceof TypeError) {\n if (headers) {\n // CORS errors come back as TypeError, retry without headers\n return fetchWithCorsRetry(url, undefined, fetchFn);\n }\n else {\n // We're getting CORS errors on retry too, return undefined\n return undefined;\n }\n }\n throw error;\n }\n}\n/**\n * Constructs the well-known path for auth-related metadata discovery\n */\nfunction buildWellKnownPath(wellKnownPrefix, pathname = '', options = {}) {\n // Strip trailing slash from pathname to avoid double slashes\n if (pathname.endsWith('/')) {\n pathname = pathname.slice(0, -1);\n }\n return options.prependPathname ? `${pathname}/.well-known/${wellKnownPrefix}` : `/.well-known/${wellKnownPrefix}${pathname}`;\n}\n/**\n * Tries to discover OAuth metadata at a specific URL\n */\nasync function tryMetadataDiscovery(url, protocolVersion, fetchFn = fetch) {\n const headers = {\n 'MCP-Protocol-Version': protocolVersion\n };\n return await fetchWithCorsRetry(url, headers, fetchFn);\n}\n/**\n * Determines if fallback to root discovery should be attempted\n */\nfunction shouldAttemptFallback(response, pathname) {\n return !response || (response.status >= 400 && response.status < 500 && pathname !== '/');\n}\n/**\n * Generic function for discovering OAuth metadata with fallback support\n */\nasync function discoverMetadataWithFallback(serverUrl, wellKnownType, fetchFn, opts) {\n const issuer = new URL(serverUrl);\n const protocolVersion = opts?.protocolVersion ?? LATEST_PROTOCOL_VERSION;\n let url;\n if (opts?.metadataUrl) {\n url = new URL(opts.metadataUrl);\n }\n else {\n // Try path-aware discovery first\n const wellKnownPath = buildWellKnownPath(wellKnownType, issuer.pathname);\n url = new URL(wellKnownPath, opts?.metadataServerUrl ?? issuer);\n url.search = issuer.search;\n }\n let response = await tryMetadataDiscovery(url, protocolVersion, fetchFn);\n // If path-aware discovery fails with 404 and we're not already at root, try fallback to root discovery\n if (!opts?.metadataUrl && shouldAttemptFallback(response, issuer.pathname)) {\n const rootUrl = new URL(`/.well-known/${wellKnownType}`, issuer);\n response = await tryMetadataDiscovery(rootUrl, protocolVersion, fetchFn);\n }\n return response;\n}\n/**\n * Looks up RFC 8414 OAuth 2.0 Authorization Server Metadata.\n *\n * If the server returns a 404 for the well-known endpoint, this function will\n * return `undefined`. Any other errors will be thrown as exceptions.\n *\n * @deprecated This function is deprecated in favor of `discoverAuthorizationServerMetadata`.\n */\nexport async function discoverOAuthMetadata(issuer, { authorizationServerUrl, protocolVersion } = {}, fetchFn = fetch) {\n if (typeof issuer === 'string') {\n issuer = new URL(issuer);\n }\n if (!authorizationServerUrl) {\n authorizationServerUrl = issuer;\n }\n if (typeof authorizationServerUrl === 'string') {\n authorizationServerUrl = new URL(authorizationServerUrl);\n }\n protocolVersion ?? (protocolVersion = LATEST_PROTOCOL_VERSION);\n const response = await discoverMetadataWithFallback(authorizationServerUrl, 'oauth-authorization-server', fetchFn, {\n protocolVersion,\n metadataServerUrl: authorizationServerUrl\n });\n if (!response || response.status === 404) {\n await response?.body?.cancel();\n return undefined;\n }\n if (!response.ok) {\n await response.body?.cancel();\n throw new Error(`HTTP ${response.status} trying to load well-known OAuth metadata`);\n }\n return OAuthMetadataSchema.parse(await response.json());\n}\n/**\n * Builds a list of discovery URLs to try for authorization server metadata.\n * URLs are returned in priority order:\n * 1. OAuth metadata at the given URL\n * 2. OIDC metadata endpoints at the given URL\n */\nexport function buildDiscoveryUrls(authorizationServerUrl) {\n const url = typeof authorizationServerUrl === 'string' ? new URL(authorizationServerUrl) : authorizationServerUrl;\n const hasPath = url.pathname !== '/';\n const urlsToTry = [];\n if (!hasPath) {\n // Root path: https://example.com/.well-known/oauth-authorization-server\n urlsToTry.push({\n url: new URL('/.well-known/oauth-authorization-server', url.origin),\n type: 'oauth'\n });\n // OIDC: https://example.com/.well-known/openid-configuration\n urlsToTry.push({\n url: new URL(`/.well-known/openid-configuration`, url.origin),\n type: 'oidc'\n });\n return urlsToTry;\n }\n // Strip trailing slash from pathname to avoid double slashes\n let pathname = url.pathname;\n if (pathname.endsWith('/')) {\n pathname = pathname.slice(0, -1);\n }\n // 1. OAuth metadata at the given URL\n // Insert well-known before the path: https://example.com/.well-known/oauth-authorization-server/tenant1\n urlsToTry.push({\n url: new URL(`/.well-known/oauth-authorization-server${pathname}`, url.origin),\n type: 'oauth'\n });\n // 2. OIDC metadata endpoints\n // RFC 8414 style: Insert /.well-known/openid-configuration before the path\n urlsToTry.push({\n url: new URL(`/.well-known/openid-configuration${pathname}`, url.origin),\n type: 'oidc'\n });\n // OIDC Discovery 1.0 style: Append /.well-known/openid-configuration after the path\n urlsToTry.push({\n url: new URL(`${pathname}/.well-known/openid-configuration`, url.origin),\n type: 'oidc'\n });\n return urlsToTry;\n}\n/**\n * Discovers authorization server metadata with support for RFC 8414 OAuth 2.0 Authorization Server Metadata\n * and OpenID Connect Discovery 1.0 specifications.\n *\n * This function implements a fallback strategy for authorization server discovery:\n * 1. Attempts RFC 8414 OAuth metadata discovery first\n * 2. If OAuth discovery fails, falls back to OpenID Connect Discovery\n *\n * @param authorizationServerUrl - The authorization server URL obtained from the MCP Server's\n * protected resource metadata, or the MCP server's URL if the\n * metadata was not found.\n * @param options - Configuration options\n * @param options.fetchFn - Optional fetch function for making HTTP requests, defaults to global fetch\n * @param options.protocolVersion - MCP protocol version to use, defaults to LATEST_PROTOCOL_VERSION\n * @returns Promise resolving to authorization server metadata, or undefined if discovery fails\n */\nexport async function discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn = fetch, protocolVersion = LATEST_PROTOCOL_VERSION } = {}) {\n const headers = {\n 'MCP-Protocol-Version': protocolVersion,\n Accept: 'application/json'\n };\n // Get the list of URLs to try\n const urlsToTry = buildDiscoveryUrls(authorizationServerUrl);\n // Try each URL in order\n for (const { url: endpointUrl, type } of urlsToTry) {\n const response = await fetchWithCorsRetry(endpointUrl, headers, fetchFn);\n if (!response) {\n /**\n * CORS error occurred - don't throw as the endpoint may not allow CORS,\n * continue trying other possible endpoints\n */\n continue;\n }\n if (!response.ok) {\n await response.body?.cancel();\n // Continue looking for any 4xx response code.\n if (response.status >= 400 && response.status < 500) {\n continue; // Try next URL\n }\n throw new Error(`HTTP ${response.status} trying to load ${type === 'oauth' ? 'OAuth' : 'OpenID provider'} metadata from ${endpointUrl}`);\n }\n // Parse and validate based on type\n if (type === 'oauth') {\n return OAuthMetadataSchema.parse(await response.json());\n }\n else {\n return OpenIdProviderDiscoveryMetadataSchema.parse(await response.json());\n }\n }\n return undefined;\n}\n/**\n * Begins the authorization flow with the given server, by generating a PKCE challenge and constructing the authorization URL.\n */\nexport async function startAuthorization(authorizationServerUrl, { metadata, clientInformation, redirectUrl, scope, state, resource }) {\n let authorizationUrl;\n if (metadata) {\n authorizationUrl = new URL(metadata.authorization_endpoint);\n if (!metadata.response_types_supported.includes(AUTHORIZATION_CODE_RESPONSE_TYPE)) {\n throw new Error(`Incompatible auth server: does not support response type ${AUTHORIZATION_CODE_RESPONSE_TYPE}`);\n }\n if (metadata.code_challenge_methods_supported &&\n !metadata.code_challenge_methods_supported.includes(AUTHORIZATION_CODE_CHALLENGE_METHOD)) {\n throw new Error(`Incompatible auth server: does not support code challenge method ${AUTHORIZATION_CODE_CHALLENGE_METHOD}`);\n }\n }\n else {\n authorizationUrl = new URL('/authorize', authorizationServerUrl);\n }\n // Generate PKCE challenge\n const challenge = await pkceChallenge();\n const codeVerifier = challenge.code_verifier;\n const codeChallenge = challenge.code_challenge;\n authorizationUrl.searchParams.set('response_type', AUTHORIZATION_CODE_RESPONSE_TYPE);\n authorizationUrl.searchParams.set('client_id', clientInformation.client_id);\n authorizationUrl.searchParams.set('code_challenge', codeChallenge);\n authorizationUrl.searchParams.set('code_challenge_method', AUTHORIZATION_CODE_CHALLENGE_METHOD);\n authorizationUrl.searchParams.set('redirect_uri', String(redirectUrl));\n if (state) {\n authorizationUrl.searchParams.set('state', state);\n }\n if (scope) {\n authorizationUrl.searchParams.set('scope', scope);\n }\n if (scope?.includes('offline_access')) {\n // if the request includes the OIDC-only \"offline_access\" scope,\n // we need to set the prompt to \"consent\" to ensure the user is prompted to grant offline access\n // https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess\n authorizationUrl.searchParams.append('prompt', 'consent');\n }\n if (resource) {\n authorizationUrl.searchParams.set('resource', resource.href);\n }\n return { authorizationUrl, codeVerifier };\n}\n/**\n * Prepares token request parameters for an authorization code exchange.\n *\n * This is the default implementation used by fetchToken when the provider\n * doesn't implement prepareTokenRequest.\n *\n * @param authorizationCode - The authorization code received from the authorization endpoint\n * @param codeVerifier - The PKCE code verifier\n * @param redirectUri - The redirect URI used in the authorization request\n * @returns URLSearchParams for the authorization_code grant\n */\nexport function prepareAuthorizationCodeRequest(authorizationCode, codeVerifier, redirectUri) {\n return new URLSearchParams({\n grant_type: 'authorization_code',\n code: authorizationCode,\n code_verifier: codeVerifier,\n redirect_uri: String(redirectUri)\n });\n}\n/**\n * Internal helper to execute a token request with the given parameters.\n * Used by exchangeAuthorization, refreshAuthorization, and fetchToken.\n */\nasync function executeTokenRequest(authorizationServerUrl, { metadata, tokenRequestParams, clientInformation, addClientAuthentication, resource, fetchFn }) {\n const tokenUrl = metadata?.token_endpoint ? new URL(metadata.token_endpoint) : new URL('/token', authorizationServerUrl);\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json'\n });\n if (resource) {\n tokenRequestParams.set('resource', resource.href);\n }\n if (addClientAuthentication) {\n await addClientAuthentication(headers, tokenRequestParams, tokenUrl, metadata);\n }\n else if (clientInformation) {\n const supportedMethods = metadata?.token_endpoint_auth_methods_supported ?? [];\n const authMethod = selectClientAuthMethod(clientInformation, supportedMethods);\n applyClientAuthentication(authMethod, clientInformation, headers, tokenRequestParams);\n }\n const response = await (fetchFn ?? fetch)(tokenUrl, {\n method: 'POST',\n headers,\n body: tokenRequestParams\n });\n if (!response.ok) {\n throw await parseErrorResponse(response);\n }\n return OAuthTokensSchema.parse(await response.json());\n}\n/**\n * Exchanges an authorization code for an access token with the given server.\n *\n * Supports multiple client authentication methods as specified in OAuth 2.1:\n * - Automatically selects the best authentication method based on server support\n * - Falls back to appropriate defaults when server metadata is unavailable\n *\n * @param authorizationServerUrl - The authorization server's base URL\n * @param options - Configuration object containing client info, auth code, etc.\n * @returns Promise resolving to OAuth tokens\n * @throws {Error} When token exchange fails or authentication is invalid\n */\nexport async function exchangeAuthorization(authorizationServerUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, resource, addClientAuthentication, fetchFn }) {\n const tokenRequestParams = prepareAuthorizationCodeRequest(authorizationCode, codeVerifier, redirectUri);\n return executeTokenRequest(authorizationServerUrl, {\n metadata,\n tokenRequestParams,\n clientInformation,\n addClientAuthentication,\n resource,\n fetchFn\n });\n}\n/**\n * Exchange a refresh token for an updated access token.\n *\n * Supports multiple client authentication methods as specified in OAuth 2.1:\n * - Automatically selects the best authentication method based on server support\n * - Preserves the original refresh token if a new one is not returned\n *\n * @param authorizationServerUrl - The authorization server's base URL\n * @param options - Configuration object containing client info, refresh token, etc.\n * @returns Promise resolving to OAuth tokens (preserves original refresh_token if not replaced)\n * @throws {Error} When token refresh fails or authentication is invalid\n */\nexport async function refreshAuthorization(authorizationServerUrl, { metadata, clientInformation, refreshToken, resource, addClientAuthentication, fetchFn }) {\n const tokenRequestParams = new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: refreshToken\n });\n const tokens = await executeTokenRequest(authorizationServerUrl, {\n metadata,\n tokenRequestParams,\n clientInformation,\n addClientAuthentication,\n resource,\n fetchFn\n });\n // Preserve original refresh token if server didn't return a new one\n return { refresh_token: refreshToken, ...tokens };\n}\n/**\n * Unified token fetching that works with any grant type via provider.prepareTokenRequest().\n *\n * This function provides a single entry point for obtaining tokens regardless of the\n * OAuth grant type. The provider's prepareTokenRequest() method determines which grant\n * to use and supplies the grant-specific parameters.\n *\n * @param provider - OAuth client provider that implements prepareTokenRequest()\n * @param authorizationServerUrl - The authorization server's base URL\n * @param options - Configuration for the token request\n * @returns Promise resolving to OAuth tokens\n * @throws {Error} When provider doesn't implement prepareTokenRequest or token fetch fails\n *\n * @example\n * // Provider for client_credentials:\n * class MyProvider implements OAuthClientProvider {\n * prepareTokenRequest(scope) {\n * const params = new URLSearchParams({ grant_type: 'client_credentials' });\n * if (scope) params.set('scope', scope);\n * return params;\n * }\n * // ... other methods\n * }\n *\n * const tokens = await fetchToken(provider, authServerUrl, { metadata });\n */\nexport async function fetchToken(provider, authorizationServerUrl, { metadata, resource, authorizationCode, fetchFn } = {}) {\n const scope = provider.clientMetadata.scope;\n // Use provider's prepareTokenRequest if available, otherwise fall back to authorization_code\n let tokenRequestParams;\n if (provider.prepareTokenRequest) {\n tokenRequestParams = await provider.prepareTokenRequest(scope);\n }\n // Default to authorization_code grant if no custom prepareTokenRequest\n if (!tokenRequestParams) {\n if (!authorizationCode) {\n throw new Error('Either provider.prepareTokenRequest() or authorizationCode is required');\n }\n if (!provider.redirectUrl) {\n throw new Error('redirectUrl is required for authorization_code flow');\n }\n const codeVerifier = await provider.codeVerifier();\n tokenRequestParams = prepareAuthorizationCodeRequest(authorizationCode, codeVerifier, provider.redirectUrl);\n }\n const clientInformation = await provider.clientInformation();\n return executeTokenRequest(authorizationServerUrl, {\n metadata,\n tokenRequestParams,\n clientInformation: clientInformation ?? undefined,\n addClientAuthentication: provider.addClientAuthentication,\n resource,\n fetchFn\n });\n}\n/**\n * Performs OAuth 2.0 Dynamic Client Registration according to RFC 7591.\n */\nexport async function registerClient(authorizationServerUrl, { metadata, clientMetadata, fetchFn }) {\n let registrationUrl;\n if (metadata) {\n if (!metadata.registration_endpoint) {\n throw new Error('Incompatible auth server: does not support dynamic client registration');\n }\n registrationUrl = new URL(metadata.registration_endpoint);\n }\n else {\n registrationUrl = new URL('/register', authorizationServerUrl);\n }\n const response = await (fetchFn ?? fetch)(registrationUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(clientMetadata)\n });\n if (!response.ok) {\n throw await parseErrorResponse(response);\n }\n return OAuthClientInformationFullSchema.parse(await response.json());\n}\n//# sourceMappingURL=auth.js.map","class ParseError extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n}\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n if (typeof callbacks == \"function\")\n throw new TypeError(\n \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n let incompleteLine = \"\", isFirstChunk = !0, id, data = \"\", eventType = \"\";\n function feed(newChunk) {\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n for (const line of complete)\n parseLine(line);\n incompleteLine = incomplete, isFirstChunk = !1;\n }\n function parseLine(line) {\n if (line === \"\") {\n dispatchEvent();\n return;\n }\n if (line.startsWith(\":\")) {\n onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n return;\n }\n const fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex !== -1) {\n const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n return;\n }\n processField(line, \"\", line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value;\n break;\n case \"data\":\n data = `${data}${value}\n`;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n data.length > 0 && onEvent({\n id,\n event: eventType || void 0,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n }), id = void 0, data = \"\", eventType = \"\";\n }\n function reset(options = {}) {\n incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = !0, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n }\n return { feed, reset };\n}\nfunction splitLines(chunk) {\n const lines = [];\n let incompleteLine = \"\", searchIndex = 0;\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n incompleteLine = chunk.slice(searchIndex);\n break;\n } else {\n const line = chunk.slice(searchIndex, lineEnd);\n lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n }\n }\n return [lines, incompleteLine];\n}\nexport {\n ParseError,\n createParser\n};\n//# sourceMappingURL=index.js.map\n","import { createParser } from \"./index.js\";\nimport { ParseError } from \"./index.js\";\nclass EventSourceParserStream extends TransformStream {\n constructor({ onError, onRetry, onComment } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n onError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n },\n onRetry,\n onComment\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n}\nexport {\n EventSourceParserStream,\n ParseError\n};\n//# sourceMappingURL=stream.js.map\n","import { createFetchWithInit, normalizeHeaders } from '../shared/transport.js';\nimport { isInitializedNotification, isJSONRPCRequest, isJSONRPCResultResponse, JSONRPCMessageSchema } from '../types.js';\nimport { auth, extractWWWAuthenticateParams, UnauthorizedError } from './auth.js';\nimport { EventSourceParserStream } from 'eventsource-parser/stream';\n// Default reconnection options for StreamableHTTP connections\nconst DEFAULT_STREAMABLE_HTTP_RECONNECTION_OPTIONS = {\n initialReconnectionDelay: 1000,\n maxReconnectionDelay: 30000,\n reconnectionDelayGrowFactor: 1.5,\n maxRetries: 2\n};\nexport class StreamableHTTPError extends Error {\n constructor(code, message) {\n super(`Streamable HTTP error: ${message}`);\n this.code = code;\n }\n}\n/**\n * Client transport for Streamable HTTP: this implements the MCP Streamable HTTP transport specification.\n * It will connect to a server using HTTP POST for sending messages and HTTP GET with Server-Sent Events\n * for receiving messages.\n */\nexport class StreamableHTTPClientTransport {\n constructor(url, opts) {\n this._hasCompletedAuthFlow = false; // Circuit breaker: detect auth success followed by immediate 401\n this._url = url;\n this._resourceMetadataUrl = undefined;\n this._scope = undefined;\n this._requestInit = opts?.requestInit;\n this._authProvider = opts?.authProvider;\n this._fetch = opts?.fetch;\n this._fetchWithInit = createFetchWithInit(opts?.fetch, opts?.requestInit);\n this._sessionId = opts?.sessionId;\n this._reconnectionOptions = opts?.reconnectionOptions ?? DEFAULT_STREAMABLE_HTTP_RECONNECTION_OPTIONS;\n }\n async _authThenStart() {\n if (!this._authProvider) {\n throw new UnauthorizedError('No auth provider');\n }\n let result;\n try {\n result = await auth(this._authProvider, {\n serverUrl: this._url,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetchWithInit\n });\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError();\n }\n return await this._startOrAuthSse({ resumptionToken: undefined });\n }\n async _commonHeaders() {\n const headers = {};\n if (this._authProvider) {\n const tokens = await this._authProvider.tokens();\n if (tokens) {\n headers['Authorization'] = `Bearer ${tokens.access_token}`;\n }\n }\n if (this._sessionId) {\n headers['mcp-session-id'] = this._sessionId;\n }\n if (this._protocolVersion) {\n headers['mcp-protocol-version'] = this._protocolVersion;\n }\n const extraHeaders = normalizeHeaders(this._requestInit?.headers);\n return new Headers({\n ...headers,\n ...extraHeaders\n });\n }\n async _startOrAuthSse(options) {\n const { resumptionToken } = options;\n try {\n // Try to open an initial SSE stream with GET to listen for server messages\n // This is optional according to the spec - server may not support it\n const headers = await this._commonHeaders();\n headers.set('Accept', 'text/event-stream');\n // Include Last-Event-ID header for resumable streams if provided\n if (resumptionToken) {\n headers.set('last-event-id', resumptionToken);\n }\n const response = await (this._fetch ?? fetch)(this._url, {\n method: 'GET',\n headers,\n signal: this._abortController?.signal\n });\n if (!response.ok) {\n await response.body?.cancel();\n if (response.status === 401 && this._authProvider) {\n // Need to authenticate\n return await this._authThenStart();\n }\n // 405 indicates that the server does not offer an SSE stream at GET endpoint\n // This is an expected case that should not trigger an error\n if (response.status === 405) {\n return;\n }\n throw new StreamableHTTPError(response.status, `Failed to open SSE stream: ${response.statusText}`);\n }\n this._handleSseStream(response.body, options, true);\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n }\n /**\n * Calculates the next reconnection delay using backoff algorithm\n *\n * @param attempt Current reconnection attempt count for the specific stream\n * @returns Time to wait in milliseconds before next reconnection attempt\n */\n _getNextReconnectionDelay(attempt) {\n // Use server-provided retry value if available\n if (this._serverRetryMs !== undefined) {\n return this._serverRetryMs;\n }\n // Fall back to exponential backoff\n const initialDelay = this._reconnectionOptions.initialReconnectionDelay;\n const growFactor = this._reconnectionOptions.reconnectionDelayGrowFactor;\n const maxDelay = this._reconnectionOptions.maxReconnectionDelay;\n // Cap at maximum delay\n return Math.min(initialDelay * Math.pow(growFactor, attempt), maxDelay);\n }\n /**\n * Schedule a reconnection attempt using server-provided retry interval or backoff\n *\n * @param lastEventId The ID of the last received event for resumability\n * @param attemptCount Current reconnection attempt count for this specific stream\n */\n _scheduleReconnection(options, attemptCount = 0) {\n // Use provided options or default options\n const maxRetries = this._reconnectionOptions.maxRetries;\n // Check if we've exceeded maximum retry attempts\n if (attemptCount >= maxRetries) {\n this.onerror?.(new Error(`Maximum reconnection attempts (${maxRetries}) exceeded.`));\n return;\n }\n // Calculate next delay based on current attempt count\n const delay = this._getNextReconnectionDelay(attemptCount);\n // Schedule the reconnection\n this._reconnectionTimeout = setTimeout(() => {\n // Use the last event ID to resume where we left off\n this._startOrAuthSse(options).catch(error => {\n this.onerror?.(new Error(`Failed to reconnect SSE stream: ${error instanceof Error ? error.message : String(error)}`));\n // Schedule another attempt if this one failed, incrementing the attempt counter\n this._scheduleReconnection(options, attemptCount + 1);\n });\n }, delay);\n }\n _handleSseStream(stream, options, isReconnectable) {\n if (!stream) {\n return;\n }\n const { onresumptiontoken, replayMessageId } = options;\n let lastEventId;\n // Track whether we've received a priming event (event with ID)\n // Per spec, server SHOULD send a priming event with ID before closing\n let hasPrimingEvent = false;\n // Track whether we've received a response - if so, no need to reconnect\n // Reconnection is for when server disconnects BEFORE sending response\n let receivedResponse = false;\n const processStream = async () => {\n // this is the closest we can get to trying to catch network errors\n // if something happens reader will throw\n try {\n // Create a pipeline: binary stream -> text decoder -> SSE parser\n const reader = stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new EventSourceParserStream({\n onRetry: (retryMs) => {\n // Capture server-provided retry value for reconnection timing\n this._serverRetryMs = retryMs;\n }\n }))\n .getReader();\n while (true) {\n const { value: event, done } = await reader.read();\n if (done) {\n break;\n }\n // Update last event ID if provided\n if (event.id) {\n lastEventId = event.id;\n // Mark that we've received a priming event - stream is now resumable\n hasPrimingEvent = true;\n onresumptiontoken?.(event.id);\n }\n // Skip events with no data (priming events, keep-alives)\n if (!event.data) {\n continue;\n }\n if (!event.event || event.event === 'message') {\n try {\n const message = JSONRPCMessageSchema.parse(JSON.parse(event.data));\n if (isJSONRPCResultResponse(message)) {\n // Mark that we received a response - no need to reconnect for this request\n receivedResponse = true;\n if (replayMessageId !== undefined) {\n message.id = replayMessageId;\n }\n }\n this.onmessage?.(message);\n }\n catch (error) {\n this.onerror?.(error);\n }\n }\n }\n // Handle graceful server-side disconnect\n // Server may close connection after sending event ID and retry field\n // Reconnect if: already reconnectable (GET stream) OR received a priming event (POST stream with event ID)\n // BUT don't reconnect if we already received a response - the request is complete\n const canResume = isReconnectable || hasPrimingEvent;\n const needsReconnect = canResume && !receivedResponse;\n if (needsReconnect && this._abortController && !this._abortController.signal.aborted) {\n this._scheduleReconnection({\n resumptionToken: lastEventId,\n onresumptiontoken,\n replayMessageId\n }, 0);\n }\n }\n catch (error) {\n // Handle stream errors - likely a network disconnect\n this.onerror?.(new Error(`SSE stream disconnected: ${error}`));\n // Attempt to reconnect if the stream disconnects unexpectedly and we aren't closing\n // Reconnect if: already reconnectable (GET stream) OR received a priming event (POST stream with event ID)\n // BUT don't reconnect if we already received a response - the request is complete\n const canResume = isReconnectable || hasPrimingEvent;\n const needsReconnect = canResume && !receivedResponse;\n if (needsReconnect && this._abortController && !this._abortController.signal.aborted) {\n // Use the exponential backoff reconnection strategy\n try {\n this._scheduleReconnection({\n resumptionToken: lastEventId,\n onresumptiontoken,\n replayMessageId\n }, 0);\n }\n catch (error) {\n this.onerror?.(new Error(`Failed to reconnect: ${error instanceof Error ? error.message : String(error)}`));\n }\n }\n }\n };\n processStream();\n }\n async start() {\n if (this._abortController) {\n throw new Error('StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.');\n }\n this._abortController = new AbortController();\n }\n /**\n * Call this method after the user has finished authorizing via their user agent and is redirected back to the MCP client application. This will exchange the authorization code for an access token, enabling the next connection attempt to successfully auth.\n */\n async finishAuth(authorizationCode) {\n if (!this._authProvider) {\n throw new UnauthorizedError('No auth provider');\n }\n const result = await auth(this._authProvider, {\n serverUrl: this._url,\n authorizationCode,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetchWithInit\n });\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError('Failed to authorize');\n }\n }\n async close() {\n if (this._reconnectionTimeout) {\n clearTimeout(this._reconnectionTimeout);\n this._reconnectionTimeout = undefined;\n }\n this._abortController?.abort();\n this.onclose?.();\n }\n async send(message, options) {\n try {\n const { resumptionToken, onresumptiontoken } = options || {};\n if (resumptionToken) {\n // If we have at last event ID, we need to reconnect the SSE stream\n this._startOrAuthSse({ resumptionToken, replayMessageId: isJSONRPCRequest(message) ? message.id : undefined }).catch(err => this.onerror?.(err));\n return;\n }\n const headers = await this._commonHeaders();\n headers.set('content-type', 'application/json');\n headers.set('accept', 'application/json, text/event-stream');\n const init = {\n ...this._requestInit,\n method: 'POST',\n headers,\n body: JSON.stringify(message),\n signal: this._abortController?.signal\n };\n const response = await (this._fetch ?? fetch)(this._url, init);\n // Handle session ID received during initialization\n const sessionId = response.headers.get('mcp-session-id');\n if (sessionId) {\n this._sessionId = sessionId;\n }\n if (!response.ok) {\n const text = await response.text().catch(() => null);\n if (response.status === 401 && this._authProvider) {\n // Prevent infinite recursion when server returns 401 after successful auth\n if (this._hasCompletedAuthFlow) {\n throw new StreamableHTTPError(401, 'Server returned 401 after successful authentication');\n }\n const { resourceMetadataUrl, scope } = extractWWWAuthenticateParams(response);\n this._resourceMetadataUrl = resourceMetadataUrl;\n this._scope = scope;\n const result = await auth(this._authProvider, {\n serverUrl: this._url,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetchWithInit\n });\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError();\n }\n // Mark that we completed auth flow\n this._hasCompletedAuthFlow = true;\n // Purposely _not_ awaited, so we don't call onerror twice\n return this.send(message);\n }\n if (response.status === 403 && this._authProvider) {\n const { resourceMetadataUrl, scope, error } = extractWWWAuthenticateParams(response);\n if (error === 'insufficient_scope') {\n const wwwAuthHeader = response.headers.get('WWW-Authenticate');\n // Check if we've already tried upscoping with this header to prevent infinite loops.\n if (this._lastUpscopingHeader === wwwAuthHeader) {\n throw new StreamableHTTPError(403, 'Server returned 403 after trying upscoping');\n }\n if (scope) {\n this._scope = scope;\n }\n if (resourceMetadataUrl) {\n this._resourceMetadataUrl = resourceMetadataUrl;\n }\n // Mark that upscoping was tried.\n this._lastUpscopingHeader = wwwAuthHeader ?? undefined;\n const result = await auth(this._authProvider, {\n serverUrl: this._url,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetch\n });\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError();\n }\n return this.send(message);\n }\n }\n throw new StreamableHTTPError(response.status, `Error POSTing to endpoint: ${text}`);\n }\n // Reset auth loop flag on successful response\n this._hasCompletedAuthFlow = false;\n this._lastUpscopingHeader = undefined;\n // If the response is 202 Accepted, there's no body to process\n if (response.status === 202) {\n await response.body?.cancel();\n // if the accepted notification is initialized, we start the SSE stream\n // if it's supported by the server\n if (isInitializedNotification(message)) {\n // Start without a lastEventId since this is a fresh connection\n this._startOrAuthSse({ resumptionToken: undefined }).catch(err => this.onerror?.(err));\n }\n return;\n }\n // Get original message(s) for detecting request IDs\n const messages = Array.isArray(message) ? message : [message];\n const hasRequests = messages.filter(msg => 'method' in msg && 'id' in msg && msg.id !== undefined).length > 0;\n // Check the response type\n const contentType = response.headers.get('content-type');\n if (hasRequests) {\n if (contentType?.includes('text/event-stream')) {\n // Handle SSE stream responses for requests\n // We use the same handler as standalone streams, which now supports\n // reconnection with the last event ID\n this._handleSseStream(response.body, { onresumptiontoken }, false);\n }\n else if (contentType?.includes('application/json')) {\n // For non-streaming servers, we might get direct JSON responses\n const data = await response.json();\n const responseMessages = Array.isArray(data)\n ? data.map(msg => JSONRPCMessageSchema.parse(msg))\n : [JSONRPCMessageSchema.parse(data)];\n for (const msg of responseMessages) {\n this.onmessage?.(msg);\n }\n }\n else {\n await response.body?.cancel();\n throw new StreamableHTTPError(-1, `Unexpected content type: ${contentType}`);\n }\n }\n else {\n // No requests in message but got 200 OK - still need to release connection\n await response.body?.cancel();\n }\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n }\n get sessionId() {\n return this._sessionId;\n }\n /**\n * Terminates the current session by sending a DELETE request to the server.\n *\n * Clients that no longer need a particular session\n * (e.g., because the user is leaving the client application) SHOULD send an\n * HTTP DELETE to the MCP endpoint with the Mcp-Session-Id header to explicitly\n * terminate the session.\n *\n * The server MAY respond with HTTP 405 Method Not Allowed, indicating that\n * the server does not allow clients to terminate sessions.\n */\n async terminateSession() {\n if (!this._sessionId) {\n return; // No session to terminate\n }\n try {\n const headers = await this._commonHeaders();\n const init = {\n ...this._requestInit,\n method: 'DELETE',\n headers,\n signal: this._abortController?.signal\n };\n const response = await (this._fetch ?? fetch)(this._url, init);\n await response.body?.cancel();\n // We specifically handle 405 as a valid response according to the spec,\n // meaning the server does not support explicit session termination\n if (!response.ok && response.status !== 405) {\n throw new StreamableHTTPError(response.status, `Failed to terminate session: ${response.statusText}`);\n }\n this._sessionId = undefined;\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n }\n setProtocolVersion(version) {\n this._protocolVersion = version;\n }\n get protocolVersion() {\n return this._protocolVersion;\n }\n /**\n * Resume an SSE stream from a previous event ID.\n * Opens a GET SSE connection with Last-Event-ID header to replay missed events.\n *\n * @param lastEventId The event ID to resume from\n * @param options Optional callback to receive new resumption tokens\n */\n async resumeStream(lastEventId, options) {\n await this._startOrAuthSse({\n resumptionToken: lastEventId,\n onresumptiontoken: options?.onresumptiontoken\n });\n }\n}\n//# sourceMappingURL=streamableHttp.js.map","import * as core from '@actions/core'\nimport {Client} from '@modelcontextprotocol/sdk/client/index.js'\nimport {StreamableHTTPClientTransport} from '@modelcontextprotocol/sdk/client/streamableHttp.js'\n\nexport interface ToolResult {\n tool_call_id: string\n role: 'tool'\n name: string\n content: string\n}\n\nexport interface MCPTool {\n type: 'function'\n function: {\n name: string\n description?: string\n parameters?: Record\n }\n}\n\nexport interface ToolCall {\n id: string\n type: string\n function: {\n name: string\n arguments: string\n }\n}\n\nexport interface GitHubMCPClient {\n client: Client\n tools: Array\n}\n\n/**\n * Connect to the GitHub MCP server and retrieve available tools\n */\nexport async function connectToGitHubMCP(token: string, toolsets?: string): Promise {\n const githubMcpUrl = 'https://api.githubcopilot.com/mcp/'\n\n core.info('Connecting to GitHub MCP server...')\n\n const headers: Record = {\n Authorization: `Bearer ${token}`,\n 'X-MCP-Readonly': 'true',\n }\n\n // Add toolsets header if specified\n if (toolsets && toolsets.trim() !== '') {\n headers['X-MCP-Toolsets'] = toolsets\n core.info(`Using GitHub MCP toolsets: ${toolsets}`)\n } else {\n core.info('Using default GitHub MCP toolsets')\n }\n\n const transport = new StreamableHTTPClientTransport(new URL(githubMcpUrl), {\n requestInit: {\n headers,\n },\n })\n\n const client = new Client({\n name: 'ai-inference-action',\n version: '1.0.0',\n transport,\n })\n\n try {\n await client.connect(transport)\n } catch (mcpError) {\n core.warning(`Failed to connect to GitHub MCP server: ${mcpError}`)\n return null\n }\n\n core.info('Successfully connected to GitHub MCP server')\n\n const toolsResponse = await client.listTools()\n core.info(`Retrieved ${toolsResponse.tools?.length || 0} tools from GitHub MCP server`)\n\n // Map GitHub MCP tools → Azure AI Inference tool definitions\n const tools = (toolsResponse.tools || []).map(t => ({\n type: 'function' as const,\n function: {\n name: t.name,\n description: t.description,\n parameters: t.inputSchema,\n },\n }))\n\n core.info(`Mapped ${tools.length} GitHub MCP tools for Azure AI Inference`)\n\n return {client, tools}\n}\n\n/**\n * Execute a single tool call via GitHub MCP\n */\nexport async function executeToolCall(githubMcpClient: Client, toolCall: ToolCall): Promise {\n core.info(`Executing GitHub MCP tool: ${toolCall.function.name} with args: ${toolCall.function.arguments}`)\n\n try {\n const args = JSON.parse(toolCall.function.arguments)\n\n const result = await githubMcpClient.callTool({\n name: toolCall.function.name,\n arguments: args,\n })\n\n core.info(`GitHub MCP tool ${toolCall.function.name} executed successfully`)\n\n return {\n tool_call_id: toolCall.id,\n role: 'tool',\n name: toolCall.function.name,\n content: JSON.stringify(result.content),\n }\n } catch (toolError) {\n core.warning(`Failed to execute GitHub MCP tool ${toolCall.function.name}: ${toolError}`)\n\n return {\n tool_call_id: toolCall.id,\n role: 'tool',\n name: toolCall.function.name,\n content: `Error: ${toolError}`,\n }\n }\n}\n\n/**\n * Execute all tool calls from a response via GitHub MCP\n */\nexport async function executeToolCalls(githubMcpClient: Client, toolCalls: ToolCall[]): Promise {\n const toolResults: ToolResult[] = []\n\n for (const toolCall of toolCalls) {\n const result = await executeToolCall(githubMcpClient, toolCall)\n toolResults.push(result)\n }\n\n return toolResults\n}\n","function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? (f.value = value) : state.set(receiver, value), value;\n}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause)\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class OpenAIError extends Error {\n}\nexport class APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('x-request-id');\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\nexport class LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexport class ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexport class InvalidWebhookSignatureError extends Error {\n constructor(message) {\n super(message);\n }\n}\n//# sourceMappingURL=error.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new OpenAIError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '5.11.0'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process.version,\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n throw new Error('`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","export const default_format = 'RFC3986';\nexport const default_formatter = (v) => String(v);\nexport const formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: default_formatter,\n};\nexport const RFC1738 = 'RFC1738';\nexport const RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.mjs.map","import { RFC1738 } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nexport let has = (obj, key) => ((has = Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),\n has(obj, key));\nconst hex_table = /* @__PURE__ */ (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item)\n continue;\n const obj = item.obj[item.prop];\n if (isArray(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nexport function merge(target, source, options = {}) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexport function assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n}\nexport function decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch (e) {\n return strWithoutPlus;\n }\n}\nconst limit = 1024;\nexport const encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n }\n return out;\n};\nexport function compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexport function is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport function is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexport function combine(a, b) {\n return [].concat(a, b);\n}\nexport function maybe_map(val, fn) {\n if (isArray(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n}\n//# sourceMappingURL=utils.mjs.map","import { encode, is_buffer, maybe_map, has } from \"./utils.mjs\";\nimport { default_format, default_formatter, formatters } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst push_to_array = function (arr, value_or_array) {\n Array.prototype.push.apply(arr, isArray(value_or_array) ? value_or_array : [value_or_array]);\n};\nlet toISOString;\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: encode,\n encodeValuesOnly: false,\n format: default_format,\n formatter: default_formatter,\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return (toISOString ?? (toISOString = Function.prototype.call.bind(Date.prototype.toISOString)))(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (typeof tmp_sc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = maybe_map(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ?\n // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || is_buffer(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly ? prefix\n // @ts-expect-error\n : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (typeof obj === 'undefined') {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = maybe_map(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n }\n else if (isArray(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = isArray(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(sentinel, sideChannel);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = default_format;\n if (typeof opts.format !== 'undefined') {\n if (!has(formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nexport function stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (isArray(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\n//# sourceMappingURL=stringify.mjs.map","export function concatBytes(buffers) {\n let length = 0;\n for (const buffer of buffers) {\n length += buffer.length;\n }\n const output = new Uint8Array(length);\n let index = 0;\n for (const buffer of buffers) {\n output.set(buffer, index);\n index += buffer.length;\n }\n return output;\n}\nlet encodeUTF8_;\nexport function encodeUTF8(str) {\n let encoder;\n return (encodeUTF8_ ??\n ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);\n}\nlet decodeUTF8_;\nexport function decodeUTF8(bytes) {\n let decoder;\n return (decodeUTF8_ ??\n ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);\n}\n//# sourceMappingURL=bytes.mjs.map","var _LineDecoder_buffer, _LineDecoder_carriageReturnIndex;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { concatBytes, decodeUTF8, encodeUTF8 } from \"../utils/bytes.mjs\";\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class LineDecoder {\n constructor() {\n _LineDecoder_buffer.set(this, void 0);\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n __classPrivateFieldSet(this, _LineDecoder_buffer, concatBytes([__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), binaryChunk]), \"f\");\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\")), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, endIndex));\n lines.push(line);\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(patternIndex.index), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n flush() {\n if (!__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n_LineDecoder_buffer = new WeakMap(), _LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\nexport function findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\n//# sourceMappingURL=line.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","var _Stream_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { makeReadableStream } from \"../internal/shims.mjs\";\nimport { findDoubleNewlineIndex, LineDecoder } from \"../internal/decoders/line.mjs\";\nimport { ReadableStreamToAsyncIterable } from \"../internal/shims.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nimport { loggerFor } from \"../internal/utils/log.mjs\";\nimport { APIError } from \"./error.mjs\";\nexport class Stream {\n constructor(iterator, controller, client) {\n this.iterator = iterator;\n _Stream_client.set(this, void 0);\n this.controller = controller;\n __classPrivateFieldSet(this, _Stream_client, client, \"f\");\n }\n static fromSSEResponse(response, controller, client) {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const sse of _iterSSEMessages(response, controller)) {\n if (done)\n continue;\n if (sse.data.startsWith('[DONE]')) {\n done = true;\n continue;\n }\n if (sse.event === null || !sse.event.startsWith('thread.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n logger.error(`Could not parse message into JSON:`, sse.data);\n logger.error(`From chunk:`, sse.raw);\n throw e;\n }\n if (data && data.error) {\n throw new APIError(undefined, data.error, undefined, response.headers);\n }\n yield data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n // TODO: Is this where the error should be thrown?\n if (sse.event == 'error') {\n throw new APIError(undefined, data.error, data.message, undefined);\n }\n yield { event: sse.event, data: data };\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller, client) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n [(_Stream_client = new WeakMap(), Symbol.asyncIterator)]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n new Stream(() => teeIterator(right), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n ];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n */\n toReadableStream() {\n const self = this;\n let iter;\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexport async function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n if (typeof globalThis.navigator !== 'undefined' &&\n globalThis.navigator.product === 'ReactNative') {\n throw new OpenAIError(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`);\n }\n throw new OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length)\n return null;\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { Stream } from \"../core/streaming.mjs\";\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n const body = await (async () => {\n if (props.options.stream) {\n loggerFor(client).debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller, client);\n }\n return Stream.fromSSEResponse(response, props.controller, client);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n return addRequestID(json, response);\n }\n const text = await response.text();\n return text;\n })();\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\nexport function addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n//# sourceMappingURL=parse.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse, addRequestID, } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => addRequestID(transform(await this.parseResponse(client, props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nexport class Page extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n return null;\n }\n}\nexport class CursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const data = this.getPaginatedItems();\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: id,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value) {\n return (((typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '')\n .split(/[\\\\/]/)\n .pop() || undefined);\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch) => {\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\nexport const createForm = async (body, fetch) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value) => value instanceof Blob && 'name' in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n form.append(key, makeFile([await value.blob()], getName(value)));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));\n }\n else if (isNamedBlob(value)) {\n form.append(key, value, getName(value));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable } from \"./uploads.mjs\";\nimport { checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if (isFileLike(value)) {\n if (value instanceof File) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], value.name);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n name || (name = getName(value));\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null)\n return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1)\n return statics[0];\n let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, index) => {\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: previousValue.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n return previousValue + currentValue + (index === params.length ? '' : encoded);\n }, '');\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can\\'t be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new OpenAIError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Messages extends APIResource {\n /**\n * Get the messages in a stored chat completion. Only Chat Completions that have\n * been created with the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletionStoreMessage of client.chat.completions.messages.list(\n * 'completion_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(completionID, query = {}, options) {\n return this._client.getAPIList(path `/chat/completions/${completionID}/messages`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=messages.mjs.map","export function isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nexport class ParsingToolFunction {\n constructor(input) {\n this.type = 'function';\n this.function = input;\n }\n}\n//# sourceMappingURL=RunnableFunction.mjs.map","export const isAssistantMessage = (message) => {\n return message?.role === 'assistant';\n};\nexport const isToolMessage = (message) => {\n return message?.role === 'tool';\n};\nexport function isPresent(obj) {\n return obj != null;\n}\n//# sourceMappingURL=chatCompletionUtils.mjs.map","var _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_handleError;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nexport class EventStream {\n constructor() {\n _EventStream_instances.add(this);\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n _EventStream_resolveConnectedPromise.set(this, () => { });\n _EventStream_rejectConnectedPromise.set(this, () => { });\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => { });\n _EventStream_rejectEndPromise.set(this, () => { });\n _EventStream_listeners.set(this, {});\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => { });\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).bind(this));\n }, 0);\n }\n _connected() {\n if (this.ended)\n return;\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() { }\n}\n_EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = new APIUserAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new OpenAIError(String(error)));\n};\n//# sourceMappingURL=EventStream.mjs.map","import { ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from \"../error.mjs\";\nexport function makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\nexport function makeParseableTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexport function maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => ({\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n })),\n };\n }\n return parseChatCompletion(completion, params);\n}\nexport function parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content && !choice.message.refusal ?\n parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nfunction parseResponseFormat(params, content) {\n if (params.response_format?.type !== 'json_schema') {\n return null;\n }\n if (params.response_format?.type === 'json_schema') {\n if ('$parseRaw' in params.response_format) {\n const response_format = params.response_format;\n return response_format.$parseRaw(content);\n }\n return JSON.parse(content);\n }\n return null;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name);\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments)\n : null,\n },\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => inputTool.function?.name === toolCall.function.name);\n return isAutoParsableTool(inputTool) || inputTool?.function.strict || false;\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\n//# sourceMappingURL=parser.mjs.map","var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionToolCall, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"../error.mjs\";\nimport { isRunnableFunctionWithParse, } from \"./RunnableFunction.mjs\";\nimport { isAssistantMessage, isToolMessage } from \"./chatCompletionUtils.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isAutoParsableTool, parseChatCompletion } from \"../lib/parser.mjs\";\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nexport class AbstractChatCompletionRunner extends EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message)\n this._addMessage(message);\n return chatCompletion;\n }\n _addMessage(message, emit = true) {\n if (!('content' in message))\n message.content = null;\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (isToolMessage(message) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n this._emit('functionToolCallResult', message.content);\n }\n else if (isAssistantMessage(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionToolCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the content of the final FunctionCall, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalFunctionToolCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n }\n async finalFunctionToolCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n }\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion)\n this._emit('finalChatCompletion', completion);\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage)\n this._emit('finalMessage', finalMessage);\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent)\n this._emit('finalContent', finalContent);\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n if (finalFunctionCall)\n this._emit('finalFunctionToolCall', finalFunctionCall);\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n if (finalFunctionCallResult != null)\n this._emit('finalFunctionToolCallResult', finalFunctionCallResult);\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_validateParams).call(this, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion(parseChatCompletion(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runTools(client, params, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n // TODO(someday): clean this logic up\n const inputTools = params.tools.map((tool) => {\n if (isAutoParsableTool(tool)) {\n if (!tool.$callback) {\n throw new OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n return tool;\n });\n const functionsByName = {};\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n const tools = 'tools' in params ?\n inputTools.map((t) => t.type === 'function' ?\n {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n return;\n }\n for (const tool_call of message.tool_calls) {\n if (tool_call.type !== 'function')\n continue;\n const tool_call_id = tool_call.id;\n const { name, arguments: args } = tool_call.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n let parsed;\n try {\n parsed = isRunnableFunctionWithParse(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n const content = error instanceof Error ? error.message : String(error);\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, tool_call_id, content });\n if (singleFunctionToCall) {\n return;\n }\n }\n }\n return;\n }\n}\n_AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if (isAssistantMessage(message)) {\n // TODO: support audio here\n const ret = {\n ...message,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n return ret;\n }\n }\n throw new OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCall = function _AbstractChatCompletionRunner_getFinalFunctionToolCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isAssistantMessage(message) && message?.tool_calls?.length) {\n return message.tool_calls.at(-1)?.function;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult = function _AbstractChatCompletionRunner_getFinalFunctionToolCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isToolMessage(message) &&\n message.content != null &&\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n return (typeof rawContent === 'string' ? rawContent\n : rawContent === undefined ? 'undefined'\n : JSON.stringify(rawContent));\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.mjs.map","import { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nimport { isAssistantMessage } from \"./chatCompletionUtils.mjs\";\nexport class ChatCompletionRunner extends AbstractChatCompletionRunner {\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n _addMessage(message, emit = true) {\n super._addMessage(message, emit);\n if (isAssistantMessage(message) && message.content) {\n this._emit('content', message.content);\n }\n }\n}\n//# sourceMappingURL=ChatCompletionRunner.mjs.map","const STR = 0b000000001;\nconst NUM = 0b000000010;\nconst ARR = 0b000000100;\nconst OBJ = 0b000001000;\nconst NULL = 0b000010000;\nconst BOOL = 0b000100000;\nconst NAN = 0b001000000;\nconst INFINITY = 0b010000000;\nconst MINUS_INFINITY = 0b100000000;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\nclass PartialJSON extends Error {\n}\nclass MalformedJSON extends Error {\n}\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length)\n markPartialJSON('Unexpected end of input');\n if (jsonString[index] === '\"')\n return parseStr();\n if (jsonString[index] === '{')\n return parseObj();\n if (jsonString[index] === '[')\n return parseArr();\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n 1 < length - index &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) == '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch (e) {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow)\n return obj;\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',')\n index++; // skip comma\n }\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch (e) {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if ('.' === jsonString[jsonString.length - 1])\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch (e) { }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-')\n index++;\n while (jsonString[index] && !',]}'.includes(jsonString[index]))\n index++;\n if (index == length && !(Allow.NUM & allow))\n markPartialJSON('Unterminated number literal');\n try {\n return JSON.parse(jsonString.substring(start, index));\n }\n catch (e) {\n if (jsonString.substring(start, index) === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexport { partialParse, PartialJSON, MalformedJSON };\n//# sourceMappingURL=parser.mjs.map","var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_endRequest, _ChatCompletionStream_getAutoParseableResponseFormat, _ChatCompletionStream_accumulateChatCompletion;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError, APIUserAbortError, LengthFinishReasonError, ContentFilterFinishReasonError, } from \"../error.mjs\";\nimport { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { hasAutoParseableInput, isAutoParsableResponseFormat, isAutoParsableTool, maybeParseChatCompletion, shouldParseToolCall, } from \"../lib/parser.mjs\";\nimport { partialParse } from \"../_vendor/partial-json-parser/parser.mjs\";\nexport class ChatCompletionStream extends AbstractChatCompletionRunner {\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n }\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createChatCompletion(client, params, options) {\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));\n return runner;\n }\n async _createChatCompletion(client, params, options) {\n super._createChatCompletion;\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const stream = await client.chat.completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const chunk of stream) {\n if (chatId && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n chatId = chunk.id;\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended)\n return;\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const choiceSnapshot = completion.choices[choice.index];\n if (choice.delta.content != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.content) {\n this._emit('content', choice.delta.content, choiceSnapshot.message.content);\n this._emit('content.delta', {\n delta: choice.delta.content,\n snapshot: choiceSnapshot.message.content,\n parsed: choiceSnapshot.message.parsed,\n });\n }\n if (choice.delta.refusal != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.refusal) {\n this._emit('refusal.delta', {\n delta: choice.delta.refusal,\n snapshot: choiceSnapshot.message.refusal,\n });\n }\n if (choice.logprobs?.content != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of choice.delta.tool_calls ?? []) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of choice.delta.tool_calls ?? []) {\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot?.type === 'function') {\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function?.name,\n index: toolCallDelta.index,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.function?.arguments ?? '',\n });\n }\n else {\n assertNever(toolCallSnapshot?.type);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => tool.type === 'function' && tool.function.name === toolCallSnapshot.function.name);\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCallSnapshot.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCallSnapshot.function.arguments)\n : null,\n });\n }\n else {\n assertNever(toolCallSnapshot.type);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.message.content && !state.content_done) {\n state.content_done = true;\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this);\n this._emit('content.done', {\n content: choiceSnapshot.message.content,\n parsed: responseFormat ? responseFormat.$parseRaw(choiceSnapshot.message.content) : null,\n });\n }\n if (choiceSnapshot.message.refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal: choiceSnapshot.message.refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"));\n }, _ChatCompletionStream_getAutoParseableResponseFormat = function _ChatCompletionStream_getAutoParseableResponseFormat() {\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format;\n if (isAutoParsableResponseFormat(responseFormat)) {\n return responseFormat;\n }\n return null;\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {\n var _a, _b, _c, _d;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, ...rest } = chunk;\n if (!snapshot) {\n snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {\n ...rest,\n choices: [],\n }, \"f\");\n }\n else {\n Object.assign(snapshot, rest);\n }\n for (const { delta, finish_reason, index, logprobs = null, ...other } of chunk.choices) {\n let choice = snapshot.choices[index];\n if (!choice) {\n choice = snapshot.choices[index] = { finish_reason, index, message: {}, logprobs, ...other };\n }\n if (logprobs) {\n if (!choice.logprobs) {\n choice.logprobs = Object.assign({}, logprobs);\n }\n else {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n Object.assign(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"))) {\n if (finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n }\n }\n Object.assign(choice, other);\n if (!delta)\n continue; // Shouldn't happen; just in case.\n const { content, refusal, function_call, role, tool_calls, ...rest } = delta;\n assertIsEmpty(rest);\n Object.assign(choice.message, rest);\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role)\n choice.message.role = role;\n if (function_call) {\n if (!choice.message.function_call) {\n choice.message.function_call = function_call;\n }\n else {\n if (function_call.name)\n choice.message.function_call.name = function_call.name;\n if (function_call.arguments) {\n (_c = choice.message.function_call).arguments ?? (_c.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n }\n if (content) {\n choice.message.content = (choice.message.content || '') + content;\n if (!choice.message.refusal && __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this)) {\n choice.message.parsed = partialParse(choice.message.content);\n }\n }\n if (tool_calls) {\n if (!choice.message.tool_calls)\n choice.message.tool_calls = [];\n for (const { index, id, type, function: fn, ...rest } of tool_calls) {\n const tool_call = ((_d = choice.message.tool_calls)[index] ?? (_d[index] = {}));\n Object.assign(tool_call, rest);\n if (id)\n tool_call.id = id;\n if (type)\n tool_call.type = type;\n if (fn)\n tool_call.function ?? (tool_call.function = { name: fn.name ?? '', arguments: '' });\n if (fn?.name)\n tool_call.function.name = fn.name;\n if (fn?.arguments) {\n tool_call.function.arguments += fn.arguments;\n if (shouldParseToolCall(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), tool_call)) {\n tool_call.function.parsed_arguments = partialParse(tool_call.function.arguments);\n }\n }\n }\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('chunk', (chunk) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(chunk);\n }\n else {\n pushQueue.push(chunk);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nfunction finalizeChatCompletion(snapshot, params) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: choices.map(({ message, finish_reason, index, logprobs, ...choiceRest }) => {\n if (!finish_reason) {\n throw new OpenAIError(`missing finish_reason for choice ${index}`);\n }\n const { content = null, function_call, tool_calls, ...messageRest } = message;\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason,\n logprobs,\n message: {\n ...messageRest,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: tool_calls.map((tool_call, i) => {\n const { function: fn, type, id, ...toolRest } = tool_call;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (id == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].id\\n${str(snapshot)}`);\n }\n if (type == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type\\n${str(snapshot)}`);\n }\n if (name == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\\n${str(snapshot)}`);\n }\n if (args == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\\n${str(snapshot)}`);\n }\n return { ...toolRest, id, type, function: { ...fnRest, name, arguments: args } };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, content, role, refusal: message.refusal ?? null },\n finish_reason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return maybeParseChatCompletion(completion, params);\n}\nfunction str(x) {\n return JSON.stringify(x);\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n return;\n}\nfunction assertNever(_x) { }\n//# sourceMappingURL=ChatCompletionStream.mjs.map","import { ChatCompletionStream } from \"./ChatCompletionStream.mjs\";\nexport class ChatCompletionStreamingRunner extends ChatCompletionStream {\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n}\n//# sourceMappingURL=ChatCompletionStreamingRunner.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages } from \"./messages.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nimport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nimport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nimport { parseChatCompletion, validateInputTools } from \"../../../lib/parser.mjs\";\nexport class Completions extends APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * const chatCompletion =\n * await client.chat.completions.retrieve('completion_id');\n * ```\n */\n retrieve(completionID, options) {\n return this._client.get(path `/chat/completions/${completionID}`, options);\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n *\n * @example\n * ```ts\n * const chatCompletion = await client.chat.completions.update(\n * 'completion_id',\n * { metadata: { foo: 'string' } },\n * );\n * ```\n */\n update(completionID, body, options) {\n return this._client.post(path `/chat/completions/${completionID}`, { body, ...options });\n }\n /**\n * List stored Chat Completions. Only Chat Completions that have been stored with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletion of client.chat.completions.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chat/completions', (CursorPage), { query, ...options });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n *\n * @example\n * ```ts\n * const chatCompletionDeleted =\n * await client.chat.completions.delete('completion_id');\n * ```\n */\n delete(completionID, options) {\n return this._client.delete(path `/chat/completions/${completionID}`, options);\n }\n parse(body, options) {\n validateInputTools(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n headers: {\n ...options?.headers,\n 'X-Stainless-Helper-Method': 'chat.completions.parse',\n },\n })\n ._thenUnwrap((completion) => parseChatCompletion(completion, body));\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nexport { ParsingToolFunction, } from \"../../../lib/RunnableFunction.mjs\";\nexport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nexport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nCompletions.Messages = Messages;\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CompletionsAPI from \"./completions/completions.mjs\";\nimport { Completions, } from \"./completions/completions.mjs\";\nexport class Chat extends APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nChat.Completions = Completions;\n//# sourceMappingURL=chat.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = headers;\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nexport class Speech extends APIResource {\n /**\n * Generates audio from the input text.\n *\n * @example\n * ```ts\n * const speech = await client.audio.speech.create({\n * input: 'input',\n * model: 'string',\n * voice: 'ash',\n * });\n *\n * const content = await speech.blob();\n * console.log(content);\n * ```\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=speech.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Transcriptions extends APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', multipartFormRequestOptions({\n body,\n ...options,\n stream: body.stream ?? false,\n __metadata: { model: body.model },\n }, this._client));\n }\n}\n//# sourceMappingURL=transcriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Translations extends APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }, this._client));\n }\n}\n//# sourceMappingURL=translations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as SpeechAPI from \"./speech.mjs\";\nimport { Speech } from \"./speech.mjs\";\nimport * as TranscriptionsAPI from \"./transcriptions.mjs\";\nimport { Transcriptions, } from \"./transcriptions.mjs\";\nimport * as TranslationsAPI from \"./translations.mjs\";\nimport { Translations, } from \"./translations.mjs\";\nexport class Audio extends APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nAudio.Transcriptions = Transcriptions;\nAudio.Translations = Translations;\nAudio.Speech = Speech;\n//# sourceMappingURL=audio.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Batches extends APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchID, options) {\n return this._client.get(path `/batches/${batchID}`, options);\n }\n /**\n * List your organization's batches.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/batches', (CursorPage), { query, ...options });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchID, options) {\n return this._client.post(path `/batches/${batchID}/cancel`, options);\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Assistants extends APIResource {\n /**\n * Create an assistant with a model and instructions.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.create({\n * model: 'gpt-4o',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.retrieve(\n * 'assistant_id',\n * );\n * ```\n */\n retrieve(assistantID, options) {\n return this._client.get(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.update(\n * 'assistant_id',\n * );\n * ```\n */\n update(assistantID, body, options) {\n return this._client.post(path `/assistants/${assistantID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of assistants.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const assistant of client.beta.assistants.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/assistants', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete an assistant.\n *\n * @example\n * ```ts\n * const assistantDeleted =\n * await client.beta.assistants.delete('assistant_id');\n * ```\n */\n delete(assistantID, options) {\n return this._client.delete(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=assistants.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const session =\n * await client.beta.realtime.sessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class TranscriptionSessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API specifically for realtime transcriptions. Can be configured with\n * the same session parameters as the `transcription_session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const transcriptionSession =\n * await client.beta.realtime.transcriptionSessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/transcription_sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=transcription-sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions, } from \"./sessions.mjs\";\nimport * as TranscriptionSessionsAPI from \"./transcription-sessions.mjs\";\nimport { TranscriptionSessions, } from \"./transcription-sessions.mjs\";\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.transcriptionSessions = new TranscriptionSessionsAPI.TranscriptionSessions(this._client);\n }\n}\nRealtime.Sessions = Sessions;\nRealtime.TranscriptionSessions = TranscriptionSessions;\n//# sourceMappingURL=realtime.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Messages extends APIResource {\n /**\n * Create a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}/messages`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieve a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(messageID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(messageID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/messages/${messageID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of messages for a given thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/messages`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Deletes a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(messageID, params, options) {\n const { thread_id } = params;\n return this._client.delete(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Steps extends APIResource {\n /**\n * Retrieves a run step.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(stepID, params, options) {\n const { thread_id, run_id, ...query } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${run_id}/steps/${stepID}`, {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of run steps belonging to a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(runID, params, options) {\n const { thread_id, ...query } = params;\n return this._client.getAPIList(path `/threads/${thread_id}/runs/${runID}/steps`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=steps.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\nimport { encodeUTF8 } from \"./bytes.mjs\";\nexport const toBase64 = (data) => {\n if (!data)\n return '';\n if (typeof globalThis.Buffer !== 'undefined') {\n return globalThis.Buffer.from(data).toString('base64');\n }\n if (typeof data === 'string') {\n data = encodeUTF8(data);\n }\n if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, data));\n }\n throw new OpenAIError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport const fromBase64 = (str) => {\n if (typeof globalThis.Buffer !== 'undefined') {\n const buf = globalThis.Buffer.from(str, 'base64');\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n if (typeof atob !== 'undefined') {\n const bstr = atob(str);\n const buf = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n buf[i] = bstr.charCodeAt(i);\n }\n return buf;\n }\n throw new OpenAIError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n/**\n * Converts a Base64 encoded string to a Float32Array.\n * @param base64Str - The Base64 encoded string.\n * @returns An Array of numbers interpreted as Float32 values.\n */\nexport const toFloat32Array = (base64Str) => {\n if (typeof Buffer !== 'undefined') {\n // for Node.js environment\n const buf = Buffer.from(base64Str, 'base64');\n return Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.length / Float32Array.BYTES_PER_ELEMENT));\n }\n else {\n // for legacy web platform APIs\n const binaryStr = atob(base64Str);\n const len = binaryStr.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryStr.charCodeAt(i);\n }\n return Array.from(new Float32Array(bytes.buffer));\n }\n};\n//# sourceMappingURL=base64.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","var _AssistantStream_instances, _a, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isObj } from \"../internal/utils.mjs\";\nexport class AssistantStream extends EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Track all events in a single list for reference\n _AssistantStream_events.set(this, []);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, {});\n _AssistantStream_messageSnapshots.set(this, {});\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n //Catch all for passing along all events\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n static fromReadableStream(stream) {\n const runner = new _a();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n static createToolAssistantStream(runId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runToolAssistantStream(runId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, runId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static createThreadAssistantStream(params, thread, options) {\n const runner = new _a();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n currentEvent() {\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n currentRun() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n currentMessageSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n currentRunStepSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run was not received.');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static accumulateDelta(acc, delta) {\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (!acc.hasOwnProperty(key)) {\n acc[key] = deltaValue;\n continue;\n }\n let accValue = acc[key];\n if (accValue === null || accValue === undefined) {\n acc[key] = deltaValue;\n continue;\n }\n // We don't accumulate these special properties\n if (key === 'index' || key === 'type') {\n acc[key] = deltaValue;\n continue;\n }\n // Type-specific accumulation logic\n if (typeof accValue === 'string' && typeof deltaValue === 'string') {\n accValue += deltaValue;\n }\n else if (typeof accValue === 'number' && typeof deltaValue === 'number') {\n accValue += deltaValue;\n }\n else if (isObj(accValue) && isObj(deltaValue)) {\n accValue = this.accumulateDelta(accValue, deltaValue);\n }\n else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {\n if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {\n accValue.push(...deltaValue); // Use spread syntax for efficient addition\n continue;\n }\n for (const deltaEntry of deltaValue) {\n if (!isObj(deltaEntry)) {\n throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);\n }\n const index = deltaEntry['index'];\n if (index == null) {\n console.error(deltaEntry);\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new Error(`Expected array delta entry \\`index\\` property to be a number but got ${index}`);\n }\n const accEntry = accValue[index];\n if (accEntry == null) {\n accValue.push(deltaEntry);\n }\n else {\n accValue[index] = this.accumulateDelta(accEntry, deltaEntry);\n }\n }\n continue;\n }\n else {\n throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);\n }\n acc[key] = accValue;\n }\n return acc;\n }\n _addRun(run) {\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, runId, params, options);\n }\n}\n_a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, event);\n switch (event.event) {\n case 'thread.created':\n //No action on this event.\n break;\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, event);\n break;\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, event);\n break;\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, event);\n break;\n case 'error':\n //This is included for completeness, but errors are processed in the SSE event processing so this should not occur\n throw new Error('Encountered an error event in event processing - errors should be processed earlier');\n default:\n assertNever(event);\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run has not been received');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[accumulatedMessage.id] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type == 'text') {\n this._emit('textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created':\n this._emit('messageCreated', event.data);\n break;\n case 'thread.message.in_progress':\n break;\n case 'thread.message.delta':\n this._emit('messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type == 'text' && content.text) {\n let textDelta = content.text;\n let snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type == 'text') {\n this._emit('textDelta', textDelta, snapshot.text);\n }\n else {\n throw Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text':\n this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'image_file':\n this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file':\n this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'text':\n this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n this._emit('messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created':\n this._emit('runStepCreated', event.data);\n break;\n case 'thread.run.step.delta':\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type == 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type == 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"))\n this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n this._emit('runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type == 'tool_calls') {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n }\n this._emit('runStepDone', event.data, accumulatedRunStep);\n break;\n case 'thread.run.step.in_progress':\n break;\n }\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_events, \"f\").push(event);\n this._emit('event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {\n switch (event.event) {\n case 'thread.run.step.created':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n return event.data;\n case 'thread.run.step.delta':\n let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n if (!snapshot) {\n throw Error('Received a RunStepDelta before creation of a snapshot');\n }\n let data = event.data;\n if (data.delta) {\n const accumulated = _a.accumulateDelta(snapshot, data.delta);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = accumulated;\n }\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n break;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id])\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n let newContent = [];\n switch (event.event) {\n case 'thread.message.created':\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n case 'thread.message.delta':\n if (!snapshot) {\n throw Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n let data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n for (const contentElement of data.delta.content) {\n if (contentElement.index in snapshot.content) {\n let currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);\n }\n else {\n snapshot.content[contentElement.index] = contentElement;\n // This is a new element\n newContent.push(contentElement);\n }\n }\n }\n return [snapshot, newContent];\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //No changes on other thread events\n if (snapshot) {\n return [snapshot, newContent];\n }\n else {\n throw Error('Received thread message event with no existing snapshot');\n }\n }\n throw Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {\n return _a.accumulateDelta(currentContent, contentElement);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created':\n break;\n case 'thread.run.queued':\n break;\n case 'thread.run.in_progress':\n break;\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n case 'thread.run.incomplete':\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n break;\n case 'thread.run.cancelling':\n break;\n }\n};\nfunction assertNever(_x) { }\n//# sourceMappingURL=AssistantStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as StepsAPI from \"./steps.mjs\";\nimport { Steps, } from \"./steps.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../../lib/AssistantStream.mjs\";\nimport { sleep } from \"../../../../internal/utils/sleep.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/threads/${threadID}/runs`, {\n query: { include },\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * Retrieves a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(runID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${runID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of runs belonging to a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/runs`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n cancel(runID, params, options) {\n const { thread_id } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(run.id, { thread_id: threadId }, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(runId, params, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: run, response } = await this.retrieve(runId, params, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }).withResponse();\n switch (run.status) {\n //If we are in any sort of intermediate state we poll\n case 'queued':\n case 'in_progress':\n case 'cancelling':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n //We return the run in any terminal state.\n case 'requires_action':\n case 'incomplete':\n case 'cancelled':\n case 'completed':\n case 'failed':\n case 'expired':\n return run;\n }\n }\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/submit_tool_outputs`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(runId, params, options) {\n const run = await this.submitToolOutputs(runId, params, options);\n return await this.poll(run.id, params, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(runId, params, options) {\n return AssistantStream.createToolAssistantStream(runId, this._client.beta.threads.runs, params, options);\n }\n}\nRuns.Steps = Steps;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages, } from \"./messages.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../lib/AssistantStream.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Threads extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n /**\n * Create a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(body = {}, options) {\n return this._client.post('/threads', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(threadID, options) {\n return this._client.get(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(threadID, options) {\n return this._client.delete(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.id, { thread_id: run.thread_id }, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nThreads.Runs = Runs;\nThreads.Messages = Messages;\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as AssistantsAPI from \"./assistants.mjs\";\nimport { Assistants, } from \"./assistants.mjs\";\nimport * as RealtimeAPI from \"./realtime/realtime.mjs\";\nimport { Realtime, } from \"./realtime/realtime.mjs\";\nimport * as ThreadsAPI from \"./threads/threads.mjs\";\nimport { Threads, } from \"./threads/threads.mjs\";\nexport class Beta extends APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nBeta.Realtime = Realtime;\nBeta.Assistants = Assistants;\nBeta.Threads = Threads;\n//# sourceMappingURL=beta.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Completions extends APIResource {\n create(body, options) {\n return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Retrieve Container File Content\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n }\n /**\n * Create a Container File\n *\n * You can send either a multipart/form-data request with the raw file content, or\n * a JSON request with a file ID.\n */\n create(containerID, body, options) {\n return this._client.post(path `/containers/${containerID}/files`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve Container File\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}`, options);\n }\n /**\n * List Container files\n */\n list(containerID, query = {}, options) {\n return this._client.getAPIList(path `/containers/${containerID}/files`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete Container File\n */\n delete(fileID, params, options) {\n const { container_id } = params;\n return this._client.delete(path `/containers/${container_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nFiles.Content = Content;\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FilesAPI from \"./files/files.mjs\";\nimport { Files, } from \"./files/files.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Containers extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n }\n /**\n * Create Container\n */\n create(body, options) {\n return this._client.post('/containers', { body, ...options });\n }\n /**\n * Retrieve Container\n */\n retrieve(containerID, options) {\n return this._client.get(path `/containers/${containerID}`, options);\n }\n /**\n * List Containers\n */\n list(query = {}, options) {\n return this._client.getAPIList('/containers', (CursorPage), { query, ...options });\n }\n /**\n * Delete Container\n */\n delete(containerID, options) {\n return this._client.delete(path `/containers/${containerID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nContainers.Files = Files;\n//# sourceMappingURL=containers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { loggerFor, toFloat32Array } from \"../internal/utils.mjs\";\nexport class Embeddings extends APIResource {\n /**\n * Creates an embedding vector representing the input text.\n *\n * @example\n * ```ts\n * const createEmbeddingResponse =\n * await client.embeddings.create({\n * input: 'The quick brown fox jumped over the lazy dog',\n * model: 'text-embedding-3-small',\n * });\n * ```\n */\n create(body, options) {\n const hasUserProvidedEncodingFormat = !!body.encoding_format;\n // No encoding_format specified, defaulting to base64 for performance reasons\n // See https://github.com/openai/openai-node/pull/1312\n let encoding_format = hasUserProvidedEncodingFormat ? body.encoding_format : 'base64';\n if (hasUserProvidedEncodingFormat) {\n loggerFor(this._client).debug('embeddings/user defined encoding_format:', body.encoding_format);\n }\n const response = this._client.post('/embeddings', {\n body: {\n ...body,\n encoding_format: encoding_format,\n },\n ...options,\n });\n // if the user specified an encoding_format, return the response as-is\n if (hasUserProvidedEncodingFormat) {\n return response;\n }\n // in this stage, we are sure the user did not specify an encoding_format\n // and we defaulted to base64 for performance reasons\n // we are sure then that the response is base64 encoded, let's decode it\n // the returned result will be a float32 array since this is OpenAI API's default encoding\n loggerFor(this._client).debug('embeddings/decoding base64 embeddings from base64');\n return response._thenUnwrap((response) => {\n if (response && response.data) {\n response.data.forEach((embeddingBase64Obj) => {\n const embeddingBase64Str = embeddingBase64Obj.embedding;\n embeddingBase64Obj.embedding = toFloat32Array(embeddingBase64Str);\n });\n }\n return response;\n });\n }\n}\n//# sourceMappingURL=embeddings.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class OutputItems extends APIResource {\n /**\n * Get an evaluation run output item by ID.\n */\n retrieve(outputItemID, params, options) {\n const { eval_id, run_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${run_id}/output_items/${outputItemID}`, options);\n }\n /**\n * Get a list of output items for an evaluation run.\n */\n list(runID, params, options) {\n const { eval_id, ...query } = params;\n return this._client.getAPIList(path `/evals/${eval_id}/runs/${runID}/output_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=output-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as OutputItemsAPI from \"./output-items.mjs\";\nimport { OutputItems, } from \"./output-items.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.outputItems = new OutputItemsAPI.OutputItems(this._client);\n }\n /**\n * Kicks off a new run for a given evaluation, specifying the data source, and what\n * model configuration to use to test. The datasource will be validated against the\n * schema specified in the config of the evaluation.\n */\n create(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}/runs`, { body, ...options });\n }\n /**\n * Get an evaluation run by ID.\n */\n retrieve(runID, params, options) {\n const { eval_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Get a list of runs for an evaluation.\n */\n list(evalID, query = {}, options) {\n return this._client.getAPIList(path `/evals/${evalID}/runs`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete an eval run.\n */\n delete(runID, params, options) {\n const { eval_id } = params;\n return this._client.delete(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Cancel an ongoing evaluation run.\n */\n cancel(runID, params, options) {\n const { eval_id } = params;\n return this._client.post(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n}\nRuns.OutputItems = OutputItems;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Evals extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n }\n /**\n * Create the structure of an evaluation that can be used to test a model's\n * performance. An evaluation is a set of testing criteria and the config for a\n * data source, which dictates the schema of the data used in the evaluation. After\n * creating an evaluation, you can run it on different models and model parameters.\n * We support several types of graders and datasources. For more information, see\n * the [Evals guide](https://platform.openai.com/docs/guides/evals).\n */\n create(body, options) {\n return this._client.post('/evals', { body, ...options });\n }\n /**\n * Get an evaluation by ID.\n */\n retrieve(evalID, options) {\n return this._client.get(path `/evals/${evalID}`, options);\n }\n /**\n * Update certain properties of an evaluation.\n */\n update(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}`, { body, ...options });\n }\n /**\n * List evaluations for a project.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/evals', (CursorPage), { query, ...options });\n }\n /**\n * Delete an evaluation.\n */\n delete(evalID, options) {\n return this._client.delete(path `/evals/${evalID}`, options);\n }\n}\nEvals.Runs = Runs;\n//# sourceMappingURL=evals.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { sleep } from \"../internal/utils/sleep.mjs\";\nimport { APIConnectionTimeoutError } from \"../error.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and the size of all files uploaded by one organization can be up\n * to 100 GB.\n *\n * The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) for\n * details.\n *\n * The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input) or\n * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)\n * models.\n *\n * The Batch API only supports `.jsonl` files up to 200 MB in size. The input also\n * has a specific required\n * [format](https://platform.openai.com/docs/api-reference/batch/request-input).\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileID, options) {\n return this._client.get(path `/files/${fileID}`, options);\n }\n /**\n * Returns a list of files.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/files', (CursorPage), { query, ...options });\n }\n /**\n * Delete a file.\n */\n delete(fileID, options) {\n return this._client.delete(path `/files/${fileID}`, options);\n }\n /**\n * Returns the contents of the specified file.\n */\n content(fileID, options) {\n return this._client.get(path `/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);\n const start = Date.now();\n let file = await this.retrieve(id);\n while (!file.status || !TERMINAL_STATES.has(file.status)) {\n await sleep(pollInterval);\n file = await this.retrieve(id);\n if (Date.now() - start > maxWait) {\n throw new APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class Methods extends APIResource {\n}\n//# sourceMappingURL=methods.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Graders extends APIResource {\n /**\n * Run a grader.\n *\n * @example\n * ```ts\n * const response = await client.fineTuning.alpha.graders.run({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * model_sample: 'model_sample',\n * });\n * ```\n */\n run(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/run', { body, ...options });\n }\n /**\n * Validate a grader.\n *\n * @example\n * ```ts\n * const response =\n * await client.fineTuning.alpha.graders.validate({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/validate', { body, ...options });\n }\n}\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as GradersAPI from \"./graders.mjs\";\nimport { Graders, } from \"./graders.mjs\";\nexport class Alpha extends APIResource {\n constructor() {\n super(...arguments);\n this.graders = new GradersAPI.Graders(this._client);\n }\n}\nAlpha.Graders = Graders;\n//# sourceMappingURL=alpha.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Permissions extends APIResource {\n /**\n * **NOTE:** Calling this endpoint requires an [admin API key](../admin-api-keys).\n *\n * This enables organization owners to share fine-tuned models with other projects\n * in their organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const permissionCreateResponse of client.fineTuning.checkpoints.permissions.create(\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * { project_ids: ['string'] },\n * )) {\n * // ...\n * }\n * ```\n */\n create(fineTunedModelCheckpoint, body, options) {\n return this._client.getAPIList(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, (Page), { body, method: 'post', ...options });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to view all permissions for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTunedModelCheckpoint, query = {}, options) {\n return this._client.get(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, {\n query,\n ...options,\n });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to delete a permission for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.delete(\n * 'cp_zc4Q7MP6XxulcVzj4MZdwsAB',\n * {\n * fine_tuned_model_checkpoint:\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * },\n * );\n * ```\n */\n delete(permissionID, params, options) {\n const { fine_tuned_model_checkpoint } = params;\n return this._client.delete(path `/fine_tuning/checkpoints/${fine_tuned_model_checkpoint}/permissions/${permissionID}`, options);\n }\n}\n//# sourceMappingURL=permissions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as PermissionsAPI from \"./permissions.mjs\";\nimport { Permissions, } from \"./permissions.mjs\";\nexport class Checkpoints extends APIResource {\n constructor() {\n super(...arguments);\n this.permissions = new PermissionsAPI.Permissions(this._client);\n }\n}\nCheckpoints.Permissions = Permissions;\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Checkpoints extends APIResource {\n /**\n * List checkpoints for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobCheckpoint of client.fineTuning.jobs.checkpoints.list(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n list(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/checkpoints`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints.mjs\";\nimport { Checkpoints, } from \"./checkpoints.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Jobs extends APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.create({\n * model: 'gpt-4o-mini',\n * training_file: 'file-abc123',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTuningJobID, options) {\n return this._client.get(path `/fine_tuning/jobs/${fineTuningJobID}`, options);\n }\n /**\n * List your organization's fine-tuning jobs\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJob of client.fineTuning.jobs.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/fine_tuning/jobs', (CursorPage), { query, ...options });\n }\n /**\n * Immediately cancel a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.cancel(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n cancel(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/cancel`, options);\n }\n /**\n * Get status updates for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobEvent of client.fineTuning.jobs.listEvents(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n listEvents(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/events`, (CursorPage), { query, ...options });\n }\n /**\n * Pause a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.pause(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n pause(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/pause`, options);\n }\n /**\n * Resume a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.resume(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n resume(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/resume`, options);\n }\n}\nJobs.Checkpoints = Checkpoints;\n//# sourceMappingURL=jobs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as MethodsAPI from \"./methods.mjs\";\nimport { Methods, } from \"./methods.mjs\";\nimport * as AlphaAPI from \"./alpha/alpha.mjs\";\nimport { Alpha } from \"./alpha/alpha.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints/checkpoints.mjs\";\nimport { Checkpoints } from \"./checkpoints/checkpoints.mjs\";\nimport * as JobsAPI from \"./jobs/jobs.mjs\";\nimport { Jobs, } from \"./jobs/jobs.mjs\";\nexport class FineTuning extends APIResource {\n constructor() {\n super(...arguments);\n this.methods = new MethodsAPI.Methods(this._client);\n this.jobs = new JobsAPI.Jobs(this._client);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n this.alpha = new AlphaAPI.Alpha(this._client);\n }\n}\nFineTuning.Methods = Methods;\nFineTuning.Jobs = Jobs;\nFineTuning.Checkpoints = Checkpoints;\nFineTuning.Alpha = Alpha;\n//# sourceMappingURL=fine-tuning.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class GraderModels extends APIResource {\n}\n//# sourceMappingURL=grader-models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as GraderModelsAPI from \"./grader-models.mjs\";\nimport { GraderModels, } from \"./grader-models.mjs\";\nexport class Graders extends APIResource {\n constructor() {\n super(...arguments);\n this.graderModels = new GraderModelsAPI.GraderModels(this._client);\n }\n}\nGraders.GraderModels = GraderModels;\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nexport class Images extends APIResource {\n /**\n * Creates a variation of a given image. This endpoint only supports `dall-e-2`.\n *\n * @example\n * ```ts\n * const imagesResponse = await client.images.createVariation({\n * image: fs.createReadStream('otter.png'),\n * });\n * ```\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n edit(body, options) {\n return this._client.post('/images/edits', multipartFormRequestOptions({ body, ...options, stream: body.stream ?? false }, this._client));\n }\n generate(body, options) {\n return this._client.post('/images/generations', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { Page } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Models extends APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(path `/models/${model}`, options);\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', (Page), options);\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n delete(model, options) {\n return this._client.delete(path `/models/${model}`, options);\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Moderations extends APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the [moderation guide](https://platform.openai.com/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options });\n }\n}\n//# sourceMappingURL=moderations.mjs.map","import { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableResponseFormat } from \"../lib/parser.mjs\";\nexport function maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n else {\n return item;\n }\n }),\n };\n }\n return parseResponse(response, params);\n}\nexport function parseResponse(response, params) {\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: parseToolCall(params, item),\n };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: parseTextFormat(params, content.text),\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = Object.assign({}, response, { output });\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n return parsed;\n}\nfunction parseTextFormat(params, content) {\n if (params.text?.format?.type !== 'json_schema') {\n return null;\n }\n if ('$parseRaw' in params.text?.format) {\n const text_format = params.text?.format;\n return text_format.$parseRaw(content);\n }\n return JSON.parse(content);\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.text?.format)) {\n return true;\n }\n return false;\n}\nexport function makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nfunction getInputToolByName(input_tools, name) {\n return input_tools.find((tool) => tool.type === 'function' && tool.name === name);\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return {\n ...toolCall,\n ...toolCall,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.arguments)\n : inputTool?.strict ? JSON.parse(toolCall.arguments)\n : null,\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexport function addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\n//# sourceMappingURL=ResponsesParser.mjs.map","var _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest, _ResponseStream_accumulateResponse;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../../error.mjs\";\nimport { EventStream } from \"../EventStream.mjs\";\nimport { maybeParseResponse } from \"../ResponsesParser.mjs\";\nexport class ResponseStream extends EventStream {\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n static createResponse(client, params, options) {\n const runner = new ResponseStream(params);\n runner._run(() => runner._createOrRetrieveResponse(client, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createOrRetrieveResponse(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n let stream;\n let starting_after = null;\n if ('response_id' in params) {\n stream = await client.responses.retrieve(params.response_id, { stream: true }, { ...options, signal: this.controller.signal, stream: true });\n starting_after = params.starting_after ?? null;\n }\n else {\n stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n }\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event, starting_after);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event, starting_after) {\n if (this.ended)\n return;\n const maybeEmit = (name, event) => {\n if (starting_after == null || event.sequence_number > starting_after) {\n this._emit(name, event);\n }\n };\n const response = __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_accumulateResponse).call(this, event);\n maybeEmit('event', event);\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n maybeEmit('response.output_text.delta', {\n ...event,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n maybeEmit('response.function_call_arguments.delta', {\n ...event,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default:\n maybeEmit(event.type, event);\n break;\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, _ResponseStream_accumulateResponse = function _ResponseStream_accumulateResponse(event) {\n let snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n if (event.type !== 'response.created') {\n throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);\n }\n snapshot = __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n return snapshot;\n }\n switch (event.type) {\n case 'response.output_item.added': {\n snapshot.output.push(event.item);\n break;\n }\n case 'response.content_part.added': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n output.content.push(event.part);\n }\n break;\n }\n case 'response.output_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n break;\n }\n case 'response.completed': {\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n break;\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((event) => (event ? { value: event, done: false } : { value: undefined, done: true }));\n }\n const event = pushQueue.shift();\n return { value: event, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * @returns a promise that resolves with the final Response, or rejects\n * if an error occurred or the stream ended prematurely without producing a REsponse.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return response;\n }\n}\nfunction finalizeResponse(snapshot, params) {\n return maybeParseResponse(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class InputItems extends APIResource {\n /**\n * Returns a list of input items for a given response.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const responseItem of client.responses.inputItems.list(\n * 'response_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(responseID, query = {}, options) {\n return this._client.getAPIList(path `/responses/${responseID}/input_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=input-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { parseResponse, addOutputText, } from \"../../lib/ResponsesParser.mjs\";\nimport { ResponseStream } from \"../../lib/responses/ResponseStream.mjs\";\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as InputItemsAPI from \"./input-items.mjs\";\nimport { InputItems } from \"./input-items.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Responses extends APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseID, query = {}, options) {\n return this._client.get(path `/responses/${responseID}`, {\n query,\n ...options,\n stream: query?.stream ?? false,\n })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n /**\n * Deletes a model response with the given ID.\n *\n * @example\n * ```ts\n * await client.responses.delete(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n delete(responseID, options) {\n return this._client.delete(path `/responses/${responseID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => parseResponse(response, body));\n }\n /**\n * Creates a model response stream\n */\n stream(body, options) {\n return ResponseStream.createResponse(this._client, body, options);\n }\n /**\n * Cancels a model response with the given ID. Only responses created with the\n * `background` parameter set to `true` can be cancelled.\n * [Learn more](https://platform.openai.com/docs/guides/background).\n *\n * @example\n * ```ts\n * const response = await client.responses.cancel(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n cancel(responseID, options) {\n return this._client.post(path `/responses/${responseID}/cancel`, options);\n }\n}\nResponses.InputItems = InputItems;\n//# sourceMappingURL=responses.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Parts extends APIResource {\n /**\n * Adds a\n * [Part](https://platform.openai.com/docs/api-reference/uploads/part-object) to an\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object.\n * A Part represents a chunk of bytes from the file you are trying to upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://platform.openai.com/docs/api-reference/uploads/complete).\n */\n create(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/parts`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=parts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PartsAPI from \"./parts.mjs\";\nimport { Parts } from \"./parts.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Uploads extends APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object\n * that you can add\n * [Parts](https://platform.openai.com/docs/api-reference/uploads/part-object) to.\n * Currently, an Upload can accept at most 8 GB in total and expires after an hour\n * after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://platform.openai.com/docs/assistants/tools/file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://platform.openai.com/docs/api-reference/files/create).\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n */\n cancel(uploadID, options) {\n return this._client.post(path `/uploads/${uploadID}/cancel`, options);\n }\n /**\n * Completes the\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed.\n */\n complete(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/complete`, { body, ...options });\n }\n}\nUploads.Parts = Parts;\n//# sourceMappingURL=uploads.mjs.map","/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n */\nexport const allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n for (const result of rejected) {\n console.error(result.reason);\n }\n throw new Error(`${rejected.length} promise(s) failed - see the above errors`);\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\n//# sourceMappingURL=Util.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { allSettledWithThrow } from \"../../lib/Util.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class FileBatches extends APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/file_batches`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/file_batches/${batchID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n /**\n * Returns a list of vector store files in a batch.\n */\n listFiles(batchID, params, options) {\n const { vector_store_id, ...query } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/files`, (CursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreID, batchID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: batch, response } = await this.retrieve(batchID, { vector_store_id: vectorStoreID }, {\n ...options,\n headers,\n }).withResponse();\n switch (batch.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'cancelled':\n case 'completed':\n return batch;\n }\n }\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n if (files == null || files.length == 0) {\n throw new Error(`No \\`files\\` provided to process. If you've already uploaded files you should use \\`.createAndPoll()\\` instead`);\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n // We cap the number of workers at the number of files (so we don't start any unnecessary workers)\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n const client = this._client;\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (let item of iterator) {\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Start workers to process results\n const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);\n // Wait for all processing to complete.\n await allSettledWithThrow(workers);\n return await this.createAndPoll(vectorStoreId, {\n file_ids: allFileIds,\n });\n }\n}\n//# sourceMappingURL=file-batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://platform.openai.com/docs/api-reference/files) to a\n * [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/files`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(fileID, params, options) {\n const { vector_store_id, ...body } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector store files.\n */\n list(vectorStoreID, query = {}, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/files`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://platform.openai.com/docs/api-reference/files/delete)\n * endpoint.\n */\n delete(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.delete(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreID, fileID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const fileResponse = await this.retrieve(fileID, {\n vector_store_id: vectorStoreID,\n }, { ...options, headers }).withResponse();\n const file = fileResponse.data;\n switch (file.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'completed':\n return file;\n }\n }\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/files/${fileID}/content`, (Page), { ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FileBatchesAPI from \"./file-batches.mjs\";\nimport { FileBatches, } from \"./file-batches.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files, } from \"./files.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class VectorStores extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreID, options) {\n return this._client.get(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector stores.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/vector_stores', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store.\n */\n delete(vectorStoreID, options) {\n return this._client.delete(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreID, body, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/search`, (Page), {\n body,\n method: 'post',\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\nVectorStores.Files = Files;\nVectorStores.FileBatches = FileBatches;\n//# sourceMappingURL=vector-stores.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _Webhooks_instances, _Webhooks_validateSecret, _Webhooks_getRequiredHeader;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { InvalidWebhookSignatureError } from \"../error.mjs\";\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n _Webhooks_instances.add(this);\n }\n /**\n * Validates that the given payload was sent by OpenAI and parses the payload.\n */\n async unwrap(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n await this.verifySignature(payload, headers, secret, tolerance);\n return JSON.parse(payload);\n }\n /**\n * Validates whether or not the webhook payload was sent by OpenAI.\n *\n * An error will be raised if the webhook payload was not sent by OpenAI.\n *\n * @param payload - The webhook payload\n * @param headers - The webhook headers\n * @param secret - The webhook secret (optional, will use client secret if not provided)\n * @param tolerance - Maximum age of the webhook in seconds (default: 300 = 5 minutes)\n */\n async verifySignature(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n if (typeof crypto === 'undefined' ||\n typeof crypto.subtle.importKey !== 'function' ||\n typeof crypto.subtle.verify !== 'function') {\n throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');\n }\n __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_validateSecret).call(this, secret);\n const headersObj = buildHeaders([headers]).values;\n const signatureHeader = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-signature');\n const timestamp = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-timestamp');\n const webhookId = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-id');\n // Validate timestamp to prevent replay attacks\n const timestampSeconds = parseInt(timestamp, 10);\n if (isNaN(timestampSeconds)) {\n throw new InvalidWebhookSignatureError('Invalid webhook timestamp format');\n }\n const nowSeconds = Math.floor(Date.now() / 1000);\n if (nowSeconds - timestampSeconds > tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too old');\n }\n if (timestampSeconds > nowSeconds + tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too new');\n }\n // Extract signatures from v1, format\n // The signature header can have multiple values, separated by spaces.\n // Each value is in the format v1,. We should accept if any match.\n const signatures = signatureHeader\n .split(' ')\n .map((part) => (part.startsWith('v1,') ? part.substring(3) : part));\n // Decode the secret if it starts with whsec_\n const decodedSecret = secret.startsWith('whsec_') ?\n Buffer.from(secret.replace('whsec_', ''), 'base64')\n : Buffer.from(secret, 'utf-8');\n // Create the signed payload: {webhook_id}.{timestamp}.{payload}\n const signedPayload = webhookId ? `${webhookId}.${timestamp}.${payload}` : `${timestamp}.${payload}`;\n // Import the secret as a cryptographic key for HMAC\n const key = await crypto.subtle.importKey('raw', decodedSecret, { name: 'HMAC', hash: 'SHA-256' }, false, ['verify']);\n // Check if any signature matches using timing-safe WebCrypto verify\n for (const signature of signatures) {\n try {\n const signatureBytes = Buffer.from(signature, 'base64');\n const isValid = await crypto.subtle.verify('HMAC', key, signatureBytes, new TextEncoder().encode(signedPayload));\n if (isValid) {\n return; // Valid signature found\n }\n }\n catch {\n // Invalid base64 or signature format, continue to next signature\n continue;\n }\n }\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n }\n}\n_Webhooks_instances = new WeakSet(), _Webhooks_validateSecret = function _Webhooks_validateSecret(secret) {\n if (typeof secret !== 'string' || secret.length === 0) {\n throw new Error(`The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function`);\n }\n}, _Webhooks_getRequiredHeader = function _Webhooks_getRequiredHeader(headers, name) {\n if (!headers) {\n throw new Error(`Headers are required`);\n }\n const value = headers.get(name);\n if (value === null || value === undefined) {\n throw new Error(`Missing required header: ${name}`);\n }\n return value;\n};\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _OpenAI_instances, _a, _OpenAI_encoder, _OpenAI_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport * as qs from \"./internal/qs/index.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Batches, } from \"./resources/batches.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { Embeddings, } from \"./resources/embeddings.mjs\";\nimport { Files, } from \"./resources/files.mjs\";\nimport { Images, } from \"./resources/images.mjs\";\nimport { Models } from \"./resources/models.mjs\";\nimport { Moderations, } from \"./resources/moderations.mjs\";\nimport { Webhooks } from \"./resources/webhooks.mjs\";\nimport { Audio } from \"./resources/audio/audio.mjs\";\nimport { Beta } from \"./resources/beta/beta.mjs\";\nimport { Chat } from \"./resources/chat/chat.mjs\";\nimport { Containers, } from \"./resources/containers/containers.mjs\";\nimport { Evals, } from \"./resources/evals/evals.mjs\";\nimport { FineTuning } from \"./resources/fine-tuning/fine-tuning.mjs\";\nimport { Graders } from \"./resources/graders/graders.mjs\";\nimport { Responses } from \"./resources/responses/responses.mjs\";\nimport { Uploads as UploadsAPIUploads, } from \"./resources/uploads/uploads.mjs\";\nimport { VectorStores, } from \"./resources/vector-stores/vector-stores.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\n/**\n * API Client for interfacing with the OpenAI API.\n */\nexport class OpenAI {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string | null | undefined} [opts.webhookSecret=process.env['OPENAI_WEBHOOK_SECRET'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = readEnv('OPENAI_BASE_URL'), apiKey = readEnv('OPENAI_API_KEY'), organization = readEnv('OPENAI_ORG_ID') ?? null, project = readEnv('OPENAI_PROJECT_ID') ?? null, webhookSecret = readEnv('OPENAI_WEBHOOK_SECRET') ?? null, ...opts } = {}) {\n _OpenAI_instances.add(this);\n _OpenAI_encoder.set(this, void 0);\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n this.embeddings = new API.Embeddings(this);\n this.files = new API.Files(this);\n this.images = new API.Images(this);\n this.audio = new API.Audio(this);\n this.moderations = new API.Moderations(this);\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.graders = new API.Graders(this);\n this.vectorStores = new API.VectorStores(this);\n this.webhooks = new API.Webhooks(this);\n this.beta = new API.Beta(this);\n this.batches = new API.Batches(this);\n this.uploads = new API.Uploads(this);\n this.responses = new API.Responses(this);\n this.evals = new API.Evals(this);\n this.containers = new API.Containers(this);\n if (apiKey === undefined) {\n throw new Errors.OpenAIError(\"The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).\");\n }\n const options = {\n apiKey,\n organization,\n project,\n webhookSecret,\n ...opts,\n baseURL: baseURL || `https://api.openai.com/v1`,\n };\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n this.baseURL = options.baseURL;\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('OPENAI_LOG'), \"process.env['OPENAI_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _OpenAI_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.apiKey = apiKey;\n this.organization = organization;\n this.project = project;\n this.webhookSecret = webhookSecret;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n organization: this.organization,\n project: this.project,\n webhookSecret: this.webhookSecret,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n return;\n }\n async authHeaders(opts) {\n return buildHeaders([{ Authorization: `Bearer ${this.apiKey}` }]);\n }\n stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _OpenAI_instances, \"m\", _OpenAI_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'x-request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n body instanceof Blob ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else {\n return __classPrivateFieldGet(this, _OpenAI_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = OpenAI, _OpenAI_encoder = new WeakMap(), _OpenAI_instances = new WeakSet(), _OpenAI_baseURLOverridden = function _OpenAI_baseURLOverridden() {\n return this.baseURL !== 'https://api.openai.com/v1';\n};\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.InvalidWebhookSignatureError = Errors.InvalidWebhookSignatureError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.Completions = Completions;\nOpenAI.Chat = Chat;\nOpenAI.Embeddings = Embeddings;\nOpenAI.Files = Files;\nOpenAI.Images = Images;\nOpenAI.Audio = Audio;\nOpenAI.Moderations = Moderations;\nOpenAI.Models = Models;\nOpenAI.FineTuning = FineTuning;\nOpenAI.Graders = Graders;\nOpenAI.VectorStores = VectorStores;\nOpenAI.Webhooks = Webhooks;\nOpenAI.Beta = Beta;\nOpenAI.Batches = Batches;\nOpenAI.Uploads = UploadsAPIUploads;\nOpenAI.Responses = Responses;\nOpenAI.Evals = Evals;\nOpenAI.Containers = Containers;\n//# sourceMappingURL=client.mjs.map","import * as core from '@actions/core'\nimport OpenAI from 'openai'\nimport {GitHubMCPClient, executeToolCalls, ToolCall} from './mcp.js'\n\ninterface ChatMessage {\n role: 'system' | 'user' | 'assistant' | 'tool'\n content: string | null\n tool_calls?: ToolCall[]\n tool_call_id?: string\n}\n\nexport interface InferenceRequest {\n messages: Array<{role: 'system' | 'user' | 'assistant' | 'tool'; content: string}>\n modelName: string\n maxTokens: number\n endpoint: string\n token: string\n temperature?: number\n topP?: number\n responseFormat?: {type: 'json_schema'; json_schema: unknown} // Processed response format for the API\n}\n\nexport interface InferenceResponse {\n content: string | null\n toolCalls?: Array<{\n id: string\n type: string\n function: {\n name: string\n arguments: string\n }\n }>\n}\n\n/**\n * Simple one-shot inference without tools\n */\nexport async function simpleInference(request: InferenceRequest): Promise {\n core.info('Running simple inference without tools')\n\n const client = new OpenAI({\n apiKey: request.token,\n baseURL: request.endpoint,\n })\n\n const chatCompletionRequest: OpenAI.Chat.Completions.ChatCompletionCreateParams = {\n messages: request.messages as OpenAI.Chat.Completions.ChatCompletionMessageParam[],\n max_tokens: request.maxTokens,\n model: request.modelName,\n temperature: request.temperature,\n top_p: request.topP,\n }\n\n // Add response format if specified\n if (request.responseFormat) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n chatCompletionRequest.response_format = request.responseFormat as any\n }\n\n const response = await chatCompletion(client, chatCompletionRequest, 'simpleInference')\n const modelResponse = response.choices[0]?.message?.content\n core.info(`Model response: ${modelResponse || 'No response content'}`)\n return modelResponse || null\n}\n\n/**\n * GitHub MCP-enabled inference with tool execution loop\n */\nexport async function mcpInference(\n request: InferenceRequest,\n githubMcpClient: GitHubMCPClient,\n): Promise {\n core.info('Running GitHub MCP inference with tools')\n\n const client = new OpenAI({\n apiKey: request.token,\n baseURL: request.endpoint,\n })\n\n // Start with the pre-processed messages\n const messages: ChatMessage[] = [...request.messages]\n\n let iterationCount = 0\n const maxIterations = 5 // Prevent infinite loops\n // We want to use response_format (e.g. JSON) on the last iteration only, so the model can output\n // the final result in the expected format without interfering with tool calls\n let finalMessage = false\n\n while (iterationCount < maxIterations) {\n iterationCount++\n core.info(`MCP inference iteration ${iterationCount}`)\n\n const chatCompletionRequest: OpenAI.Chat.Completions.ChatCompletionCreateParams = {\n messages: messages as OpenAI.Chat.Completions.ChatCompletionMessageParam[],\n max_tokens: request.maxTokens,\n model: request.modelName,\n temperature: request.temperature,\n top_p: request.topP,\n }\n\n // Add response format if specified (only on final iteration to avoid conflicts with tool calls)\n if (finalMessage && request.responseFormat) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n chatCompletionRequest.response_format = request.responseFormat as any\n } else {\n chatCompletionRequest.tools = githubMcpClient.tools as OpenAI.Chat.Completions.ChatCompletionTool[]\n }\n\n try {\n const response = await chatCompletion(client, chatCompletionRequest, `mcpInference iteration ${iterationCount}`)\n\n const assistantMessage = response.choices[0]?.message\n const modelResponse = assistantMessage?.content\n const toolCalls = assistantMessage?.tool_calls\n\n core.info(`Model response: ${modelResponse || 'No response content'}`)\n\n messages.push({\n role: 'assistant',\n content: modelResponse || '',\n ...(toolCalls && {tool_calls: toolCalls as ToolCall[]}),\n })\n\n if (!toolCalls || toolCalls.length === 0) {\n core.info('No tool calls requested, ending GitHub MCP inference loop')\n\n if (request.responseFormat && !finalMessage) {\n core.info('Making one more MCP loop with the requested response format...')\n messages.push({\n role: 'user',\n content: `Please provide your response in the exact ${request.responseFormat.type} format specified.`,\n })\n finalMessage = true\n continue\n } else {\n return modelResponse || null\n }\n }\n\n core.info(`Model requested ${toolCalls.length} tool calls`)\n const toolResults = await executeToolCalls(githubMcpClient.client, toolCalls as ToolCall[])\n messages.push(...toolResults)\n core.info('Tool results added, continuing conversation...')\n } catch (error) {\n core.error(`OpenAI API error: ${error}`)\n throw error\n }\n }\n\n core.warning(`GitHub MCP inference loop exceeded maximum iterations (${maxIterations})`)\n\n // Return the last assistant message content\n const lastAssistantMessage = messages\n .slice()\n .reverse()\n .find(msg => msg.role === 'assistant')\n\n return lastAssistantMessage?.content || null\n}\n\n/**\n * Wrapper around OpenAI chat.completions.create with defensive handling for cases where\n * the SDK returns a raw string (e.g., unexpected content-type or streaming body) instead of\n * a parsed object. Ensures an object with a 'choices' array is returned or throws a descriptive error.\n */\nasync function chatCompletion(\n client: OpenAI,\n params: OpenAI.Chat.Completions.ChatCompletionCreateParams,\n context: string,\n): Promise {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let response: any = await client.chat.completions.create(params)\n core.debug(`${context}: raw response typeof=${typeof response}`)\n\n if (typeof response === 'string') {\n // Attempt to parse if we unexpectedly received a string\n try {\n response = JSON.parse(response)\n } catch (e) {\n const preview = response.slice(0, 400)\n throw new Error(\n `${context}: Chat completion response was a string and not valid JSON (${(e as Error).message}). Preview: ${preview}`,\n )\n }\n }\n\n if (!response || typeof response !== 'object' || !('choices' in response)) {\n const preview = JSON.stringify(response)?.slice(0, 800)\n throw new Error(`${context}: Unexpected response shape (no choices). Preview: ${preview}`)\n }\n\n return response as OpenAI.Chat.Completions.ChatCompletion\n } catch (err) {\n // Re-throw after logging for upstream handling\n core.error(`${context}: chatCompletion failed: ${err}`)\n throw err\n }\n}\n","import * as core from '@actions/core'\nimport * as fs from 'fs'\nimport {PromptConfig} from './prompt.js'\nimport {InferenceRequest} from './inference.js'\n\n/**\n * Helper function to load content from a file or use fallback input\n * @param filePathInput - Input name for the file path\n * @param contentInput - Input name for the direct content\n * @param defaultValue - Default value to use if neither file nor content is provided\n * @returns The loaded content\n */\nexport function loadContentFromFileOrInput(filePathInput: string, contentInput: string, defaultValue?: string): string {\n const filePath = core.getInput(filePathInput)\n const contentString = core.getInput(contentInput)\n\n if (filePath !== undefined && filePath !== '') {\n if (!fs.existsSync(filePath)) {\n throw new Error(`File for ${filePathInput} was not found: ${filePath}`)\n }\n return fs.readFileSync(filePath, 'utf-8')\n } else if (contentString !== undefined && contentString !== '') {\n return contentString\n } else if (defaultValue !== undefined) {\n return defaultValue\n } else {\n throw new Error(`Neither ${filePathInput} nor ${contentInput} was set`)\n }\n}\n\n/**\n * Build messages array from either prompt config or legacy format\n */\nexport function buildMessages(\n promptConfig?: PromptConfig,\n systemPrompt?: string,\n prompt?: string,\n): Array<{role: 'system' | 'user' | 'assistant' | 'tool'; content: string}> {\n if (promptConfig?.messages && promptConfig.messages.length > 0) {\n // Use new message format\n return promptConfig.messages.map(msg => ({\n role: msg.role as 'system' | 'user' | 'assistant' | 'tool',\n content: msg.content,\n }))\n } else {\n // Use legacy format\n return [\n {\n role: 'system',\n content: systemPrompt || 'You are a helpful assistant',\n },\n {role: 'user', content: prompt || ''},\n ]\n }\n}\n\n/**\n * Build response format object for API from prompt config\n */\nexport function buildResponseFormat(\n promptConfig?: PromptConfig,\n): {type: 'json_schema'; json_schema: unknown} | undefined {\n if (promptConfig?.responseFormat === 'json_schema' && promptConfig.jsonSchema) {\n try {\n const schema = JSON.parse(promptConfig.jsonSchema)\n return {\n type: 'json_schema',\n json_schema: schema,\n }\n } catch (error) {\n throw new Error(`Invalid JSON schema: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n }\n return undefined\n}\n\n/**\n * Build complete InferenceRequest from prompt config and inputs\n */\nexport function buildInferenceRequest(\n promptConfig: PromptConfig | undefined,\n systemPrompt: string | undefined,\n prompt: string | undefined,\n modelName: string,\n temperature: number | undefined,\n topP: number | undefined,\n maxTokens: number,\n endpoint: string,\n token: string,\n): InferenceRequest {\n const messages = buildMessages(promptConfig, systemPrompt, prompt)\n const responseFormat = buildResponseFormat(promptConfig)\n\n return {\n messages,\n modelName,\n temperature,\n topP,\n maxTokens,\n endpoint,\n token,\n responseFormat,\n }\n}\n","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import * as core from '@actions/core'\nimport * as fs from 'fs'\nimport * as yaml from 'js-yaml'\n\nexport interface PromptMessage {\n role: 'system' | 'user' | 'assistant'\n content: string\n}\n\nexport interface ModelParameters {\n maxTokens?: number\n temperature?: number\n topP?: number\n}\n\nexport interface PromptConfig {\n messages: PromptMessage[]\n model?: string\n modelParameters?: ModelParameters\n responseFormat?: 'text' | 'json_schema'\n jsonSchema?: string\n}\n\nexport interface TemplateVariables {\n [key: string]: string\n}\n\n/**\n * Parse template variables from YAML input string\n */\nexport function parseTemplateVariables(input: string): TemplateVariables {\n if (!input.trim()) {\n return {}\n }\n\n try {\n const parsed = yaml.load(input) as TemplateVariables\n if (typeof parsed !== 'object' || parsed === null) {\n throw new Error('Template variables must be a YAML object')\n }\n return parsed\n } catch (error) {\n throw new Error(`Failed to parse template variables: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n}\n\n/**\n * Parse file-based template variables from YAML input string. The YAML should map\n * variable names to file paths. File contents are read and returned as variables.\n */\nexport function parseFileTemplateVariables(fileInput: string): TemplateVariables {\n if (!fileInput.trim()) {\n return {}\n }\n\n try {\n const parsed = yaml.load(fileInput) as Record\n if (typeof parsed !== 'object' || parsed === null) {\n throw new Error('File template variables must be a YAML object')\n }\n\n const result: TemplateVariables = {}\n for (const [key, value] of Object.entries(parsed)) {\n if (typeof value !== 'string') {\n throw new Error(`File template variable '${key}' must be a string file path`)\n }\n const filePath = value\n if (!fs.existsSync(filePath)) {\n throw new Error(`File for template variable '${key}' was not found: ${filePath}`)\n }\n try {\n result[key] = fs.readFileSync(filePath, 'utf-8')\n } catch (err) {\n throw new Error(\n `Failed to read file for template variable '${key}' at path '${filePath}': ${err instanceof Error ? err.message : 'Unknown error'}`,\n )\n }\n }\n\n return result\n } catch (error) {\n throw new Error(\n `Failed to parse file template variables: ${error instanceof Error ? error.message : 'Unknown error'}`,\n )\n }\n}\n\n/**\n * Replace template variables in text using {{variable}} syntax\n */\nexport function replaceTemplateVariables(text: string, variables: TemplateVariables): string {\n return text.replace(/\\{\\{([\\w.-]+)\\}\\}/g, (match, variableName) => {\n if (variableName in variables) {\n return variables[variableName]\n }\n core.warning(`Template variable '${variableName}' not found in input variables`)\n return match // Return the original placeholder if variable not found\n })\n}\n\n/**\n * Load and parse a prompt YAML file with template variable substitution\n */\nexport function loadPromptFile(filePath: string, templateVariables: TemplateVariables = {}): PromptConfig {\n if (!fs.existsSync(filePath)) {\n throw new Error(`Prompt file not found: ${filePath}`)\n }\n\n const fileContent = fs.readFileSync(filePath, 'utf-8')\n\n try {\n const config = yaml.load(fileContent) as PromptConfig\n\n if (!config.messages || !Array.isArray(config.messages)) {\n throw new Error('Prompt file must contain a \"messages\" array')\n }\n\n // Validate messages\n for (const message of config.messages) {\n if (!message.role || !message.content) {\n throw new Error('Each message must have \"role\" and \"content\" properties')\n }\n if (!['system', 'user', 'assistant'].includes(message.role)) {\n throw new Error(`Invalid message role: ${message.role}`)\n }\n }\n\n // Prepare messages by replacing template variables with actual content\n config.messages = config.messages.map(msg => {\n return {\n ...msg,\n content: replaceTemplateVariables(msg.content, templateVariables),\n }\n })\n\n return config\n } catch (error) {\n throw new Error(`Failed to parse prompt file: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n}\n\n/**\n * Check if a file is a prompt YAML file based on extension\n */\nexport function isPromptYamlFile(filePath: string): boolean {\n return filePath.endsWith('.prompt.yml') || filePath.endsWith('.prompt.yaml')\n}\n","import * as core from '@actions/core'\nimport * as fs from 'fs'\nimport * as tmp from 'tmp'\nimport {connectToGitHubMCP} from './mcp.js'\nimport {simpleInference, mcpInference} from './inference.js'\nimport {loadContentFromFileOrInput, buildInferenceRequest} from './helpers.js'\nimport {\n loadPromptFile,\n parseTemplateVariables,\n isPromptYamlFile,\n PromptConfig,\n parseFileTemplateVariables,\n} from './prompt.js'\n\n/**\n * The main function for the action.\n *\n * @returns Resolves when the action is complete.\n */\nexport async function run(): Promise {\n try {\n const promptFilePath = core.getInput('prompt-file')\n const inputVariables = core.getInput('input')\n const fileInputVariables = core.getInput('file_input')\n\n let promptConfig: PromptConfig | undefined = undefined\n let systemPrompt: string | undefined = undefined\n let prompt: string | undefined = undefined\n\n // Check if we're using a prompt YAML file\n if (promptFilePath && isPromptYamlFile(promptFilePath)) {\n core.info('Using prompt YAML file format')\n\n // Parse template variables from both string inputs and file-based inputs\n const stringVars = parseTemplateVariables(inputVariables)\n const fileVars = parseFileTemplateVariables(fileInputVariables)\n const templateVariables = {...stringVars, ...fileVars}\n\n // Load and process prompt file\n promptConfig = loadPromptFile(promptFilePath, templateVariables)\n } else {\n // Use legacy format\n core.info('Using legacy prompt format')\n\n prompt = loadContentFromFileOrInput('prompt-file', 'prompt')\n systemPrompt = loadContentFromFileOrInput('system-prompt-file', 'system-prompt', 'You are a helpful assistant')\n }\n\n // Get common parameters\n const modelName = promptConfig?.model || core.getInput('model')\n let maxTokens = promptConfig?.modelParameters?.maxTokens ?? core.getInput('max-tokens')\n\n if (typeof maxTokens === 'string') {\n maxTokens = parseInt(maxTokens, 10)\n }\n\n const token = process.env['GITHUB_TOKEN'] || core.getInput('token')\n if (token === undefined) {\n throw new Error('GITHUB_TOKEN is not set')\n }\n\n // Get GitHub MCP token (use dedicated token if provided, otherwise fall back to main token)\n const githubMcpToken = core.getInput('github-mcp-token') || token\n const githubMcpToolsets = core.getInput('github-mcp-toolsets')\n\n const endpoint = core.getInput('endpoint')\n\n // Build the inference request with pre-processed messages and response format\n const inferenceRequest = buildInferenceRequest(\n promptConfig,\n systemPrompt,\n prompt,\n modelName,\n promptConfig?.modelParameters?.temperature,\n promptConfig?.modelParameters?.topP,\n maxTokens,\n endpoint,\n token,\n )\n\n const enableMcp = core.getBooleanInput('enable-github-mcp') || false\n\n let modelResponse: string | null = null\n\n if (enableMcp) {\n const mcpClient = await connectToGitHubMCP(githubMcpToken, githubMcpToolsets)\n\n if (mcpClient) {\n modelResponse = await mcpInference(inferenceRequest, mcpClient)\n } else {\n core.warning('MCP connection failed, falling back to simple inference')\n modelResponse = await simpleInference(inferenceRequest)\n }\n } else {\n modelResponse = await simpleInference(inferenceRequest)\n }\n\n core.setOutput('response', modelResponse || '')\n\n // Create a temporary file for the response that persists for downstream steps.\n // We use keep: true to prevent automatic cleanup - the file will be cleaned up\n // by the runner when the job completes.\n const responseFile = tmp.fileSync({\n prefix: 'modelResponse-',\n postfix: '.txt',\n keep: true,\n })\n\n core.setOutput('response-file', responseFile.name)\n\n if (modelResponse && modelResponse !== '') {\n fs.writeFileSync(responseFile.name, modelResponse, 'utf-8')\n }\n } catch (error) {\n if (error instanceof Error) {\n core.setFailed(error.message)\n } else {\n core.setFailed(`An unexpected error occurred: ${JSON.stringify(error, null, 2)}`)\n }\n // Force exit to prevent hanging on open connections\n process.exit(1)\n }\n\n // Force exit to prevent hanging on open connections\n process.exit(0)\n}\n","/**\n * The entrypoint for the action. This file simply imports and runs the action's\n * main logic.\n */\nimport {run} from './main.js'\n\n/* istanbul ignore next */\nrun()\n"],"names":["utils","this","require$$1","require$$0","require$$2","require$$3","require$$6","tunnel","symbols","errors","constants","require$$4","require$$5","require$$7","require$$9","require$$10","util","mainModule","global","require$$8","require$$11","require$$12","request","require$$13","require$$14","require$$15","require$$16","apiRequestModule","require$$17","require$$18","parse","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","auth","exec_1","exec","isObject","isPlainObject","extend","merge","required","initializer","util.jsonStringifyReplacer","formatError","core.$ZodAsyncError","util.finalizeIssue","core.config","util.captureStackTrace","errors.$ZodError","safeParse","errors.$ZodRealError","safeParseAsync","duration","_emoji","date","time","datetime","string","number","boolean","_null","core.$constructor","util.floatSafeRemainder","util.NUMBER_FORMAT_RANGES","regexes.integer","util.nullish","util.getLengthableOrigin","regexes.lowercase","regexes.uppercase","util.escapeRegex","util.aborted","regexes.string","checks.$ZodCheckStringFormat","regexes.guid","regexes.uuid","regexes.email","regexes.hostname","regexes.emoji","regexes.nanoid","regexes.cuid","regexes.cuid2","regexes.ulid","regexes.xid","regexes.ksuid","regexes.datetime","regexes.date","regexes.time","regexes.duration","regexes.ipv4","regexes.ipv6","regexes.cidrv4","regexes.cidrv6","regexes.base64","regexes.base64url","regexes.e164","regexes.number","checks.$ZodCheckNumberFormat","regexes.boolean","regexes.null","util.prefixIssues","util.cached","util.optionalKeys","util.defineLazy","util.esc","util.isObject","core.globalConfig","allowsEval","util.allowsEval","util.cleanRegex","util.isPlainObject","util.getEnumValues","util.propertyKeyTypes","checks.$ZodCheck","util.issue","util.normalizeParams","checks.$ZodCheckLessThan","checks.$ZodCheckGreaterThan","checks.$ZodCheckMultipleOf","checks.$ZodCheckMaxLength","checks.$ZodCheckMinLength","checks.$ZodCheckLengthEquals","checks.$ZodCheckRegex","checks.$ZodCheckLowerCase","checks.$ZodCheckUpperCase","checks.$ZodCheckIncludes","checks.$ZodCheckStartsWith","checks.$ZodCheckEndsWith","checks.$ZodCheckOverwrite","z4mini.safeParse","core.$ZodISODateTime","schemas.ZodStringFormat","core._isoDateTime","core.$ZodISODate","core._isoDate","core.$ZodISOTime","core._isoTime","core.$ZodISODuration","core._isoDuration","core.formatError","core.flattenError","core._parse","core._parseAsync","core._safeParse","core._safeParseAsync","core.$ZodType","core.clone","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","checks.overwrite","_default","core.globalRegistry","core.$ZodString","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","core._email","core._url","core._jwt","core._emoji","core._guid","core._uuid","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","core._cuid","core._cuid2","core._ulid","core._base64","core._base64url","core._xid","core._ksuid","core._ipv4","core._ipv6","core._cidrv4","core._cidrv6","core._e164","iso.datetime","iso.date","iso.time","iso.duration","core._string","core.$ZodStringFormat","core.$ZodEmail","core.$ZodGUID","core.$ZodUUID","core.$ZodURL","core.$ZodEmoji","core.$ZodNanoID","core.$ZodCUID","core.$ZodCUID2","core.$ZodULID","core.$ZodXID","core.$ZodKSUID","core.$ZodIPv4","core.$ZodIPv6","core.$ZodCIDRv4","core.$ZodCIDRv6","core.$ZodBase64","core.$ZodBase64URL","core.$ZodE164","core.$ZodJWT","core.$ZodNumber","checks.gt","checks.gte","checks.lt","checks.lte","int","checks.multipleOf","core._number","core.$ZodNumberFormat","core._int","core.$ZodBoolean","core._boolean","core.$ZodNull","core._null","core.$ZodAny","core._any","core.$ZodUnknown","core._unknown","core.$ZodNever","core._never","core.$ZodArray","core._array","core.$ZodObject","_enum","util.extend","util.merge","util.pick","util.omit","util.partial","util.required","util.assignProp","core.$ZodUnion","core.$ZodDiscriminatedUnion","core.$ZodIntersection","core.$ZodRecord","core.$ZodEnum","core.$ZodLiteral","core.$ZodTransform","issue","core.$ZodOptional","core.$ZodNullable","core.$ZodDefault","core.$ZodPrefault","core.$ZodNonOptional","core.$ZodCatch","core.$ZodPipe","core.$ZodReadonly","core.$ZodCustom","core.$ZodCheck","core._custom","core._refine","core._coercedNumber","schemas.ZodNumber","z.custom","z.union","z.string","z.number","z.looseObject","z.null","z.object","z\n .object","z.literal","z.unknown","z.array","z.enum","z.intersection","z.boolean","z.record","z.preprocess","z\n .looseObject","z\n .looseObject","z\n .object","z.optional","z.iso.datetime","z.discriminatedUnion","names_1","boolSchema","rules","applicability","dataType","defaults","code","keyword","subschema","jsonSchemaTraverseModule","resolve","validate","validation_error","ref_error","compile","fastUri","fastUriModule","uri_1","id","ref","core_1","limitNumber","multipleOf","ucs2length_1","limitLength","pattern","limitProperties","limitItems","equal_1","uniqueItems","_const","validation_1","additionalItems","items","prefixItems","items2020","contains","propertyNames","additionalProperties","properties","patternProperties","not","anyOf","oneOf","allOf","_if","thenElse","applicator","format","format_2","metadata","draft7","types","discriminator","names","uri","ucs2length","equal","validation","crypto","z\n .url","z.ZodIssueCode","z.NEVER","z.coerce.number","z.any","noop","core.info","core.warning","isAutoParsableTool","hasAutoParseableInput","parseToolCall","str","MessagesAPI.Messages","Completions","Messages","CompletionsAPI.Completions","TranscriptionsAPI.Transcriptions","TranslationsAPI.Translations","SpeechAPI.Speech","SessionsAPI.Sessions","TranscriptionSessionsAPI.TranscriptionSessions","_a","StepsAPI.Steps","Runs","RunsAPI.Runs","RealtimeAPI.Realtime","AssistantsAPI.Assistants","ThreadsAPI.Threads","ContentAPI.Content","Files","FilesAPI.Files","OutputItemsAPI.OutputItems","GradersAPI.Graders","Graders","PermissionsAPI.Permissions","Checkpoints","CheckpointsAPI.Checkpoints","MethodsAPI.Methods","JobsAPI.Jobs","AlphaAPI.Alpha","GraderModelsAPI.GraderModels","InputItemsAPI.InputItems","PartsAPI.Parts","FileBatchesAPI.FileBatches","API.Completions","API.Chat","API.Embeddings","API.Files","API.Images","API.Audio","API.Moderations","API.Models","API.FineTuning","API.Graders","API.VectorStores","API.Webhooks","API.Beta","API.Batches","API.Uploads","API.Responses","API.Evals","API.Containers","Errors.OpenAIError","Shims.getDefaultFetch","Opts.FallbackEncoder","qs.stringify","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Errors.InvalidWebhookSignatureError","Uploads.toFile","UploadsAPIUploads","core.error","core.debug","core.getInput","yaml.load","core.getBooleanInput","core.setOutput","tmp.fileSync","core.setFailed"],"mappings":"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EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,M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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,368]} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/@actions/core/lib/utils.js","../node_modules/@actions/core/lib/command.js","../node_modules/@actions/core/lib/file-command.js","../node_modules/@actions/http-client/lib/proxy.js","../node_modules/tunnel/lib/tunnel.js","../node_modules/tunnel/index.js","../node_modules/undici/lib/core/symbols.js","../node_modules/undici/lib/core/errors.js","../node_modules/undici/lib/core/constants.js","../node_modules/undici/lib/core/util.js","../node_modules/undici/lib/timers.js","../node_modules/@fastify/busboy/deps/streamsearch/sbmh.js","../node_modules/@fastify/busboy/deps/dicer/lib/PartStream.js","../node_modules/@fastify/busboy/lib/utils/getLimit.js","../node_modules/@fastify/busboy/deps/dicer/lib/HeaderParser.js","../node_modules/@fastify/busboy/deps/dicer/lib/Dicer.js","../node_modules/@fastify/busboy/lib/utils/decodeText.js","../node_modules/@fastify/busboy/lib/utils/parseParams.js","../node_modules/@fastify/busboy/lib/utils/basename.js","../node_modules/@fastify/busboy/lib/types/multipart.js","../node_modules/@fastify/busboy/lib/utils/Decoder.js","../node_modules/@fastify/busboy/lib/types/urlencoded.js","../node_modules/@fastify/busboy/lib/main.js","../node_modules/undici/lib/fetch/constants.js","../node_modules/undici/lib/fetch/global.js","../node_modules/undici/lib/fetch/util.js","../node_modules/undici/lib/fetch/symbols.js","../node_modules/undici/lib/fetch/webidl.js","../node_modules/undici/lib/fetch/dataURL.js","../node_modules/undici/lib/fetch/file.js","../node_modules/undici/lib/fetch/formdata.js","../node_modules/undici/lib/fetch/body.js","../node_modules/undici/lib/core/request.js","../node_modules/undici/lib/dispatcher.js","../node_modules/undici/lib/dispatcher-base.js","../node_modules/undici/lib/core/connect.js","../node_modules/undici/lib/llhttp/utils.js","../node_modules/undici/lib/llhttp/constants.js","../node_modules/undici/lib/handler/RedirectHandler.js","../node_modules/undici/lib/interceptor/redirectInterceptor.js","../node_modules/undici/lib/llhttp/llhttp-wasm.js","../node_modules/undici/lib/llhttp/llhttp_simd-wasm.js","../node_modules/undici/lib/client.js","../node_modules/undici/lib/node/fixed-queue.js","../node_modules/undici/lib/pool-stats.js","../node_modules/undici/lib/pool-base.js","../node_modules/undici/lib/pool.js","../node_modules/undici/lib/balanced-pool.js","../node_modules/undici/lib/compat/dispatcher-weakref.js","../node_modules/undici/lib/agent.js","../node_modules/undici/lib/api/readable.js","../node_modules/undici/lib/api/util.js","../node_modules/undici/lib/api/abort-signal.js","../node_modules/undici/lib/api/api-request.js","../node_modules/undici/lib/api/api-stream.js","../node_modules/undici/lib/api/api-pipeline.js","../node_modules/undici/lib/api/api-upgrade.js","../node_modules/undici/lib/api/api-connect.js","../node_modules/undici/lib/api/index.js","../node_modules/undici/lib/mock/mock-errors.js","../node_modules/undici/lib/mock/mock-symbols.js","../node_modules/undici/lib/mock/mock-utils.js","../node_modules/undici/lib/mock/mock-interceptor.js","../node_modules/undici/lib/mock/mock-client.js","../node_modules/undici/lib/mock/mock-pool.js","../node_modules/undici/lib/mock/pluralizer.js","../node_modules/undici/lib/mock/pending-interceptors-formatter.js","../node_modules/undici/lib/mock/mock-agent.js","../node_modules/undici/lib/proxy-agent.js","../node_modules/undici/lib/handler/RetryHandler.js","../node_modules/undici/lib/global.js","../node_modules/undici/lib/handler/DecoratorHandler.js","../node_modules/undici/lib/fetch/headers.js","../node_modules/undici/lib/fetch/response.js","../node_modules/undici/lib/fetch/request.js","../node_modules/undici/lib/fetch/index.js","../node_modules/undici/lib/fileapi/symbols.js","../node_modules/undici/lib/fileapi/progressevent.js","../node_modules/undici/lib/fileapi/encoding.js","../node_modules/undici/lib/fileapi/util.js","../node_modules/undici/lib/fileapi/filereader.js","../node_modules/undici/lib/cache/symbols.js","../node_modules/undici/lib/cache/util.js","../node_modules/undici/lib/cache/cache.js","../node_modules/undici/lib/cache/cachestorage.js","../node_modules/undici/lib/cookies/constants.js","../node_modules/undici/lib/cookies/util.js","../node_modules/undici/lib/cookies/parse.js","../node_modules/undici/lib/cookies/index.js","../node_modules/undici/lib/websocket/constants.js","../node_modules/undici/lib/websocket/symbols.js","../node_modules/undici/lib/websocket/events.js","../node_modules/undici/lib/websocket/util.js","../node_modules/undici/lib/websocket/connection.js","../node_modules/undici/lib/websocket/frame.js","../node_modules/undici/lib/websocket/receiver.js","../node_modules/undici/lib/websocket/websocket.js","../node_modules/undici/index.js","../node_modules/@actions/http-client/lib/index.js","../node_modules/@actions/http-client/lib/auth.js","../node_modules/@actions/core/lib/oidc-utils.js","../node_modules/@actions/core/lib/summary.js","../node_modules/@actions/core/lib/path-utils.js","../node_modules/@actions/io/lib/io-util.js","../node_modules/@actions/io/lib/io.js","../node_modules/@actions/exec/lib/toolrunner.js","../node_modules/@actions/exec/lib/exec.js","../node_modules/@actions/core/lib/platform.js","../node_modules/@actions/core/lib/core.js","../node_modules/tmp/lib/tmp.js","../node_modules/zod/v4/core/core.js","../node_modules/zod/v4/core/util.js","../node_modules/zod/v4/core/errors.js","../node_modules/zod/v4/core/parse.js","../node_modules/zod/v4/core/regexes.js","../node_modules/zod/v4/core/checks.js","../node_modules/zod/v4/core/doc.js","../node_modules/zod/v4/core/versions.js","../node_modules/zod/v4/core/schemas.js","../node_modules/zod/v4/core/registries.js","../node_modules/zod/v4/core/api.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js","../node_modules/zod/v4/classic/iso.js","../node_modules/zod/v4/classic/errors.js","../node_modules/zod/v4/classic/parse.js","../node_modules/zod/v4/classic/schemas.js","../node_modules/zod/v4/classic/compat.js","../node_modules/zod/v4/classic/coerce.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/types.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js","../node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/code.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/scope.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/codegen/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/util.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/names.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/errors.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/boolSchema.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/rules.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/applicability.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/dataType.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/defaults.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/code.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/keyword.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/subschema.js","../node_modules/fast-deep-equal/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/resolve.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/validate/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/validation_error.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/ref_error.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/compile/index.js","../node_modules/fast-uri/lib/utils.js","../node_modules/fast-uri/lib/schemes.js","../node_modules/fast-uri/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/uri.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/core.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/id.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/ref.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/core/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/ucs2length.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/pattern.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/required.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/runtime/equal.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/const.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/enum.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/validation/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/contains.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/properties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/not.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/if.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/applicator/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/format.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/format/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/metadata.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/draft7.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/types.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/vocabularies/discriminator/index.js","../node_modules/@modelcontextprotocol/sdk/node_modules/ajv/dist/ajv.js","../node_modules/ajv-formats/dist/formats.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/code.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/scope.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/codegen/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/util.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/names.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/errors.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/boolSchema.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/rules.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/applicability.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/dataType.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/defaults.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/code.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/keyword.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/subschema.js","../node_modules/ajv-formats/node_modules/json-schema-traverse/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/resolve.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/validate/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/validation_error.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/ref_error.js","../node_modules/ajv-formats/node_modules/ajv/dist/compile/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/uri.js","../node_modules/ajv-formats/node_modules/ajv/dist/core.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/id.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/ref.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/core/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/ucs2length.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitLength.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/pattern.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/required.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/limitItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/runtime/equal.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/const.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/enum.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/validation/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/items2020.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/contains.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/properties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/not.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/allOf.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/if.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/applicator/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/format.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/format/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/metadata.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/draft7.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/types.js","../node_modules/ajv-formats/node_modules/ajv/dist/vocabularies/discriminator/index.js","../node_modules/ajv-formats/node_modules/ajv/dist/ajv.js","../node_modules/ajv-formats/dist/limit.js","../node_modules/ajv-formats/dist/index.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js","../node_modules/pkce-challenge/dist/index.node.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth-utils.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js","../node_modules/eventsource-parser/dist/index.js","../node_modules/eventsource-parser/dist/stream.js","../node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js","../src/mcp.ts","../node_modules/openai/internal/tslib.mjs","../node_modules/openai/internal/utils/uuid.mjs","../node_modules/openai/internal/errors.mjs","../node_modules/openai/core/error.mjs","../node_modules/openai/internal/utils/values.mjs","../node_modules/openai/internal/utils/sleep.mjs","../node_modules/openai/version.mjs","../node_modules/openai/internal/detect-platform.mjs","../node_modules/openai/internal/shims.mjs","../node_modules/openai/internal/request-options.mjs","../node_modules/openai/internal/qs/formats.mjs","../node_modules/openai/internal/qs/utils.mjs","../node_modules/openai/internal/qs/stringify.mjs","../node_modules/openai/internal/utils/bytes.mjs","../node_modules/openai/internal/decoders/line.mjs","../node_modules/openai/internal/utils/log.mjs","../node_modules/openai/core/streaming.mjs","../node_modules/openai/internal/parse.mjs","../node_modules/openai/core/api-promise.mjs","../node_modules/openai/core/pagination.mjs","../node_modules/openai/internal/uploads.mjs","../node_modules/openai/internal/to-file.mjs","../node_modules/openai/core/resource.mjs","../node_modules/openai/internal/utils/path.mjs","../node_modules/openai/resources/chat/completions/messages.mjs","../node_modules/openai/lib/parser.mjs","../node_modules/openai/lib/chatCompletionUtils.mjs","../node_modules/openai/lib/EventStream.mjs","../node_modules/openai/lib/RunnableFunction.mjs","../node_modules/openai/lib/AbstractChatCompletionRunner.mjs","../node_modules/openai/lib/ChatCompletionRunner.mjs","../node_modules/openai/_vendor/partial-json-parser/parser.mjs","../node_modules/openai/lib/ChatCompletionStream.mjs","../node_modules/openai/lib/ChatCompletionStreamingRunner.mjs","../node_modules/openai/resources/chat/completions/completions.mjs","../node_modules/openai/resources/chat/chat.mjs","../node_modules/openai/internal/headers.mjs","../node_modules/openai/resources/audio/speech.mjs","../node_modules/openai/resources/audio/transcriptions.mjs","../node_modules/openai/resources/audio/translations.mjs","../node_modules/openai/resources/audio/audio.mjs","../node_modules/openai/resources/batches.mjs","../node_modules/openai/resources/beta/assistants.mjs","../node_modules/openai/resources/beta/realtime/sessions.mjs","../node_modules/openai/resources/beta/realtime/transcription-sessions.mjs","../node_modules/openai/resources/beta/realtime/realtime.mjs","../node_modules/openai/resources/beta/chatkit/sessions.mjs","../node_modules/openai/resources/beta/chatkit/threads.mjs","../node_modules/openai/resources/beta/chatkit/chatkit.mjs","../node_modules/openai/resources/beta/threads/messages.mjs","../node_modules/openai/resources/beta/threads/runs/steps.mjs","../node_modules/openai/internal/utils/base64.mjs","../node_modules/openai/internal/utils/env.mjs","../node_modules/openai/lib/AssistantStream.mjs","../node_modules/openai/resources/beta/threads/runs/runs.mjs","../node_modules/openai/resources/beta/threads/threads.mjs","../node_modules/openai/resources/beta/beta.mjs","../node_modules/openai/resources/completions.mjs","../node_modules/openai/resources/containers/files/content.mjs","../node_modules/openai/resources/containers/files/files.mjs","../node_modules/openai/resources/containers/containers.mjs","../node_modules/openai/resources/conversations/items.mjs","../node_modules/openai/resources/conversations/conversations.mjs","../node_modules/openai/resources/embeddings.mjs","../node_modules/openai/resources/evals/runs/output-items.mjs","../node_modules/openai/resources/evals/runs/runs.mjs","../node_modules/openai/resources/evals/evals.mjs","../node_modules/openai/resources/files.mjs","../node_modules/openai/resources/fine-tuning/methods.mjs","../node_modules/openai/resources/fine-tuning/alpha/graders.mjs","../node_modules/openai/resources/fine-tuning/alpha/alpha.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/jobs.mjs","../node_modules/openai/resources/fine-tuning/fine-tuning.mjs","../node_modules/openai/resources/graders/grader-models.mjs","../node_modules/openai/resources/graders/graders.mjs","../node_modules/openai/resources/images.mjs","../node_modules/openai/resources/models.mjs","../node_modules/openai/resources/moderations.mjs","../node_modules/openai/resources/realtime/calls.mjs","../node_modules/openai/resources/realtime/client-secrets.mjs","../node_modules/openai/resources/realtime/realtime.mjs","../node_modules/openai/lib/ResponsesParser.mjs","../node_modules/openai/lib/responses/ResponseStream.mjs","../node_modules/openai/resources/responses/input-items.mjs","../node_modules/openai/resources/responses/input-tokens.mjs","../node_modules/openai/resources/responses/responses.mjs","../node_modules/openai/resources/uploads/parts.mjs","../node_modules/openai/resources/uploads/uploads.mjs","../node_modules/openai/lib/Util.mjs","../node_modules/openai/resources/vector-stores/file-batches.mjs","../node_modules/openai/resources/vector-stores/files.mjs","../node_modules/openai/resources/vector-stores/vector-stores.mjs","../node_modules/openai/resources/videos.mjs","../node_modules/openai/resources/webhooks.mjs","../node_modules/openai/client.mjs","../src/inference.ts","../src/helpers.ts","../node_modules/js-yaml/dist/js-yaml.mjs","../src/prompt.ts","../src/main.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return (0, utils_1.toCommandValue)(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst crypto = __importStar(require(\"crypto\"));\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${(0, utils_1.toCommandValue)(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${crypto.randomUUID()}`;\n const convertedValue = (0, utils_1.toCommandValue)(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n try {\n return new DecodedURL(proxyVar);\n }\n catch (_a) {\n if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://'))\n return new DecodedURL(`http://${proxyVar}`);\n }\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const reqHost = reqUrl.hostname;\n if (isLoopbackAddress(reqHost)) {\n return true;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperNoProxyItem === '*' ||\n upperReqHosts.some(x => x === upperNoProxyItem ||\n x.endsWith(`.${upperNoProxyItem}`) ||\n (upperNoProxyItem.startsWith('.') &&\n x.endsWith(`${upperNoProxyItem}`)))) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\nfunction isLoopbackAddress(host) {\n const hostLower = host.toLowerCase();\n return (hostLower === 'localhost' ||\n hostLower.startsWith('127.') ||\n hostLower.startsWith('[::1]') ||\n hostLower.startsWith('[0:0:0:0:0:0:0:1]'));\n}\nclass DecodedURL extends URL {\n constructor(url, base) {\n super(url, base);\n this._decodedUsername = decodeURIComponent(super.username);\n this._decodedPassword = decodeURIComponent(super.password);\n }\n get username() {\n return this._decodedUsername;\n }\n get password() {\n return this._decodedPassword;\n }\n}\n//# sourceMappingURL=proxy.js.map","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","module.exports = require('./lib/tunnel');\n","module.exports = {\n kClose: Symbol('close'),\n kDestroy: Symbol('destroy'),\n kDispatch: Symbol('dispatch'),\n kUrl: Symbol('url'),\n kWriting: Symbol('writing'),\n kResuming: Symbol('resuming'),\n kQueue: Symbol('queue'),\n kConnect: Symbol('connect'),\n kConnecting: Symbol('connecting'),\n kHeadersList: Symbol('headers list'),\n kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'),\n kKeepAliveMaxTimeout: Symbol('max keep alive timeout'),\n kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'),\n kKeepAliveTimeoutValue: Symbol('keep alive timeout'),\n kKeepAlive: Symbol('keep alive'),\n kHeadersTimeout: Symbol('headers timeout'),\n kBodyTimeout: Symbol('body timeout'),\n kServerName: Symbol('server name'),\n kLocalAddress: Symbol('local address'),\n kHost: Symbol('host'),\n kNoRef: Symbol('no ref'),\n kBodyUsed: Symbol('used'),\n kRunning: Symbol('running'),\n kBlocking: Symbol('blocking'),\n kPending: Symbol('pending'),\n kSize: Symbol('size'),\n kBusy: Symbol('busy'),\n kQueued: Symbol('queued'),\n kFree: Symbol('free'),\n kConnected: Symbol('connected'),\n kClosed: Symbol('closed'),\n kNeedDrain: Symbol('need drain'),\n kReset: Symbol('reset'),\n kDestroyed: Symbol.for('nodejs.stream.destroyed'),\n kMaxHeadersSize: Symbol('max headers size'),\n kRunningIdx: Symbol('running index'),\n kPendingIdx: Symbol('pending index'),\n kError: Symbol('error'),\n kClients: Symbol('clients'),\n kClient: Symbol('client'),\n kParser: Symbol('parser'),\n kOnDestroyed: Symbol('destroy callbacks'),\n kPipelining: Symbol('pipelining'),\n kSocket: Symbol('socket'),\n kHostHeader: Symbol('host header'),\n kConnector: Symbol('connector'),\n kStrictContentLength: Symbol('strict content length'),\n kMaxRedirections: Symbol('maxRedirections'),\n kMaxRequests: Symbol('maxRequestsPerClient'),\n kProxy: Symbol('proxy agent options'),\n kCounter: Symbol('socket request counter'),\n kInterceptors: Symbol('dispatch interceptors'),\n kMaxResponseSize: Symbol('max response size'),\n kHTTP2Session: Symbol('http2Session'),\n kHTTP2SessionState: Symbol('http2Session state'),\n kHTTP2BuildRequest: Symbol('http2 build request'),\n kHTTP1BuildRequest: Symbol('http1 build request'),\n kHTTP2CopyHeaders: Symbol('http2 copy headers'),\n kHTTPConnVersion: Symbol('http connection version'),\n kRetryHandlerDefaultRetry: Symbol('retry agent default retry'),\n kConstruct: Symbol('constructable')\n}\n","'use strict'\n\nclass UndiciError extends Error {\n constructor (message) {\n super(message)\n this.name = 'UndiciError'\n this.code = 'UND_ERR'\n }\n}\n\nclass ConnectTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ConnectTimeoutError)\n this.name = 'ConnectTimeoutError'\n this.message = message || 'Connect Timeout Error'\n this.code = 'UND_ERR_CONNECT_TIMEOUT'\n }\n}\n\nclass HeadersTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersTimeoutError)\n this.name = 'HeadersTimeoutError'\n this.message = message || 'Headers Timeout Error'\n this.code = 'UND_ERR_HEADERS_TIMEOUT'\n }\n}\n\nclass HeadersOverflowError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, HeadersOverflowError)\n this.name = 'HeadersOverflowError'\n this.message = message || 'Headers Overflow Error'\n this.code = 'UND_ERR_HEADERS_OVERFLOW'\n }\n}\n\nclass BodyTimeoutError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, BodyTimeoutError)\n this.name = 'BodyTimeoutError'\n this.message = message || 'Body Timeout Error'\n this.code = 'UND_ERR_BODY_TIMEOUT'\n }\n}\n\nclass ResponseStatusCodeError extends UndiciError {\n constructor (message, statusCode, headers, body) {\n super(message)\n Error.captureStackTrace(this, ResponseStatusCodeError)\n this.name = 'ResponseStatusCodeError'\n this.message = message || 'Response Status Code Error'\n this.code = 'UND_ERR_RESPONSE_STATUS_CODE'\n this.body = body\n this.status = statusCode\n this.statusCode = statusCode\n this.headers = headers\n }\n}\n\nclass InvalidArgumentError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidArgumentError)\n this.name = 'InvalidArgumentError'\n this.message = message || 'Invalid Argument Error'\n this.code = 'UND_ERR_INVALID_ARG'\n }\n}\n\nclass InvalidReturnValueError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InvalidReturnValueError)\n this.name = 'InvalidReturnValueError'\n this.message = message || 'Invalid Return Value Error'\n this.code = 'UND_ERR_INVALID_RETURN_VALUE'\n }\n}\n\nclass RequestAbortedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestAbortedError)\n this.name = 'AbortError'\n this.message = message || 'Request aborted'\n this.code = 'UND_ERR_ABORTED'\n }\n}\n\nclass InformationalError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, InformationalError)\n this.name = 'InformationalError'\n this.message = message || 'Request information'\n this.code = 'UND_ERR_INFO'\n }\n}\n\nclass RequestContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, RequestContentLengthMismatchError)\n this.name = 'RequestContentLengthMismatchError'\n this.message = message || 'Request body length does not match content-length header'\n this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ResponseContentLengthMismatchError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseContentLengthMismatchError)\n this.name = 'ResponseContentLengthMismatchError'\n this.message = message || 'Response body length does not match content-length header'\n this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'\n }\n}\n\nclass ClientDestroyedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientDestroyedError)\n this.name = 'ClientDestroyedError'\n this.message = message || 'The client is destroyed'\n this.code = 'UND_ERR_DESTROYED'\n }\n}\n\nclass ClientClosedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ClientClosedError)\n this.name = 'ClientClosedError'\n this.message = message || 'The client is closed'\n this.code = 'UND_ERR_CLOSED'\n }\n}\n\nclass SocketError extends UndiciError {\n constructor (message, socket) {\n super(message)\n Error.captureStackTrace(this, SocketError)\n this.name = 'SocketError'\n this.message = message || 'Socket error'\n this.code = 'UND_ERR_SOCKET'\n this.socket = socket\n }\n}\n\nclass NotSupportedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'NotSupportedError'\n this.message = message || 'Not supported error'\n this.code = 'UND_ERR_NOT_SUPPORTED'\n }\n}\n\nclass BalancedPoolMissingUpstreamError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, NotSupportedError)\n this.name = 'MissingUpstreamError'\n this.message = message || 'No upstream has been added to the BalancedPool'\n this.code = 'UND_ERR_BPL_MISSING_UPSTREAM'\n }\n}\n\nclass HTTPParserError extends Error {\n constructor (message, code, data) {\n super(message)\n Error.captureStackTrace(this, HTTPParserError)\n this.name = 'HTTPParserError'\n this.code = code ? `HPE_${code}` : undefined\n this.data = data ? data.toString() : undefined\n }\n}\n\nclass ResponseExceededMaxSizeError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, ResponseExceededMaxSizeError)\n this.name = 'ResponseExceededMaxSizeError'\n this.message = message || 'Response content exceeded max size'\n this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE'\n }\n}\n\nclass RequestRetryError extends UndiciError {\n constructor (message, code, { headers, data }) {\n super(message)\n Error.captureStackTrace(this, RequestRetryError)\n this.name = 'RequestRetryError'\n this.message = message || 'Request retry error'\n this.code = 'UND_ERR_REQ_RETRY'\n this.statusCode = code\n this.data = data\n this.headers = headers\n }\n}\n\nmodule.exports = {\n HTTPParserError,\n UndiciError,\n HeadersTimeoutError,\n HeadersOverflowError,\n BodyTimeoutError,\n RequestContentLengthMismatchError,\n ConnectTimeoutError,\n ResponseStatusCodeError,\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError,\n ClientDestroyedError,\n ClientClosedError,\n InformationalError,\n SocketError,\n NotSupportedError,\n ResponseContentLengthMismatchError,\n BalancedPoolMissingUpstreamError,\n ResponseExceededMaxSizeError,\n RequestRetryError\n}\n","'use strict'\n\n/** @type {Record} */\nconst headerNameLowerCasedRecord = {}\n\n// https://developer.mozilla.org/docs/Web/HTTP/Headers\nconst wellknownHeaderNames = [\n 'Accept',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Alt-Svc',\n 'Alt-Used',\n 'Authorization',\n 'Cache-Control',\n 'Clear-Site-Data',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-Range',\n 'Content-Security-Policy',\n 'Content-Security-Policy-Report-Only',\n 'Content-Type',\n 'Cookie',\n 'Cross-Origin-Embedder-Policy',\n 'Cross-Origin-Opener-Policy',\n 'Cross-Origin-Resource-Policy',\n 'Date',\n 'Device-Memory',\n 'Downlink',\n 'ECT',\n 'ETag',\n 'Expect',\n 'Expect-CT',\n 'Expires',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Link',\n 'Location',\n 'Max-Forwards',\n 'Origin',\n 'Permissions-Policy',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'RTT',\n 'Range',\n 'Referer',\n 'Referrer-Policy',\n 'Refresh',\n 'Retry-After',\n 'Sec-WebSocket-Accept',\n 'Sec-WebSocket-Extensions',\n 'Sec-WebSocket-Key',\n 'Sec-WebSocket-Protocol',\n 'Sec-WebSocket-Version',\n 'Server',\n 'Server-Timing',\n 'Service-Worker-Allowed',\n 'Service-Worker-Navigation-Preload',\n 'Set-Cookie',\n 'SourceMap',\n 'Strict-Transport-Security',\n 'Supports-Loading-Mode',\n 'TE',\n 'Timing-Allow-Origin',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'Upgrade-Insecure-Requests',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'WWW-Authenticate',\n 'X-Content-Type-Options',\n 'X-DNS-Prefetch-Control',\n 'X-Frame-Options',\n 'X-Permitted-Cross-Domain-Policies',\n 'X-Powered-By',\n 'X-Requested-With',\n 'X-XSS-Protection'\n]\n\nfor (let i = 0; i < wellknownHeaderNames.length; ++i) {\n const key = wellknownHeaderNames[i]\n const lowerCasedKey = key.toLowerCase()\n headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] =\n lowerCasedKey\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(headerNameLowerCasedRecord, null)\n\nmodule.exports = {\n wellknownHeaderNames,\n headerNameLowerCasedRecord\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { kDestroyed, kBodyUsed } = require('./symbols')\nconst { IncomingMessage } = require('http')\nconst stream = require('stream')\nconst net = require('net')\nconst { InvalidArgumentError } = require('./errors')\nconst { Blob } = require('buffer')\nconst nodeUtil = require('util')\nconst { stringify } = require('querystring')\nconst { headerNameLowerCasedRecord } = require('./constants')\n\nconst [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v))\n\nfunction nop () {}\n\nfunction isStream (obj) {\n return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function'\n}\n\n// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License)\nfunction isBlobLike (object) {\n return (Blob && object instanceof Blob) || (\n object &&\n typeof object === 'object' &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n}\n\nfunction buildURL (url, queryParams) {\n if (url.includes('?') || url.includes('#')) {\n throw new Error('Query params cannot be passed when url already contains \"?\" or \"#\".')\n }\n\n const stringified = stringify(queryParams)\n\n if (stringified) {\n url += '?' + stringified\n }\n\n return url\n}\n\nfunction parseURL (url) {\n if (typeof url === 'string') {\n url = new URL(url)\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n return url\n }\n\n if (!url || typeof url !== 'object') {\n throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.')\n }\n\n if (!/^https?:/.test(url.origin || url.protocol)) {\n throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.')\n }\n\n if (!(url instanceof URL)) {\n if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) {\n throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.')\n }\n\n if (url.path != null && typeof url.path !== 'string') {\n throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.')\n }\n\n if (url.pathname != null && typeof url.pathname !== 'string') {\n throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.')\n }\n\n if (url.hostname != null && typeof url.hostname !== 'string') {\n throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.')\n }\n\n if (url.origin != null && typeof url.origin !== 'string') {\n throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.')\n }\n\n const port = url.port != null\n ? url.port\n : (url.protocol === 'https:' ? 443 : 80)\n let origin = url.origin != null\n ? url.origin\n : `${url.protocol}//${url.hostname}:${port}`\n let path = url.path != null\n ? url.path\n : `${url.pathname || ''}${url.search || ''}`\n\n if (origin.endsWith('/')) {\n origin = origin.substring(0, origin.length - 1)\n }\n\n if (path && !path.startsWith('/')) {\n path = `/${path}`\n }\n // new URL(path, origin) is unsafe when `path` contains an absolute URL\n // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL:\n // If first parameter is a relative URL, second param is required, and will be used as the base URL.\n // If first parameter is an absolute URL, a given second param will be ignored.\n url = new URL(origin + path)\n }\n\n return url\n}\n\nfunction parseOrigin (url) {\n url = parseURL(url)\n\n if (url.pathname !== '/' || url.search || url.hash) {\n throw new InvalidArgumentError('invalid url')\n }\n\n return url\n}\n\nfunction getHostname (host) {\n if (host[0] === '[') {\n const idx = host.indexOf(']')\n\n assert(idx !== -1)\n return host.substring(1, idx)\n }\n\n const idx = host.indexOf(':')\n if (idx === -1) return host\n\n return host.substring(0, idx)\n}\n\n// IP addresses are not valid server names per RFC6066\n// > Currently, the only server names supported are DNS hostnames\nfunction getServerName (host) {\n if (!host) {\n return null\n }\n\n assert.strictEqual(typeof host, 'string')\n\n const servername = getHostname(host)\n if (net.isIP(servername)) {\n return ''\n }\n\n return servername\n}\n\nfunction deepClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction isAsyncIterable (obj) {\n return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function')\n}\n\nfunction isIterable (obj) {\n return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function'))\n}\n\nfunction bodyLength (body) {\n if (body == null) {\n return 0\n } else if (isStream(body)) {\n const state = body._readableState\n return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length)\n ? state.length\n : null\n } else if (isBlobLike(body)) {\n return body.size != null ? body.size : null\n } else if (isBuffer(body)) {\n return body.byteLength\n }\n\n return null\n}\n\nfunction isDestroyed (stream) {\n return !stream || !!(stream.destroyed || stream[kDestroyed])\n}\n\nfunction isReadableAborted (stream) {\n const state = stream && stream._readableState\n return isDestroyed(stream) && state && !state.endEmitted\n}\n\nfunction destroy (stream, err) {\n if (stream == null || !isStream(stream) || isDestroyed(stream)) {\n return\n }\n\n if (typeof stream.destroy === 'function') {\n if (Object.getPrototypeOf(stream).constructor === IncomingMessage) {\n // See: https://github.com/nodejs/node/pull/38505/files\n stream.socket = null\n }\n\n stream.destroy(err)\n } else if (err) {\n process.nextTick((stream, err) => {\n stream.emit('error', err)\n }, stream, err)\n }\n\n if (stream.destroyed !== true) {\n stream[kDestroyed] = true\n }\n}\n\nconst KEEPALIVE_TIMEOUT_EXPR = /timeout=(\\d+)/\nfunction parseKeepAliveTimeout (val) {\n const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR)\n return m ? parseInt(m[1], 10) * 1000 : null\n}\n\n/**\n * Retrieves a header name and returns its lowercase value.\n * @param {string | Buffer} value Header name\n * @returns {string}\n */\nfunction headerNameToString (value) {\n return headerNameLowerCasedRecord[value] || value.toLowerCase()\n}\n\nfunction parseHeaders (headers, obj = {}) {\n // For H2 support\n if (!Array.isArray(headers)) return headers\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i].toString().toLowerCase()\n let val = obj[key]\n\n if (!val) {\n if (Array.isArray(headers[i + 1])) {\n obj[key] = headers[i + 1].map(x => x.toString('utf8'))\n } else {\n obj[key] = headers[i + 1].toString('utf8')\n }\n } else {\n if (!Array.isArray(val)) {\n val = [val]\n obj[key] = val\n }\n val.push(headers[i + 1].toString('utf8'))\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if ('content-length' in obj && 'content-disposition' in obj) {\n obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1')\n }\n\n return obj\n}\n\nfunction parseRawHeaders (headers) {\n const ret = []\n let hasContentLength = false\n let contentDispositionIdx = -1\n\n for (let n = 0; n < headers.length; n += 2) {\n const key = headers[n + 0].toString()\n const val = headers[n + 1].toString('utf8')\n\n if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) {\n ret.push(key, val)\n hasContentLength = true\n } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) {\n contentDispositionIdx = ret.push(key, val) - 1\n } else {\n ret.push(key, val)\n }\n }\n\n // See https://github.com/nodejs/node/pull/46528\n if (hasContentLength && contentDispositionIdx !== -1) {\n ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1')\n }\n\n return ret\n}\n\nfunction isBuffer (buffer) {\n // See, https://github.com/mcollina/undici/pull/319\n return buffer instanceof Uint8Array || Buffer.isBuffer(buffer)\n}\n\nfunction validateHandler (handler, method, upgrade) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n if (typeof handler.onConnect !== 'function') {\n throw new InvalidArgumentError('invalid onConnect method')\n }\n\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) {\n throw new InvalidArgumentError('invalid onBodySent method')\n }\n\n if (upgrade || method === 'CONNECT') {\n if (typeof handler.onUpgrade !== 'function') {\n throw new InvalidArgumentError('invalid onUpgrade method')\n }\n } else {\n if (typeof handler.onHeaders !== 'function') {\n throw new InvalidArgumentError('invalid onHeaders method')\n }\n\n if (typeof handler.onData !== 'function') {\n throw new InvalidArgumentError('invalid onData method')\n }\n\n if (typeof handler.onComplete !== 'function') {\n throw new InvalidArgumentError('invalid onComplete method')\n }\n }\n}\n\n// A body is disturbed if it has been read from and it cannot\n// be re-used without losing state or data.\nfunction isDisturbed (body) {\n return !!(body && (\n stream.isDisturbed\n ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed?\n : body[kBodyUsed] ||\n body.readableDidRead ||\n (body._readableState && body._readableState.dataEmitted) ||\n isReadableAborted(body)\n ))\n}\n\nfunction isErrored (body) {\n return !!(body && (\n stream.isErrored\n ? stream.isErrored(body)\n : /state: 'errored'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction isReadable (body) {\n return !!(body && (\n stream.isReadable\n ? stream.isReadable(body)\n : /state: 'readable'/.test(nodeUtil.inspect(body)\n )))\n}\n\nfunction getSocketInfo (socket) {\n return {\n localAddress: socket.localAddress,\n localPort: socket.localPort,\n remoteAddress: socket.remoteAddress,\n remotePort: socket.remotePort,\n remoteFamily: socket.remoteFamily,\n timeout: socket.timeout,\n bytesWritten: socket.bytesWritten,\n bytesRead: socket.bytesRead\n }\n}\n\nasync function * convertIterableToBuffer (iterable) {\n for await (const chunk of iterable) {\n yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n }\n}\n\nlet ReadableStream\nfunction ReadableStreamFrom (iterable) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n if (ReadableStream.from) {\n return ReadableStream.from(convertIterableToBuffer(iterable))\n }\n\n let iterator\n return new ReadableStream(\n {\n async start () {\n iterator = iterable[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { done, value } = await iterator.next()\n if (done) {\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n const buf = Buffer.isBuffer(value) ? value : Buffer.from(value)\n controller.enqueue(new Uint8Array(buf))\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n }\n },\n 0\n )\n}\n\n// The chunk should be a FormData instance and contains\n// all the required methods.\nfunction isFormDataLike (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.append === 'function' &&\n typeof object.delete === 'function' &&\n typeof object.get === 'function' &&\n typeof object.getAll === 'function' &&\n typeof object.has === 'function' &&\n typeof object.set === 'function' &&\n object[Symbol.toStringTag] === 'FormData'\n )\n}\n\nfunction throwIfAborted (signal) {\n if (!signal) { return }\n if (typeof signal.throwIfAborted === 'function') {\n signal.throwIfAborted()\n } else {\n if (signal.aborted) {\n // DOMException not available < v17.0.0\n const err = new Error('The operation was aborted')\n err.name = 'AbortError'\n throw err\n }\n }\n}\n\nfunction addAbortListener (signal, listener) {\n if ('addEventListener' in signal) {\n signal.addEventListener('abort', listener, { once: true })\n return () => signal.removeEventListener('abort', listener)\n }\n signal.addListener('abort', listener)\n return () => signal.removeListener('abort', listener)\n}\n\nconst hasToWellFormed = !!String.prototype.toWellFormed\n\n/**\n * @param {string} val\n */\nfunction toUSVString (val) {\n if (hasToWellFormed) {\n return `${val}`.toWellFormed()\n } else if (nodeUtil.toUSVString) {\n return nodeUtil.toUSVString(val)\n }\n\n return `${val}`\n}\n\n// Parsed accordingly to RFC 9110\n// https://www.rfc-editor.org/rfc/rfc9110#field.content-range\nfunction parseRangeHeader (range) {\n if (range == null || range === '') return { start: 0, end: null, size: null }\n\n const m = range ? range.match(/^bytes (\\d+)-(\\d+)\\/(\\d+)?$/) : null\n return m\n ? {\n start: parseInt(m[1]),\n end: m[2] ? parseInt(m[2]) : null,\n size: m[3] ? parseInt(m[3]) : null\n }\n : null\n}\n\nconst kEnumerableProperty = Object.create(null)\nkEnumerableProperty.enumerable = true\n\nmodule.exports = {\n kEnumerableProperty,\n nop,\n isDisturbed,\n isErrored,\n isReadable,\n toUSVString,\n isReadableAborted,\n isBlobLike,\n parseOrigin,\n parseURL,\n getServerName,\n isStream,\n isIterable,\n isAsyncIterable,\n isDestroyed,\n headerNameToString,\n parseRawHeaders,\n parseHeaders,\n parseKeepAliveTimeout,\n destroy,\n bodyLength,\n deepClone,\n ReadableStreamFrom,\n isBuffer,\n validateHandler,\n getSocketInfo,\n isFormDataLike,\n buildURL,\n throwIfAborted,\n addAbortListener,\n parseRangeHeader,\n nodeMajor,\n nodeMinor,\n nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13),\n safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE']\n}\n","'use strict'\n\nlet fastNow = Date.now()\nlet fastNowTimeout\n\nconst fastTimers = []\n\nfunction onTimeout () {\n fastNow = Date.now()\n\n let len = fastTimers.length\n let idx = 0\n while (idx < len) {\n const timer = fastTimers[idx]\n\n if (timer.state === 0) {\n timer.state = fastNow + timer.delay\n } else if (timer.state > 0 && fastNow >= timer.state) {\n timer.state = -1\n timer.callback(timer.opaque)\n }\n\n if (timer.state === -1) {\n timer.state = -2\n if (idx !== len - 1) {\n fastTimers[idx] = fastTimers.pop()\n } else {\n fastTimers.pop()\n }\n len -= 1\n } else {\n idx += 1\n }\n }\n\n if (fastTimers.length > 0) {\n refreshTimeout()\n }\n}\n\nfunction refreshTimeout () {\n if (fastNowTimeout && fastNowTimeout.refresh) {\n fastNowTimeout.refresh()\n } else {\n clearTimeout(fastNowTimeout)\n fastNowTimeout = setTimeout(onTimeout, 1e3)\n if (fastNowTimeout.unref) {\n fastNowTimeout.unref()\n }\n }\n}\n\nclass Timeout {\n constructor (callback, delay, opaque) {\n this.callback = callback\n this.delay = delay\n this.opaque = opaque\n\n // -2 not in timer list\n // -1 in timer list but inactive\n // 0 in timer list waiting for time\n // > 0 in timer list waiting for time to expire\n this.state = -2\n\n this.refresh()\n }\n\n refresh () {\n if (this.state === -2) {\n fastTimers.push(this)\n if (!fastNowTimeout || fastTimers.length === 1) {\n refreshTimeout()\n }\n }\n\n this.state = 0\n }\n\n clear () {\n this.state = -1\n }\n}\n\nmodule.exports = {\n setTimeout (callback, delay, opaque) {\n return delay < 1e3\n ? setTimeout(callback, delay, opaque)\n : new Timeout(callback, delay, opaque)\n },\n clearTimeout (timeout) {\n if (timeout instanceof Timeout) {\n timeout.clear()\n } else {\n clearTimeout(timeout)\n }\n }\n}\n","'use strict'\n\n/**\n * Copyright Brian White. All rights reserved.\n *\n * @see https://github.com/mscdex/streamsearch\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation\n * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool\n */\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\n\nfunction SBMH (needle) {\n if (typeof needle === 'string') {\n needle = Buffer.from(needle)\n }\n\n if (!Buffer.isBuffer(needle)) {\n throw new TypeError('The needle has to be a String or a Buffer.')\n }\n\n const needleLength = needle.length\n\n if (needleLength === 0) {\n throw new Error('The needle cannot be an empty String/Buffer.')\n }\n\n if (needleLength > 256) {\n throw new Error('The needle cannot have a length bigger than 256.')\n }\n\n this.maxMatches = Infinity\n this.matches = 0\n\n this._occ = new Array(256)\n .fill(needleLength) // Initialize occurrence table.\n this._lookbehind_size = 0\n this._needle = needle\n this._bufpos = 0\n\n this._lookbehind = Buffer.alloc(needleLength)\n\n // Populate occurrence table with analysis of the needle,\n // ignoring last letter.\n for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var\n this._occ[needle[i]] = needleLength - 1 - i\n }\n}\ninherits(SBMH, EventEmitter)\n\nSBMH.prototype.reset = function () {\n this._lookbehind_size = 0\n this.matches = 0\n this._bufpos = 0\n}\n\nSBMH.prototype.push = function (chunk, pos) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk, 'binary')\n }\n const chlen = chunk.length\n this._bufpos = pos || 0\n let r\n while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) }\n return r\n}\n\nSBMH.prototype._sbmh_feed = function (data) {\n const len = data.length\n const needle = this._needle\n const needleLength = needle.length\n const lastNeedleChar = needle[needleLength - 1]\n\n // Positive: points to a position in `data`\n // pos == 3 points to data[3]\n // Negative: points to a position in the lookbehind buffer\n // pos == -2 points to lookbehind[lookbehind_size - 2]\n let pos = -this._lookbehind_size\n let ch\n\n if (pos < 0) {\n // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool\n // search with character lookup code that considers both the\n // lookbehind buffer and the current round's haystack data.\n //\n // Loop until\n // there is a match.\n // or until\n // we've moved past the position that requires the\n // lookbehind buffer. In this case we switch to the\n // optimized loop.\n // or until\n // the character to look at lies outside the haystack.\n while (pos < 0 && pos <= len - needleLength) {\n ch = this._sbmh_lookup_char(data, pos + needleLength - 1)\n\n if (\n ch === lastNeedleChar &&\n this._sbmh_memcmp(data, pos, needleLength - 1)\n ) {\n this._lookbehind_size = 0\n ++this.matches\n this.emit('info', true)\n\n return (this._bufpos = pos + needleLength)\n }\n pos += this._occ[ch]\n }\n\n // No match.\n\n if (pos < 0) {\n // There's too few data for Boyer-Moore-Horspool to run,\n // so let's use a different algorithm to skip as much as\n // we can.\n // Forward pos until\n // the trailing part of lookbehind + data\n // looks like the beginning of the needle\n // or until\n // pos == 0\n while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos }\n }\n\n if (pos >= 0) {\n // Discard lookbehind buffer.\n this.emit('info', false, this._lookbehind, 0, this._lookbehind_size)\n this._lookbehind_size = 0\n } else {\n // Cut off part of the lookbehind buffer that has\n // been processed and append the entire haystack\n // into it.\n const bytesToCutOff = this._lookbehind_size + pos\n if (bytesToCutOff > 0) {\n // The cut off data is guaranteed not to contain the needle.\n this.emit('info', false, this._lookbehind, 0, bytesToCutOff)\n }\n\n this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff,\n this._lookbehind_size - bytesToCutOff)\n this._lookbehind_size -= bytesToCutOff\n\n data.copy(this._lookbehind, this._lookbehind_size)\n this._lookbehind_size += len\n\n this._bufpos = len\n return len\n }\n }\n\n pos += (pos >= 0) * this._bufpos\n\n // Lookbehind buffer is now empty. We only need to check if the\n // needle is in the haystack.\n if (data.indexOf(needle, pos) !== -1) {\n pos = data.indexOf(needle, pos)\n ++this.matches\n if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) }\n\n return (this._bufpos = pos + needleLength)\n } else {\n pos = len - needleLength\n }\n\n // There was no match. If there's trailing haystack data that we cannot\n // match yet using the Boyer-Moore-Horspool algorithm (because the trailing\n // data is less than the needle size) then match using a modified\n // algorithm that starts matching from the beginning instead of the end.\n // Whatever trailing data is left after running this algorithm is added to\n // the lookbehind buffer.\n while (\n pos < len &&\n (\n data[pos] !== needle[0] ||\n (\n (Buffer.compare(\n data.subarray(pos, pos + len - pos),\n needle.subarray(0, len - pos)\n ) !== 0)\n )\n )\n ) {\n ++pos\n }\n if (pos < len) {\n data.copy(this._lookbehind, 0, pos, pos + (len - pos))\n this._lookbehind_size = len - pos\n }\n\n // Everything until pos is guaranteed not to contain needle data.\n if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) }\n\n this._bufpos = len\n return len\n}\n\nSBMH.prototype._sbmh_lookup_char = function (data, pos) {\n return (pos < 0)\n ? this._lookbehind[this._lookbehind_size + pos]\n : data[pos]\n}\n\nSBMH.prototype._sbmh_memcmp = function (data, pos, len) {\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false }\n }\n return true\n}\n\nmodule.exports = SBMH\n","'use strict'\n\nconst inherits = require('node:util').inherits\nconst ReadableStream = require('node:stream').Readable\n\nfunction PartStream (opts) {\n ReadableStream.call(this, opts)\n}\ninherits(PartStream, ReadableStream)\n\nPartStream.prototype._read = function (n) {}\n\nmodule.exports = PartStream\n","'use strict'\n\nmodule.exports = function getLimit (limits, name, defaultLimit) {\n if (\n !limits ||\n limits[name] === undefined ||\n limits[name] === null\n ) { return defaultLimit }\n\n if (\n typeof limits[name] !== 'number' ||\n isNaN(limits[name])\n ) { throw new TypeError('Limit ' + name + ' is not a valid number') }\n\n return limits[name]\n}\n","'use strict'\n\nconst EventEmitter = require('node:events').EventEmitter\nconst inherits = require('node:util').inherits\nconst getLimit = require('../../../lib/utils/getLimit')\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst B_DCRLF = Buffer.from('\\r\\n\\r\\n')\nconst RE_CRLF = /\\r\\n/g\nconst RE_HDR = /^([^:]+):[ \\t]?([\\x00-\\xFF]+)?$/ // eslint-disable-line no-control-regex\n\nfunction HeaderParser (cfg) {\n EventEmitter.call(this)\n\n cfg = cfg || {}\n const self = this\n this.nread = 0\n this.maxed = false\n this.npairs = 0\n this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000)\n this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024)\n this.buffer = ''\n this.header = {}\n this.finished = false\n this.ss = new StreamSearch(B_DCRLF)\n this.ss.on('info', function (isMatch, data, start, end) {\n if (data && !self.maxed) {\n if (self.nread + end - start >= self.maxHeaderSize) {\n end = self.maxHeaderSize - self.nread + start\n self.nread = self.maxHeaderSize\n self.maxed = true\n } else { self.nread += (end - start) }\n\n self.buffer += data.toString('binary', start, end)\n }\n if (isMatch) { self._finish() }\n })\n}\ninherits(HeaderParser, EventEmitter)\n\nHeaderParser.prototype.push = function (data) {\n const r = this.ss.push(data)\n if (this.finished) { return r }\n}\n\nHeaderParser.prototype.reset = function () {\n this.finished = false\n this.buffer = ''\n this.header = {}\n this.ss.reset()\n}\n\nHeaderParser.prototype._finish = function () {\n if (this.buffer) { this._parseHeader() }\n this.ss.matches = this.ss.maxMatches\n const header = this.header\n this.header = {}\n this.buffer = ''\n this.finished = true\n this.nread = this.npairs = 0\n this.maxed = false\n this.emit('header', header)\n}\n\nHeaderParser.prototype._parseHeader = function () {\n if (this.npairs === this.maxHeaderPairs) { return }\n\n const lines = this.buffer.split(RE_CRLF)\n const len = lines.length\n let m, h\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n if (lines[i].length === 0) { continue }\n if (lines[i][0] === '\\t' || lines[i][0] === ' ') {\n // folded header content\n // RFC2822 says to just remove the CRLF and not the whitespace following\n // it, so we follow the RFC and include the leading whitespace ...\n if (h) {\n this.header[h][this.header[h].length - 1] += lines[i]\n continue\n }\n }\n\n const posColon = lines[i].indexOf(':')\n if (\n posColon === -1 ||\n posColon === 0\n ) {\n return\n }\n m = RE_HDR.exec(lines[i])\n h = m[1].toLowerCase()\n this.header[h] = this.header[h] || []\n this.header[h].push((m[2] || ''))\n if (++this.npairs === this.maxHeaderPairs) { break }\n }\n}\n\nmodule.exports = HeaderParser\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst inherits = require('node:util').inherits\n\nconst StreamSearch = require('../../streamsearch/sbmh')\n\nconst PartStream = require('./PartStream')\nconst HeaderParser = require('./HeaderParser')\n\nconst DASH = 45\nconst B_ONEDASH = Buffer.from('-')\nconst B_CRLF = Buffer.from('\\r\\n')\nconst EMPTY_FN = function () {}\n\nfunction Dicer (cfg) {\n if (!(this instanceof Dicer)) { return new Dicer(cfg) }\n WritableStream.call(this, cfg)\n\n if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') }\n\n if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined }\n\n this._headerFirst = cfg.headerFirst\n\n this._dashes = 0\n this._parts = 0\n this._finished = false\n this._realFinish = false\n this._isPreamble = true\n this._justMatched = false\n this._firstWrite = true\n this._inHeader = true\n this._part = undefined\n this._cb = undefined\n this._ignoreData = false\n this._partOpts = { highWaterMark: cfg.partHwm }\n this._pause = false\n\n const self = this\n this._hparser = new HeaderParser(cfg)\n this._hparser.on('header', function (header) {\n self._inHeader = false\n self._part.emit('header', header)\n })\n}\ninherits(Dicer, WritableStream)\n\nDicer.prototype.emit = function (ev) {\n if (ev === 'finish' && !this._realFinish) {\n if (!this._finished) {\n const self = this\n process.nextTick(function () {\n self.emit('error', new Error('Unexpected end of multipart data'))\n if (self._part && !self._ignoreData) {\n const type = (self._isPreamble ? 'Preamble' : 'Part')\n self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data'))\n self._part.push(null)\n process.nextTick(function () {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n return\n }\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n })\n }\n } else { WritableStream.prototype.emit.apply(this, arguments) }\n}\n\nDicer.prototype._write = function (data, encoding, cb) {\n // ignore unexpected data (e.g. extra trailer data after finished)\n if (!this._hparser && !this._bparser) { return cb() }\n\n if (this._headerFirst && this._isPreamble) {\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n if (this.listenerCount('preamble') !== 0) { this.emit('preamble', this._part) } else { this._ignore() }\n }\n const r = this._hparser.push(data)\n if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() }\n }\n\n // allows for \"easier\" testing\n if (this._firstWrite) {\n this._bparser.push(B_CRLF)\n this._firstWrite = false\n }\n\n this._bparser.push(data)\n\n if (this._pause) { this._cb = cb } else { cb() }\n}\n\nDicer.prototype.reset = function () {\n this._part = undefined\n this._bparser = undefined\n this._hparser = undefined\n}\n\nDicer.prototype.setBoundary = function (boundary) {\n const self = this\n this._bparser = new StreamSearch('\\r\\n--' + boundary)\n this._bparser.on('info', function (isMatch, data, start, end) {\n self._oninfo(isMatch, data, start, end)\n })\n}\n\nDicer.prototype._ignore = function () {\n if (this._part && !this._ignoreData) {\n this._ignoreData = true\n this._part.on('error', EMPTY_FN)\n // we must perform some kind of read on the stream even though we are\n // ignoring the data, otherwise node's Readable stream will not emit 'end'\n // after pushing null to the stream\n this._part.resume()\n }\n}\n\nDicer.prototype._oninfo = function (isMatch, data, start, end) {\n let buf; const self = this; let i = 0; let r; let shouldWriteMore = true\n\n if (!this._part && this._justMatched && data) {\n while (this._dashes < 2 && (start + i) < end) {\n if (data[start + i] === DASH) {\n ++i\n ++this._dashes\n } else {\n if (this._dashes) { buf = B_ONEDASH }\n this._dashes = 0\n break\n }\n }\n if (this._dashes === 2) {\n if ((start + i) < end && this.listenerCount('trailer') !== 0) { this.emit('trailer', data.slice(start + i, end)) }\n this.reset()\n this._finished = true\n // no more parts will be added\n if (self._parts === 0) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n }\n }\n if (this._dashes) { return }\n }\n if (this._justMatched) { this._justMatched = false }\n if (!this._part) {\n this._part = new PartStream(this._partOpts)\n this._part._read = function (n) {\n self._unpause()\n }\n if (this._isPreamble && this.listenerCount('preamble') !== 0) {\n this.emit('preamble', this._part)\n } else if (this._isPreamble !== true && this.listenerCount('part') !== 0) {\n this.emit('part', this._part)\n } else {\n this._ignore()\n }\n if (!this._isPreamble) { this._inHeader = true }\n }\n if (data && start < end && !this._ignoreData) {\n if (this._isPreamble || !this._inHeader) {\n if (buf) { shouldWriteMore = this._part.push(buf) }\n shouldWriteMore = this._part.push(data.slice(start, end))\n if (!shouldWriteMore) { this._pause = true }\n } else if (!this._isPreamble && this._inHeader) {\n if (buf) { this._hparser.push(buf) }\n r = this._hparser.push(data.slice(start, end))\n if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) }\n }\n }\n if (isMatch) {\n this._hparser.reset()\n if (this._isPreamble) { this._isPreamble = false } else {\n if (start !== end) {\n ++this._parts\n this._part.on('end', function () {\n if (--self._parts === 0) {\n if (self._finished) {\n self._realFinish = true\n self.emit('finish')\n self._realFinish = false\n } else {\n self._unpause()\n }\n }\n })\n }\n }\n this._part.push(null)\n this._part = undefined\n this._ignoreData = false\n this._justMatched = true\n this._dashes = 0\n }\n}\n\nDicer.prototype._unpause = function () {\n if (!this._pause) { return }\n\n this._pause = false\n if (this._cb) {\n const cb = this._cb\n this._cb = undefined\n cb()\n }\n}\n\nmodule.exports = Dicer\n","'use strict'\n\n// Node has always utf-8\nconst utf8Decoder = new TextDecoder('utf-8')\nconst textDecoders = new Map([\n ['utf-8', utf8Decoder],\n ['utf8', utf8Decoder]\n])\n\nfunction getDecoder (charset) {\n let lc\n while (true) {\n switch (charset) {\n case 'utf-8':\n case 'utf8':\n return decoders.utf8\n case 'latin1':\n case 'ascii': // TODO: Make these a separate, strict decoder?\n case 'us-ascii':\n case 'iso-8859-1':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'windows-1252':\n case 'iso_8859-1:1987':\n case 'cp1252':\n case 'x-cp1252':\n return decoders.latin1\n case 'utf16le':\n case 'utf-16le':\n case 'ucs2':\n case 'ucs-2':\n return decoders.utf16le\n case 'base64':\n return decoders.base64\n default:\n if (lc === undefined) {\n lc = true\n charset = charset.toLowerCase()\n continue\n }\n return decoders.other.bind(charset)\n }\n }\n}\n\nconst decoders = {\n utf8: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.utf8Slice(0, data.length)\n },\n\n latin1: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n return data\n }\n return data.latin1Slice(0, data.length)\n },\n\n utf16le: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.ucs2Slice(0, data.length)\n },\n\n base64: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n return data.base64Slice(0, data.length)\n },\n\n other: (data, sourceEncoding) => {\n if (data.length === 0) {\n return ''\n }\n if (typeof data === 'string') {\n data = Buffer.from(data, sourceEncoding)\n }\n\n if (textDecoders.has(this.toString())) {\n try {\n return textDecoders.get(this).decode(data)\n } catch {}\n }\n return typeof data === 'string'\n ? data\n : data.toString()\n }\n}\n\nfunction decodeText (text, sourceEncoding, destEncoding) {\n if (text) {\n return getDecoder(destEncoding)(text, sourceEncoding)\n }\n return text\n}\n\nmodule.exports = decodeText\n","/* eslint-disable object-property-newline */\n'use strict'\n\nconst decodeText = require('./decodeText')\n\nconst RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g\n\nconst EncodedLookup = {\n '%00': '\\x00', '%01': '\\x01', '%02': '\\x02', '%03': '\\x03', '%04': '\\x04',\n '%05': '\\x05', '%06': '\\x06', '%07': '\\x07', '%08': '\\x08', '%09': '\\x09',\n '%0a': '\\x0a', '%0A': '\\x0a', '%0b': '\\x0b', '%0B': '\\x0b', '%0c': '\\x0c',\n '%0C': '\\x0c', '%0d': '\\x0d', '%0D': '\\x0d', '%0e': '\\x0e', '%0E': '\\x0e',\n '%0f': '\\x0f', '%0F': '\\x0f', '%10': '\\x10', '%11': '\\x11', '%12': '\\x12',\n '%13': '\\x13', '%14': '\\x14', '%15': '\\x15', '%16': '\\x16', '%17': '\\x17',\n '%18': '\\x18', '%19': '\\x19', '%1a': '\\x1a', '%1A': '\\x1a', '%1b': '\\x1b',\n '%1B': '\\x1b', '%1c': '\\x1c', '%1C': '\\x1c', '%1d': '\\x1d', '%1D': '\\x1d',\n '%1e': '\\x1e', '%1E': '\\x1e', '%1f': '\\x1f', '%1F': '\\x1f', '%20': '\\x20',\n '%21': '\\x21', '%22': '\\x22', '%23': '\\x23', '%24': '\\x24', '%25': '\\x25',\n '%26': '\\x26', '%27': '\\x27', '%28': '\\x28', '%29': '\\x29', '%2a': '\\x2a',\n '%2A': '\\x2a', '%2b': '\\x2b', '%2B': '\\x2b', '%2c': '\\x2c', '%2C': '\\x2c',\n '%2d': '\\x2d', '%2D': '\\x2d', '%2e': '\\x2e', '%2E': '\\x2e', '%2f': '\\x2f',\n '%2F': '\\x2f', '%30': '\\x30', '%31': '\\x31', '%32': '\\x32', '%33': '\\x33',\n '%34': '\\x34', '%35': '\\x35', '%36': '\\x36', '%37': '\\x37', '%38': '\\x38',\n '%39': '\\x39', '%3a': '\\x3a', '%3A': '\\x3a', '%3b': '\\x3b', '%3B': '\\x3b',\n '%3c': '\\x3c', '%3C': '\\x3c', '%3d': '\\x3d', '%3D': '\\x3d', '%3e': '\\x3e',\n '%3E': '\\x3e', '%3f': '\\x3f', '%3F': '\\x3f', '%40': '\\x40', '%41': '\\x41',\n '%42': '\\x42', '%43': '\\x43', '%44': '\\x44', '%45': '\\x45', '%46': '\\x46',\n '%47': '\\x47', '%48': '\\x48', '%49': '\\x49', '%4a': '\\x4a', '%4A': '\\x4a',\n '%4b': '\\x4b', '%4B': '\\x4b', '%4c': '\\x4c', '%4C': '\\x4c', '%4d': '\\x4d',\n '%4D': '\\x4d', '%4e': '\\x4e', '%4E': '\\x4e', '%4f': '\\x4f', '%4F': '\\x4f',\n '%50': '\\x50', '%51': '\\x51', '%52': '\\x52', '%53': '\\x53', '%54': '\\x54',\n '%55': '\\x55', '%56': '\\x56', '%57': '\\x57', '%58': '\\x58', '%59': '\\x59',\n '%5a': '\\x5a', '%5A': '\\x5a', '%5b': '\\x5b', '%5B': '\\x5b', '%5c': '\\x5c',\n '%5C': '\\x5c', '%5d': '\\x5d', '%5D': '\\x5d', '%5e': '\\x5e', '%5E': '\\x5e',\n '%5f': '\\x5f', '%5F': '\\x5f', '%60': '\\x60', '%61': '\\x61', '%62': '\\x62',\n '%63': '\\x63', '%64': '\\x64', '%65': '\\x65', '%66': '\\x66', '%67': '\\x67',\n '%68': '\\x68', '%69': '\\x69', '%6a': '\\x6a', '%6A': '\\x6a', '%6b': '\\x6b',\n '%6B': '\\x6b', '%6c': '\\x6c', '%6C': '\\x6c', '%6d': '\\x6d', '%6D': '\\x6d',\n '%6e': '\\x6e', '%6E': '\\x6e', '%6f': '\\x6f', '%6F': '\\x6f', '%70': '\\x70',\n '%71': '\\x71', '%72': '\\x72', '%73': '\\x73', '%74': '\\x74', '%75': '\\x75',\n '%76': '\\x76', '%77': '\\x77', '%78': '\\x78', '%79': '\\x79', '%7a': '\\x7a',\n '%7A': '\\x7a', '%7b': '\\x7b', '%7B': '\\x7b', '%7c': '\\x7c', '%7C': '\\x7c',\n '%7d': '\\x7d', '%7D': '\\x7d', '%7e': '\\x7e', '%7E': '\\x7e', '%7f': '\\x7f',\n '%7F': '\\x7f', '%80': '\\x80', '%81': '\\x81', '%82': '\\x82', '%83': '\\x83',\n '%84': '\\x84', '%85': '\\x85', '%86': '\\x86', '%87': '\\x87', '%88': '\\x88',\n '%89': '\\x89', '%8a': '\\x8a', '%8A': '\\x8a', '%8b': '\\x8b', '%8B': '\\x8b',\n '%8c': '\\x8c', '%8C': '\\x8c', '%8d': '\\x8d', '%8D': '\\x8d', '%8e': '\\x8e',\n '%8E': '\\x8e', '%8f': '\\x8f', '%8F': '\\x8f', '%90': '\\x90', '%91': '\\x91',\n '%92': '\\x92', '%93': '\\x93', '%94': '\\x94', '%95': '\\x95', '%96': '\\x96',\n '%97': '\\x97', '%98': '\\x98', '%99': '\\x99', '%9a': '\\x9a', '%9A': '\\x9a',\n '%9b': '\\x9b', '%9B': '\\x9b', '%9c': '\\x9c', '%9C': '\\x9c', '%9d': '\\x9d',\n '%9D': '\\x9d', '%9e': '\\x9e', '%9E': '\\x9e', '%9f': '\\x9f', '%9F': '\\x9f',\n '%a0': '\\xa0', '%A0': '\\xa0', '%a1': '\\xa1', '%A1': '\\xa1', '%a2': '\\xa2',\n '%A2': '\\xa2', '%a3': '\\xa3', '%A3': '\\xa3', '%a4': '\\xa4', '%A4': '\\xa4',\n '%a5': '\\xa5', '%A5': '\\xa5', '%a6': '\\xa6', '%A6': '\\xa6', '%a7': '\\xa7',\n '%A7': '\\xa7', '%a8': '\\xa8', '%A8': '\\xa8', '%a9': '\\xa9', '%A9': '\\xa9',\n '%aa': '\\xaa', '%Aa': '\\xaa', '%aA': '\\xaa', '%AA': '\\xaa', '%ab': '\\xab',\n '%Ab': '\\xab', '%aB': '\\xab', '%AB': '\\xab', '%ac': '\\xac', '%Ac': '\\xac',\n '%aC': '\\xac', '%AC': '\\xac', '%ad': '\\xad', '%Ad': '\\xad', '%aD': '\\xad',\n '%AD': '\\xad', '%ae': '\\xae', '%Ae': '\\xae', '%aE': '\\xae', '%AE': '\\xae',\n '%af': '\\xaf', '%Af': '\\xaf', '%aF': '\\xaf', '%AF': '\\xaf', '%b0': '\\xb0',\n '%B0': '\\xb0', '%b1': '\\xb1', '%B1': '\\xb1', '%b2': '\\xb2', '%B2': '\\xb2',\n '%b3': '\\xb3', '%B3': '\\xb3', '%b4': '\\xb4', '%B4': '\\xb4', '%b5': '\\xb5',\n '%B5': '\\xb5', '%b6': '\\xb6', '%B6': '\\xb6', '%b7': '\\xb7', '%B7': '\\xb7',\n '%b8': '\\xb8', '%B8': '\\xb8', '%b9': '\\xb9', '%B9': '\\xb9', '%ba': '\\xba',\n '%Ba': '\\xba', '%bA': '\\xba', '%BA': '\\xba', '%bb': '\\xbb', '%Bb': '\\xbb',\n '%bB': '\\xbb', '%BB': '\\xbb', '%bc': '\\xbc', '%Bc': '\\xbc', '%bC': '\\xbc',\n '%BC': '\\xbc', '%bd': '\\xbd', '%Bd': '\\xbd', '%bD': '\\xbd', '%BD': '\\xbd',\n '%be': '\\xbe', '%Be': '\\xbe', '%bE': '\\xbe', '%BE': '\\xbe', '%bf': '\\xbf',\n '%Bf': '\\xbf', '%bF': '\\xbf', '%BF': '\\xbf', '%c0': '\\xc0', '%C0': '\\xc0',\n '%c1': '\\xc1', '%C1': '\\xc1', '%c2': '\\xc2', '%C2': '\\xc2', '%c3': '\\xc3',\n '%C3': '\\xc3', '%c4': '\\xc4', '%C4': '\\xc4', '%c5': '\\xc5', '%C5': '\\xc5',\n '%c6': '\\xc6', '%C6': '\\xc6', '%c7': '\\xc7', '%C7': '\\xc7', '%c8': '\\xc8',\n '%C8': '\\xc8', '%c9': '\\xc9', '%C9': '\\xc9', '%ca': '\\xca', '%Ca': '\\xca',\n '%cA': '\\xca', '%CA': '\\xca', '%cb': '\\xcb', '%Cb': '\\xcb', '%cB': '\\xcb',\n '%CB': '\\xcb', '%cc': '\\xcc', '%Cc': '\\xcc', '%cC': '\\xcc', '%CC': '\\xcc',\n '%cd': '\\xcd', '%Cd': '\\xcd', '%cD': '\\xcd', '%CD': '\\xcd', '%ce': '\\xce',\n '%Ce': '\\xce', '%cE': '\\xce', '%CE': '\\xce', '%cf': '\\xcf', '%Cf': '\\xcf',\n '%cF': '\\xcf', '%CF': '\\xcf', '%d0': '\\xd0', '%D0': '\\xd0', '%d1': '\\xd1',\n '%D1': '\\xd1', '%d2': '\\xd2', '%D2': '\\xd2', '%d3': '\\xd3', '%D3': '\\xd3',\n '%d4': '\\xd4', '%D4': '\\xd4', '%d5': '\\xd5', '%D5': '\\xd5', '%d6': '\\xd6',\n '%D6': '\\xd6', '%d7': '\\xd7', '%D7': '\\xd7', '%d8': '\\xd8', '%D8': '\\xd8',\n '%d9': '\\xd9', '%D9': '\\xd9', '%da': '\\xda', '%Da': '\\xda', '%dA': '\\xda',\n '%DA': '\\xda', '%db': '\\xdb', '%Db': '\\xdb', '%dB': '\\xdb', '%DB': '\\xdb',\n '%dc': '\\xdc', '%Dc': '\\xdc', '%dC': '\\xdc', '%DC': '\\xdc', '%dd': '\\xdd',\n '%Dd': '\\xdd', '%dD': '\\xdd', '%DD': '\\xdd', '%de': '\\xde', '%De': '\\xde',\n '%dE': '\\xde', '%DE': '\\xde', '%df': '\\xdf', '%Df': '\\xdf', '%dF': '\\xdf',\n '%DF': '\\xdf', '%e0': '\\xe0', '%E0': '\\xe0', '%e1': '\\xe1', '%E1': '\\xe1',\n '%e2': '\\xe2', '%E2': '\\xe2', '%e3': '\\xe3', '%E3': '\\xe3', '%e4': '\\xe4',\n '%E4': '\\xe4', '%e5': '\\xe5', '%E5': '\\xe5', '%e6': '\\xe6', '%E6': '\\xe6',\n '%e7': '\\xe7', '%E7': '\\xe7', '%e8': '\\xe8', '%E8': '\\xe8', '%e9': '\\xe9',\n '%E9': '\\xe9', '%ea': '\\xea', '%Ea': '\\xea', '%eA': '\\xea', '%EA': '\\xea',\n '%eb': '\\xeb', '%Eb': '\\xeb', '%eB': '\\xeb', '%EB': '\\xeb', '%ec': '\\xec',\n '%Ec': '\\xec', '%eC': '\\xec', '%EC': '\\xec', '%ed': '\\xed', '%Ed': '\\xed',\n '%eD': '\\xed', '%ED': '\\xed', '%ee': '\\xee', '%Ee': '\\xee', '%eE': '\\xee',\n '%EE': '\\xee', '%ef': '\\xef', '%Ef': '\\xef', '%eF': '\\xef', '%EF': '\\xef',\n '%f0': '\\xf0', '%F0': '\\xf0', '%f1': '\\xf1', '%F1': '\\xf1', '%f2': '\\xf2',\n '%F2': '\\xf2', '%f3': '\\xf3', '%F3': '\\xf3', '%f4': '\\xf4', '%F4': '\\xf4',\n '%f5': '\\xf5', '%F5': '\\xf5', '%f6': '\\xf6', '%F6': '\\xf6', '%f7': '\\xf7',\n '%F7': '\\xf7', '%f8': '\\xf8', '%F8': '\\xf8', '%f9': '\\xf9', '%F9': '\\xf9',\n '%fa': '\\xfa', '%Fa': '\\xfa', '%fA': '\\xfa', '%FA': '\\xfa', '%fb': '\\xfb',\n '%Fb': '\\xfb', '%fB': '\\xfb', '%FB': '\\xfb', '%fc': '\\xfc', '%Fc': '\\xfc',\n '%fC': '\\xfc', '%FC': '\\xfc', '%fd': '\\xfd', '%Fd': '\\xfd', '%fD': '\\xfd',\n '%FD': '\\xfd', '%fe': '\\xfe', '%Fe': '\\xfe', '%fE': '\\xfe', '%FE': '\\xfe',\n '%ff': '\\xff', '%Ff': '\\xff', '%fF': '\\xff', '%FF': '\\xff'\n}\n\nfunction encodedReplacer (match) {\n return EncodedLookup[match]\n}\n\nconst STATE_KEY = 0\nconst STATE_VALUE = 1\nconst STATE_CHARSET = 2\nconst STATE_LANG = 3\n\nfunction parseParams (str) {\n const res = []\n let state = STATE_KEY\n let charset = ''\n let inquote = false\n let escaping = false\n let p = 0\n let tmp = ''\n const len = str.length\n\n for (var i = 0; i < len; ++i) { // eslint-disable-line no-var\n const char = str[i]\n if (char === '\\\\' && inquote) {\n if (escaping) { escaping = false } else {\n escaping = true\n continue\n }\n } else if (char === '\"') {\n if (!escaping) {\n if (inquote) {\n inquote = false\n state = STATE_KEY\n } else { inquote = true }\n continue\n } else { escaping = false }\n } else {\n if (escaping && inquote) { tmp += '\\\\' }\n escaping = false\n if ((state === STATE_CHARSET || state === STATE_LANG) && char === \"'\") {\n if (state === STATE_CHARSET) {\n state = STATE_LANG\n charset = tmp.substring(1)\n } else { state = STATE_VALUE }\n tmp = ''\n continue\n } else if (state === STATE_KEY &&\n (char === '*' || char === '=') &&\n res.length) {\n state = char === '*'\n ? STATE_CHARSET\n : STATE_VALUE\n res[p] = [tmp, undefined]\n tmp = ''\n continue\n } else if (!inquote && char === ';') {\n state = STATE_KEY\n if (charset) {\n if (tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n }\n charset = ''\n } else if (tmp.length) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp }\n tmp = ''\n ++p\n continue\n } else if (!inquote && (char === ' ' || char === '\\t')) { continue }\n }\n tmp += char\n }\n if (charset && tmp.length) {\n tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),\n 'binary',\n charset)\n } else if (tmp) {\n tmp = decodeText(tmp, 'binary', 'utf8')\n }\n\n if (res[p] === undefined) {\n if (tmp) { res[p] = tmp }\n } else { res[p][1] = tmp }\n\n return res\n}\n\nmodule.exports = parseParams\n","'use strict'\n\nmodule.exports = function basename (path) {\n if (typeof path !== 'string') { return '' }\n for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var\n switch (path.charCodeAt(i)) {\n case 0x2F: // '/'\n case 0x5C: // '\\'\n path = path.slice(i + 1)\n return (path === '..' || path === '.' ? '' : path)\n }\n }\n return (path === '..' || path === '.' ? '' : path)\n}\n","'use strict'\n\n// TODO:\n// * support 1 nested multipart level\n// (see second multipart example here:\n// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)\n// * support limits.fieldNameSize\n// -- this will require modifications to utils.parseParams\n\nconst { Readable } = require('node:stream')\nconst { inherits } = require('node:util')\n\nconst Dicer = require('../../deps/dicer/lib/Dicer')\n\nconst parseParams = require('../utils/parseParams')\nconst decodeText = require('../utils/decodeText')\nconst basename = require('../utils/basename')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_BOUNDARY = /^boundary$/i\nconst RE_FIELD = /^form-data$/i\nconst RE_CHARSET = /^charset$/i\nconst RE_FILENAME = /^filename$/i\nconst RE_NAME = /^name$/i\n\nMultipart.detect = /^multipart\\/form-data/i\nfunction Multipart (boy, cfg) {\n let i\n let len\n const self = this\n let boundary\n const limits = cfg.limits\n const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined))\n const parsedConType = cfg.parsedConType || []\n const defCharset = cfg.defCharset || 'utf8'\n const preservePath = cfg.preservePath\n const fileOpts = { highWaterMark: cfg.fileHwm }\n\n for (i = 0, len = parsedConType.length; i < len; ++i) {\n if (Array.isArray(parsedConType[i]) &&\n RE_BOUNDARY.test(parsedConType[i][0])) {\n boundary = parsedConType[i][1]\n break\n }\n }\n\n function checkFinished () {\n if (nends === 0 && finished && !boy._done) {\n finished = false\n self.end()\n }\n }\n\n if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') }\n\n const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n const fileSizeLimit = getLimit(limits, 'fileSize', Infinity)\n const filesLimit = getLimit(limits, 'files', Infinity)\n const fieldsLimit = getLimit(limits, 'fields', Infinity)\n const partsLimit = getLimit(limits, 'parts', Infinity)\n const headerPairsLimit = getLimit(limits, 'headerPairs', 2000)\n const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024)\n\n let nfiles = 0\n let nfields = 0\n let nends = 0\n let curFile\n let curField\n let finished = false\n\n this._needDrain = false\n this._pause = false\n this._cb = undefined\n this._nparts = 0\n this._boy = boy\n\n const parserCfg = {\n boundary,\n maxHeaderPairs: headerPairsLimit,\n maxHeaderSize: headerSizeLimit,\n partHwm: fileOpts.highWaterMark,\n highWaterMark: cfg.highWaterMark\n }\n\n this.parser = new Dicer(parserCfg)\n this.parser.on('drain', function () {\n self._needDrain = false\n if (self._cb && !self._pause) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }).on('part', function onPart (part) {\n if (++self._nparts > partsLimit) {\n self.parser.removeListener('part', onPart)\n self.parser.on('part', skipPart)\n boy.hitPartsLimit = true\n boy.emit('partsLimit')\n return skipPart(part)\n }\n\n // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let\n // us emit 'end' early since we know the part has ended if we are already\n // seeing the next part\n if (curField) {\n const field = curField\n field.emit('end')\n field.removeAllListeners('end')\n }\n\n part.on('header', function (header) {\n let contype\n let fieldname\n let parsed\n let charset\n let encoding\n let filename\n let nsize = 0\n\n if (header['content-type']) {\n parsed = parseParams(header['content-type'][0])\n if (parsed[0]) {\n contype = parsed[0].toLowerCase()\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_CHARSET.test(parsed[i][0])) {\n charset = parsed[i][1].toLowerCase()\n break\n }\n }\n }\n }\n\n if (contype === undefined) { contype = 'text/plain' }\n if (charset === undefined) { charset = defCharset }\n\n if (header['content-disposition']) {\n parsed = parseParams(header['content-disposition'][0])\n if (!RE_FIELD.test(parsed[0])) { return skipPart(part) }\n for (i = 0, len = parsed.length; i < len; ++i) {\n if (RE_NAME.test(parsed[i][0])) {\n fieldname = parsed[i][1]\n } else if (RE_FILENAME.test(parsed[i][0])) {\n filename = parsed[i][1]\n if (!preservePath) { filename = basename(filename) }\n }\n }\n } else { return skipPart(part) }\n\n if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' }\n\n let onData,\n onEnd\n\n if (isPartAFile(fieldname, contype, filename)) {\n // file/binary field\n if (nfiles === filesLimit) {\n if (!boy.hitFilesLimit) {\n boy.hitFilesLimit = true\n boy.emit('filesLimit')\n }\n return skipPart(part)\n }\n\n ++nfiles\n\n if (boy.listenerCount('file') === 0) {\n self.parser._ignore()\n return\n }\n\n ++nends\n const file = new FileStream(fileOpts)\n curFile = file\n file.on('end', function () {\n --nends\n self._pause = false\n checkFinished()\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n })\n file._read = function (n) {\n if (!self._pause) { return }\n self._pause = false\n if (self._cb && !self._needDrain) {\n const cb = self._cb\n self._cb = undefined\n cb()\n }\n }\n boy.emit('file', fieldname, file, filename, encoding, contype)\n\n onData = function (data) {\n if ((nsize += data.length) > fileSizeLimit) {\n const extralen = fileSizeLimit - nsize + data.length\n if (extralen > 0) { file.push(data.slice(0, extralen)) }\n file.truncated = true\n file.bytesRead = fileSizeLimit\n part.removeAllListeners('data')\n file.emit('limit')\n return\n } else if (!file.push(data)) { self._pause = true }\n\n file.bytesRead = nsize\n }\n\n onEnd = function () {\n curFile = undefined\n file.push(null)\n }\n } else {\n // non-file field\n if (nfields === fieldsLimit) {\n if (!boy.hitFieldsLimit) {\n boy.hitFieldsLimit = true\n boy.emit('fieldsLimit')\n }\n return skipPart(part)\n }\n\n ++nfields\n ++nends\n let buffer = ''\n let truncated = false\n curField = part\n\n onData = function (data) {\n if ((nsize += data.length) > fieldSizeLimit) {\n const extralen = (fieldSizeLimit - (nsize - data.length))\n buffer += data.toString('binary', 0, extralen)\n truncated = true\n part.removeAllListeners('data')\n } else { buffer += data.toString('binary') }\n }\n\n onEnd = function () {\n curField = undefined\n if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) }\n boy.emit('field', fieldname, buffer, false, truncated, encoding, contype)\n --nends\n checkFinished()\n }\n }\n\n /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become\n broken. Streams2/streams3 is a huge black box of confusion, but\n somehow overriding the sync state seems to fix things again (and still\n seems to work for previous node versions).\n */\n part._readableState.sync = false\n\n part.on('data', onData)\n part.on('end', onEnd)\n }).on('error', function (err) {\n if (curFile) { curFile.emit('error', err) }\n })\n }).on('error', function (err) {\n boy.emit('error', err)\n }).on('finish', function () {\n finished = true\n checkFinished()\n })\n}\n\nMultipart.prototype.write = function (chunk, cb) {\n const r = this.parser.write(chunk)\n if (r && !this._pause) {\n cb()\n } else {\n this._needDrain = !r\n this._cb = cb\n }\n}\n\nMultipart.prototype.end = function () {\n const self = this\n\n if (self.parser.writable) {\n self.parser.end()\n } else if (!self._boy._done) {\n process.nextTick(function () {\n self._boy._done = true\n self._boy.emit('finish')\n })\n }\n}\n\nfunction skipPart (part) {\n part.resume()\n}\n\nfunction FileStream (opts) {\n Readable.call(this, opts)\n\n this.bytesRead = 0\n\n this.truncated = false\n}\n\ninherits(FileStream, Readable)\n\nFileStream.prototype._read = function (n) {}\n\nmodule.exports = Multipart\n","'use strict'\n\nconst RE_PLUS = /\\+/g\n\nconst HEX = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n]\n\nfunction Decoder () {\n this.buffer = undefined\n}\nDecoder.prototype.write = function (str) {\n // Replace '+' with ' ' before decoding\n str = str.replace(RE_PLUS, ' ')\n let res = ''\n let i = 0; let p = 0; const len = str.length\n for (; i < len; ++i) {\n if (this.buffer !== undefined) {\n if (!HEX[str.charCodeAt(i)]) {\n res += '%' + this.buffer\n this.buffer = undefined\n --i // retry character\n } else {\n this.buffer += str[i]\n ++p\n if (this.buffer.length === 2) {\n res += String.fromCharCode(parseInt(this.buffer, 16))\n this.buffer = undefined\n }\n }\n } else if (str[i] === '%') {\n if (i > p) {\n res += str.substring(p, i)\n p = i\n }\n this.buffer = ''\n ++p\n }\n }\n if (p < len && this.buffer === undefined) { res += str.substring(p) }\n return res\n}\nDecoder.prototype.reset = function () {\n this.buffer = undefined\n}\n\nmodule.exports = Decoder\n","'use strict'\n\nconst Decoder = require('../utils/Decoder')\nconst decodeText = require('../utils/decodeText')\nconst getLimit = require('../utils/getLimit')\n\nconst RE_CHARSET = /^charset$/i\n\nUrlEncoded.detect = /^application\\/x-www-form-urlencoded/i\nfunction UrlEncoded (boy, cfg) {\n const limits = cfg.limits\n const parsedConType = cfg.parsedConType\n this.boy = boy\n\n this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024)\n this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100)\n this.fieldsLimit = getLimit(limits, 'fields', Infinity)\n\n let charset\n for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var\n if (Array.isArray(parsedConType[i]) &&\n RE_CHARSET.test(parsedConType[i][0])) {\n charset = parsedConType[i][1].toLowerCase()\n break\n }\n }\n\n if (charset === undefined) { charset = cfg.defCharset || 'utf8' }\n\n this.decoder = new Decoder()\n this.charset = charset\n this._fields = 0\n this._state = 'key'\n this._checkingBytes = true\n this._bytesKey = 0\n this._bytesVal = 0\n this._key = ''\n this._val = ''\n this._keyTrunc = false\n this._valTrunc = false\n this._hitLimit = false\n}\n\nUrlEncoded.prototype.write = function (data, cb) {\n if (this._fields === this.fieldsLimit) {\n if (!this.boy.hitFieldsLimit) {\n this.boy.hitFieldsLimit = true\n this.boy.emit('fieldsLimit')\n }\n return cb()\n }\n\n let idxeq; let idxamp; let i; let p = 0; const len = data.length\n\n while (p < len) {\n if (this._state === 'key') {\n idxeq = idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x3D/* = */) {\n idxeq = i\n break\n } else if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesKey }\n }\n\n if (idxeq !== undefined) {\n // key with assignment\n if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) }\n this._state = 'val'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._val = ''\n this._bytesVal = 0\n this._valTrunc = false\n this.decoder.reset()\n\n p = idxeq + 1\n } else if (idxamp !== undefined) {\n // key with no assignment\n ++this._fields\n let key; const keyTrunc = this._keyTrunc\n if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key }\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n if (key.length) {\n this.boy.emit('field', decodeText(key, 'binary', this.charset),\n '',\n keyTrunc,\n false)\n }\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._keyTrunc = true\n }\n } else {\n if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n } else {\n idxamp = undefined\n for (i = p; i < len; ++i) {\n if (!this._checkingBytes) { ++p }\n if (data[i] === 0x26/* & */) {\n idxamp = i\n break\n }\n if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {\n this._hitLimit = true\n break\n } else if (this._checkingBytes) { ++this._bytesVal }\n }\n\n if (idxamp !== undefined) {\n ++this._fields\n if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) }\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n this._state = 'key'\n\n this._hitLimit = false\n this._checkingBytes = true\n this._key = ''\n this._bytesKey = 0\n this._keyTrunc = false\n this.decoder.reset()\n\n p = idxamp + 1\n if (this._fields === this.fieldsLimit) { return cb() }\n } else if (this._hitLimit) {\n // we may not have hit the actual limit if there are encoded bytes...\n if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) }\n p = i\n if ((this._val === '' && this.fieldSizeLimit === 0) ||\n (this._bytesVal = this._val.length) === this.fieldSizeLimit) {\n // yep, we actually did hit the limit\n this._checkingBytes = false\n this._valTrunc = true\n }\n } else {\n if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) }\n p = len\n }\n }\n }\n cb()\n}\n\nUrlEncoded.prototype.end = function () {\n if (this.boy._done) { return }\n\n if (this._state === 'key' && this._key.length > 0) {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n '',\n this._keyTrunc,\n false)\n } else if (this._state === 'val') {\n this.boy.emit('field', decodeText(this._key, 'binary', this.charset),\n decodeText(this._val, 'binary', this.charset),\n this._keyTrunc,\n this._valTrunc)\n }\n this.boy._done = true\n this.boy.emit('finish')\n}\n\nmodule.exports = UrlEncoded\n","'use strict'\n\nconst WritableStream = require('node:stream').Writable\nconst { inherits } = require('node:util')\nconst Dicer = require('../deps/dicer/lib/Dicer')\n\nconst MultipartParser = require('./types/multipart')\nconst UrlencodedParser = require('./types/urlencoded')\nconst parseParams = require('./utils/parseParams')\n\nfunction Busboy (opts) {\n if (!(this instanceof Busboy)) { return new Busboy(opts) }\n\n if (typeof opts !== 'object') {\n throw new TypeError('Busboy expected an options-Object.')\n }\n if (typeof opts.headers !== 'object') {\n throw new TypeError('Busboy expected an options-Object with headers-attribute.')\n }\n if (typeof opts.headers['content-type'] !== 'string') {\n throw new TypeError('Missing Content-Type-header.')\n }\n\n const {\n headers,\n ...streamOptions\n } = opts\n\n this.opts = {\n autoDestroy: false,\n ...streamOptions\n }\n WritableStream.call(this, this.opts)\n\n this._done = false\n this._parser = this.getParserByHeaders(headers)\n this._finished = false\n}\ninherits(Busboy, WritableStream)\n\nBusboy.prototype.emit = function (ev) {\n if (ev === 'finish') {\n if (!this._done) {\n this._parser?.end()\n return\n } else if (this._finished) {\n return\n }\n this._finished = true\n }\n WritableStream.prototype.emit.apply(this, arguments)\n}\n\nBusboy.prototype.getParserByHeaders = function (headers) {\n const parsed = parseParams(headers['content-type'])\n\n const cfg = {\n defCharset: this.opts.defCharset,\n fileHwm: this.opts.fileHwm,\n headers,\n highWaterMark: this.opts.highWaterMark,\n isPartAFile: this.opts.isPartAFile,\n limits: this.opts.limits,\n parsedConType: parsed,\n preservePath: this.opts.preservePath\n }\n\n if (MultipartParser.detect.test(parsed[0])) {\n return new MultipartParser(this, cfg)\n }\n if (UrlencodedParser.detect.test(parsed[0])) {\n return new UrlencodedParser(this, cfg)\n }\n throw new Error('Unsupported Content-Type.')\n}\n\nBusboy.prototype._write = function (chunk, encoding, cb) {\n this._parser.write(chunk, cb)\n}\n\nmodule.exports = Busboy\nmodule.exports.default = Busboy\nmodule.exports.Busboy = Busboy\n\nmodule.exports.Dicer = Dicer\n","'use strict'\n\nconst { MessageChannel, receiveMessageOnPort } = require('worker_threads')\n\nconst corsSafeListedMethods = ['GET', 'HEAD', 'POST']\nconst corsSafeListedMethodsSet = new Set(corsSafeListedMethods)\n\nconst nullBodyStatus = [101, 204, 205, 304]\n\nconst redirectStatus = [301, 302, 303, 307, 308]\nconst redirectStatusSet = new Set(redirectStatus)\n\n// https://fetch.spec.whatwg.org/#block-bad-port\nconst badPorts = [\n '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79',\n '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137',\n '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532',\n '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723',\n '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697',\n '10080'\n]\n\nconst badPortsSet = new Set(badPorts)\n\n// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies\nconst referrerPolicy = [\n '',\n 'no-referrer',\n 'no-referrer-when-downgrade',\n 'same-origin',\n 'origin',\n 'strict-origin',\n 'origin-when-cross-origin',\n 'strict-origin-when-cross-origin',\n 'unsafe-url'\n]\nconst referrerPolicySet = new Set(referrerPolicy)\n\nconst requestRedirect = ['follow', 'manual', 'error']\n\nconst safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE']\nconst safeMethodsSet = new Set(safeMethods)\n\nconst requestMode = ['navigate', 'same-origin', 'no-cors', 'cors']\n\nconst requestCredentials = ['omit', 'same-origin', 'include']\n\nconst requestCache = [\n 'default',\n 'no-store',\n 'reload',\n 'no-cache',\n 'force-cache',\n 'only-if-cached'\n]\n\n// https://fetch.spec.whatwg.org/#request-body-header-name\nconst requestBodyHeader = [\n 'content-encoding',\n 'content-language',\n 'content-location',\n 'content-type',\n // See https://github.com/nodejs/undici/issues/2021\n // 'Content-Length' is a forbidden header name, which is typically\n // removed in the Headers implementation. However, undici doesn't\n // filter out headers, so we add it here.\n 'content-length'\n]\n\n// https://fetch.spec.whatwg.org/#enumdef-requestduplex\nconst requestDuplex = [\n 'half'\n]\n\n// http://fetch.spec.whatwg.org/#forbidden-method\nconst forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK']\nconst forbiddenMethodsSet = new Set(forbiddenMethods)\n\nconst subresource = [\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'manifest',\n 'paintworklet',\n 'script',\n 'style',\n 'track',\n 'video',\n 'xslt',\n ''\n]\nconst subresourceSet = new Set(subresource)\n\n/** @type {globalThis['DOMException']} */\nconst DOMException = globalThis.DOMException ?? (() => {\n // DOMException was only made a global in Node v17.0.0,\n // but fetch supports >= v16.8.\n try {\n atob('~')\n } catch (err) {\n return Object.getPrototypeOf(err).constructor\n }\n})()\n\nlet channel\n\n/** @type {globalThis['structuredClone']} */\nconst structuredClone =\n globalThis.structuredClone ??\n // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js\n // structuredClone was added in v17.0.0, but fetch supports v16.8\n function structuredClone (value, options = undefined) {\n if (arguments.length === 0) {\n throw new TypeError('missing argument')\n }\n\n if (!channel) {\n channel = new MessageChannel()\n }\n channel.port1.unref()\n channel.port2.unref()\n channel.port1.postMessage(value, options?.transfer)\n return receiveMessageOnPort(channel.port2).message\n }\n\nmodule.exports = {\n DOMException,\n structuredClone,\n subresource,\n forbiddenMethods,\n requestBodyHeader,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n redirectStatus,\n corsSafeListedMethods,\n nullBodyStatus,\n safeMethods,\n badPorts,\n requestDuplex,\n subresourceSet,\n badPortsSet,\n redirectStatusSet,\n corsSafeListedMethodsSet,\n safeMethodsSet,\n forbiddenMethodsSet,\n referrerPolicySet\n}\n","'use strict'\n\n// In case of breaking changes, increase the version\n// number to avoid conflicts.\nconst globalOrigin = Symbol.for('undici.globalOrigin.1')\n\nfunction getGlobalOrigin () {\n return globalThis[globalOrigin]\n}\n\nfunction setGlobalOrigin (newOrigin) {\n if (newOrigin === undefined) {\n Object.defineProperty(globalThis, globalOrigin, {\n value: undefined,\n writable: true,\n enumerable: false,\n configurable: false\n })\n\n return\n }\n\n const parsedURL = new URL(newOrigin)\n\n if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') {\n throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)\n }\n\n Object.defineProperty(globalThis, globalOrigin, {\n value: parsedURL,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nmodule.exports = {\n getGlobalOrigin,\n setGlobalOrigin\n}\n","'use strict'\n\nconst { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require('./constants')\nconst { getGlobalOrigin } = require('./global')\nconst { performance } = require('perf_hooks')\nconst { isBlobLike, toUSVString, ReadableStreamFrom } = require('../core/util')\nconst assert = require('assert')\nconst { isUint8Array } = require('util/types')\n\nlet supportedHashes = []\n\n// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable\n/** @type {import('crypto')|undefined} */\nlet crypto\n\ntry {\n crypto = require('crypto')\n const possibleRelevantHashes = ['sha256', 'sha384', 'sha512']\n supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash))\n/* c8 ignore next 3 */\n} catch {\n}\n\nfunction responseURL (response) {\n // https://fetch.spec.whatwg.org/#responses\n // A response has an associated URL. It is a pointer to the last URL\n // in response’s URL list and null if response’s URL list is empty.\n const urlList = response.urlList\n const length = urlList.length\n return length === 0 ? null : urlList[length - 1].toString()\n}\n\n// https://fetch.spec.whatwg.org/#concept-response-location-url\nfunction responseLocationURL (response, requestFragment) {\n // 1. If response’s status is not a redirect status, then return null.\n if (!redirectStatusSet.has(response.status)) {\n return null\n }\n\n // 2. Let location be the result of extracting header list values given\n // `Location` and response’s header list.\n let location = response.headersList.get('location')\n\n // 3. If location is a header value, then set location to the result of\n // parsing location with response’s URL.\n if (location !== null && isValidHeaderValue(location)) {\n location = new URL(location, responseURL(response))\n }\n\n // 4. If location is a URL whose fragment is null, then set location’s\n // fragment to requestFragment.\n if (location && !location.hash) {\n location.hash = requestFragment\n }\n\n // 5. Return location.\n return location\n}\n\n/** @returns {URL} */\nfunction requestCurrentURL (request) {\n return request.urlList[request.urlList.length - 1]\n}\n\nfunction requestBadPort (request) {\n // 1. Let url be request’s current URL.\n const url = requestCurrentURL(request)\n\n // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port,\n // then return blocked.\n if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) {\n return 'blocked'\n }\n\n // 3. Return allowed.\n return 'allowed'\n}\n\nfunction isErrorLike (object) {\n return object instanceof Error || (\n object?.constructor?.name === 'Error' ||\n object?.constructor?.name === 'DOMException'\n )\n}\n\n// Check whether |statusText| is a ByteString and\n// matches the Reason-Phrase token production.\n// RFC 2616: https://tools.ietf.org/html/rfc2616\n// RFC 7230: https://tools.ietf.org/html/rfc7230\n// \"reason-phrase = *( HTAB / SP / VCHAR / obs-text )\"\n// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116\nfunction isValidReasonPhrase (statusText) {\n for (let i = 0; i < statusText.length; ++i) {\n const c = statusText.charCodeAt(i)\n if (\n !(\n (\n c === 0x09 || // HTAB\n (c >= 0x20 && c <= 0x7e) || // SP / VCHAR\n (c >= 0x80 && c <= 0xff)\n ) // obs-text\n )\n ) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n * @param {number} c\n */\nfunction isTokenCharCode (c) {\n switch (c) {\n case 0x22:\n case 0x28:\n case 0x29:\n case 0x2c:\n case 0x2f:\n case 0x3a:\n case 0x3b:\n case 0x3c:\n case 0x3d:\n case 0x3e:\n case 0x3f:\n case 0x40:\n case 0x5b:\n case 0x5c:\n case 0x5d:\n case 0x7b:\n case 0x7d:\n // DQUOTE and \"(),/:;<=>?@[\\]{}\"\n return false\n default:\n // VCHAR %x21-7E\n return c >= 0x21 && c <= 0x7e\n }\n}\n\n/**\n * @param {string} characters\n */\nfunction isValidHTTPToken (characters) {\n if (characters.length === 0) {\n return false\n }\n for (let i = 0; i < characters.length; ++i) {\n if (!isTokenCharCode(characters.charCodeAt(i))) {\n return false\n }\n }\n return true\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-name\n * @param {string} potentialValue\n */\nfunction isValidHeaderName (potentialValue) {\n return isValidHTTPToken(potentialValue)\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#header-value\n * @param {string} potentialValue\n */\nfunction isValidHeaderValue (potentialValue) {\n // - Has no leading or trailing HTTP tab or space bytes.\n // - Contains no 0x00 (NUL) or HTTP newline bytes.\n if (\n potentialValue.startsWith('\\t') ||\n potentialValue.startsWith(' ') ||\n potentialValue.endsWith('\\t') ||\n potentialValue.endsWith(' ')\n ) {\n return false\n }\n\n if (\n potentialValue.includes('\\0') ||\n potentialValue.includes('\\r') ||\n potentialValue.includes('\\n')\n ) {\n return false\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect\nfunction setRequestReferrerPolicyOnRedirect (request, actualResponse) {\n // Given a request request and a response actualResponse, this algorithm\n // updates request’s referrer policy according to the Referrer-Policy\n // header (if any) in actualResponse.\n\n // 1. Let policy be the result of executing § 8.1 Parse a referrer policy\n // from a Referrer-Policy header on actualResponse.\n\n // 8.1 Parse a referrer policy from a Referrer-Policy header\n // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list.\n const { headersList } = actualResponse\n // 2. Let policy be the empty string.\n // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token.\n // 4. Return policy.\n const policyHeader = (headersList.get('referrer-policy') ?? '').split(',')\n\n // Note: As the referrer-policy can contain multiple policies\n // separated by comma, we need to loop through all of them\n // and pick the first valid one.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy\n let policy = ''\n if (policyHeader.length > 0) {\n // The right-most policy takes precedence.\n // The left-most policy is the fallback.\n for (let i = policyHeader.length; i !== 0; i--) {\n const token = policyHeader[i - 1].trim()\n if (referrerPolicyTokens.has(token)) {\n policy = token\n break\n }\n }\n }\n\n // 2. If policy is not the empty string, then set request’s referrer policy to policy.\n if (policy !== '') {\n request.referrerPolicy = policy\n }\n}\n\n// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check\nfunction crossOriginResourcePolicyCheck () {\n // TODO\n return 'allowed'\n}\n\n// https://fetch.spec.whatwg.org/#concept-cors-check\nfunction corsCheck () {\n // TODO\n return 'success'\n}\n\n// https://fetch.spec.whatwg.org/#concept-tao-check\nfunction TAOCheck () {\n // TODO\n return 'success'\n}\n\nfunction appendFetchMetadata (httpRequest) {\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header\n\n // 1. Assert: r’s url is a potentially trustworthy URL.\n // TODO\n\n // 2. Let header be a Structured Header whose value is a token.\n let header = null\n\n // 3. Set header’s value to r’s mode.\n header = httpRequest.mode\n\n // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list.\n httpRequest.headersList.set('sec-fetch-mode', header)\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header\n // TODO\n\n // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header\n // TODO\n}\n\n// https://fetch.spec.whatwg.org/#append-a-request-origin-header\nfunction appendRequestOriginHeader (request) {\n // 1. Let serializedOrigin be the result of byte-serializing a request origin with request.\n let serializedOrigin = request.origin\n\n // 2. If request’s response tainting is \"cors\" or request’s mode is \"websocket\", then append (`Origin`, serializedOrigin) to request’s header list.\n if (request.responseTainting === 'cors' || request.mode === 'websocket') {\n if (serializedOrigin) {\n request.headersList.append('origin', serializedOrigin)\n }\n\n // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then:\n } else if (request.method !== 'GET' && request.method !== 'HEAD') {\n // 1. Switch on request’s referrer policy:\n switch (request.referrerPolicy) {\n case 'no-referrer':\n // Set serializedOrigin to `null`.\n serializedOrigin = null\n break\n case 'no-referrer-when-downgrade':\n case 'strict-origin':\n case 'strict-origin-when-cross-origin':\n // If request’s origin is a tuple origin, its scheme is \"https\", and request’s current URL’s scheme is not \"https\", then set serializedOrigin to `null`.\n if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n case 'same-origin':\n // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`.\n if (!sameOrigin(request, requestCurrentURL(request))) {\n serializedOrigin = null\n }\n break\n default:\n // Do nothing.\n }\n\n if (serializedOrigin) {\n // 2. Append (`Origin`, serializedOrigin) to request’s header list.\n request.headersList.append('origin', serializedOrigin)\n }\n }\n}\n\nfunction coarsenedSharedCurrentTime (crossOriginIsolatedCapability) {\n // TODO\n return performance.now()\n}\n\n// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info\nfunction createOpaqueTimingInfo (timingInfo) {\n return {\n startTime: timingInfo.startTime ?? 0,\n redirectStartTime: 0,\n redirectEndTime: 0,\n postRedirectStartTime: timingInfo.startTime ?? 0,\n finalServiceWorkerStartTime: 0,\n finalNetworkResponseStartTime: 0,\n finalNetworkRequestStartTime: 0,\n endTime: 0,\n encodedBodySize: 0,\n decodedBodySize: 0,\n finalConnectionTimingInfo: null\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#policy-container\nfunction makePolicyContainer () {\n // Note: the fetch spec doesn't make use of embedder policy or CSP list\n return {\n referrerPolicy: 'strict-origin-when-cross-origin'\n }\n}\n\n// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container\nfunction clonePolicyContainer (policyContainer) {\n return {\n referrerPolicy: policyContainer.referrerPolicy\n }\n}\n\n// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer\nfunction determineRequestsReferrer (request) {\n // 1. Let policy be request's referrer policy.\n const policy = request.referrerPolicy\n\n // Note: policy cannot (shouldn't) be null or an empty string.\n assert(policy)\n\n // 2. Let environment be request’s client.\n\n let referrerSource = null\n\n // 3. Switch on request’s referrer:\n if (request.referrer === 'client') {\n // Note: node isn't a browser and doesn't implement document/iframes,\n // so we bypass this step and replace it with our own.\n\n const globalOrigin = getGlobalOrigin()\n\n if (!globalOrigin || globalOrigin.origin === 'null') {\n return 'no-referrer'\n }\n\n // note: we need to clone it as it's mutated\n referrerSource = new URL(globalOrigin)\n } else if (request.referrer instanceof URL) {\n // Let referrerSource be request’s referrer.\n referrerSource = request.referrer\n }\n\n // 4. Let request’s referrerURL be the result of stripping referrerSource for\n // use as a referrer.\n let referrerURL = stripURLForReferrer(referrerSource)\n\n // 5. Let referrerOrigin be the result of stripping referrerSource for use as\n // a referrer, with the origin-only flag set to true.\n const referrerOrigin = stripURLForReferrer(referrerSource, true)\n\n // 6. If the result of serializing referrerURL is a string whose length is\n // greater than 4096, set referrerURL to referrerOrigin.\n if (referrerURL.toString().length > 4096) {\n referrerURL = referrerOrigin\n }\n\n const areSameOrigin = sameOrigin(request, referrerURL)\n const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) &&\n !isURLPotentiallyTrustworthy(request.url)\n\n // 8. Execute the switch statements corresponding to the value of policy:\n switch (policy) {\n case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true)\n case 'unsafe-url': return referrerURL\n case 'same-origin':\n return areSameOrigin ? referrerOrigin : 'no-referrer'\n case 'origin-when-cross-origin':\n return areSameOrigin ? referrerURL : referrerOrigin\n case 'strict-origin-when-cross-origin': {\n const currentURL = requestCurrentURL(request)\n\n // 1. If the origin of referrerURL and the origin of request’s current\n // URL are the same, then return referrerURL.\n if (sameOrigin(referrerURL, currentURL)) {\n return referrerURL\n }\n\n // 2. If referrerURL is a potentially trustworthy URL and request’s\n // current URL is not a potentially trustworthy URL, then return no\n // referrer.\n if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) {\n return 'no-referrer'\n }\n\n // 3. Return referrerOrigin.\n return referrerOrigin\n }\n case 'strict-origin': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n case 'no-referrer-when-downgrade': // eslint-disable-line\n /**\n * 1. If referrerURL is a potentially trustworthy URL and\n * request’s current URL is not a potentially trustworthy URL,\n * then return no referrer.\n * 2. Return referrerOrigin\n */\n\n default: // eslint-disable-line\n return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url\n * @param {URL} url\n * @param {boolean|undefined} originOnly\n */\nfunction stripURLForReferrer (url, originOnly) {\n // 1. Assert: url is a URL.\n assert(url instanceof URL)\n\n // 2. If url’s scheme is a local scheme, then return no referrer.\n if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') {\n return 'no-referrer'\n }\n\n // 3. Set url’s username to the empty string.\n url.username = ''\n\n // 4. Set url’s password to the empty string.\n url.password = ''\n\n // 5. Set url’s fragment to null.\n url.hash = ''\n\n // 6. If the origin-only flag is true, then:\n if (originOnly) {\n // 1. Set url’s path to « the empty string ».\n url.pathname = ''\n\n // 2. Set url’s query to null.\n url.search = ''\n }\n\n // 7. Return url.\n return url\n}\n\nfunction isURLPotentiallyTrustworthy (url) {\n if (!(url instanceof URL)) {\n return false\n }\n\n // If child of about, return true\n if (url.href === 'about:blank' || url.href === 'about:srcdoc') {\n return true\n }\n\n // If scheme is data, return true\n if (url.protocol === 'data:') return true\n\n // If file, return true\n if (url.protocol === 'file:') return true\n\n return isOriginPotentiallyTrustworthy(url.origin)\n\n function isOriginPotentiallyTrustworthy (origin) {\n // If origin is explicitly null, return false\n if (origin == null || origin === 'null') return false\n\n const originAsURL = new URL(origin)\n\n // If secure, return true\n if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') {\n return true\n }\n\n // If localhost or variants, return true\n if (/^127(?:\\.[0-9]+){0,2}\\.[0-9]+$|^\\[(?:0*:)*?:?0*1\\]$/.test(originAsURL.hostname) ||\n (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) ||\n (originAsURL.hostname.endsWith('.localhost'))) {\n return true\n }\n\n // If any other, return false\n return false\n }\n}\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist\n * @param {Uint8Array} bytes\n * @param {string} metadataList\n */\nfunction bytesMatch (bytes, metadataList) {\n // If node is not built with OpenSSL support, we cannot check\n // a request's integrity, so allow it by default (the spec will\n // allow requests if an invalid hash is given, as precedence).\n /* istanbul ignore if: only if node is built with --without-ssl */\n if (crypto === undefined) {\n return true\n }\n\n // 1. Let parsedMetadata be the result of parsing metadataList.\n const parsedMetadata = parseMetadata(metadataList)\n\n // 2. If parsedMetadata is no metadata, return true.\n if (parsedMetadata === 'no metadata') {\n return true\n }\n\n // 3. If response is not eligible for integrity validation, return false.\n // TODO\n\n // 4. If parsedMetadata is the empty set, return true.\n if (parsedMetadata.length === 0) {\n return true\n }\n\n // 5. Let metadata be the result of getting the strongest\n // metadata from parsedMetadata.\n const strongest = getStrongestMetadata(parsedMetadata)\n const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest)\n\n // 6. For each item in metadata:\n for (const item of metadata) {\n // 1. Let algorithm be the alg component of item.\n const algorithm = item.algo\n\n // 2. Let expectedValue be the val component of item.\n const expectedValue = item.hash\n\n // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e\n // \"be liberal with padding\". This is annoying, and it's not even in the spec.\n\n // 3. Let actualValue be the result of applying algorithm to bytes.\n let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64')\n\n if (actualValue[actualValue.length - 1] === '=') {\n if (actualValue[actualValue.length - 2] === '=') {\n actualValue = actualValue.slice(0, -2)\n } else {\n actualValue = actualValue.slice(0, -1)\n }\n }\n\n // 4. If actualValue is a case-sensitive match for expectedValue,\n // return true.\n if (compareBase64Mixed(actualValue, expectedValue)) {\n return true\n }\n }\n\n // 7. Return false.\n return false\n}\n\n// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options\n// https://www.w3.org/TR/CSP2/#source-list-syntax\n// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1\nconst parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\\s|$)( +[!-~]*)?)?/i\n\n/**\n * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata\n * @param {string} metadata\n */\nfunction parseMetadata (metadata) {\n // 1. Let result be the empty set.\n /** @type {{ algo: string, hash: string }[]} */\n const result = []\n\n // 2. Let empty be equal to true.\n let empty = true\n\n // 3. For each token returned by splitting metadata on spaces:\n for (const token of metadata.split(' ')) {\n // 1. Set empty to false.\n empty = false\n\n // 2. Parse token as a hash-with-options.\n const parsedToken = parseHashWithOptions.exec(token)\n\n // 3. If token does not parse, continue to the next token.\n if (\n parsedToken === null ||\n parsedToken.groups === undefined ||\n parsedToken.groups.algo === undefined\n ) {\n // Note: Chromium blocks the request at this point, but Firefox\n // gives a warning that an invalid integrity was given. The\n // correct behavior is to ignore these, and subsequently not\n // check the integrity of the resource.\n continue\n }\n\n // 4. Let algorithm be the hash-algo component of token.\n const algorithm = parsedToken.groups.algo.toLowerCase()\n\n // 5. If algorithm is a hash function recognized by the user\n // agent, add the parsed token to result.\n if (supportedHashes.includes(algorithm)) {\n result.push(parsedToken.groups)\n }\n }\n\n // 4. Return no metadata if empty is true, otherwise return result.\n if (empty === true) {\n return 'no metadata'\n }\n\n return result\n}\n\n/**\n * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList\n */\nfunction getStrongestMetadata (metadataList) {\n // Let algorithm be the algo component of the first item in metadataList.\n // Can be sha256\n let algorithm = metadataList[0].algo\n // If the algorithm is sha512, then it is the strongest\n // and we can return immediately\n if (algorithm[3] === '5') {\n return algorithm\n }\n\n for (let i = 1; i < metadataList.length; ++i) {\n const metadata = metadataList[i]\n // If the algorithm is sha512, then it is the strongest\n // and we can break the loop immediately\n if (metadata.algo[3] === '5') {\n algorithm = 'sha512'\n break\n // If the algorithm is sha384, then a potential sha256 or sha384 is ignored\n } else if (algorithm[3] === '3') {\n continue\n // algorithm is sha256, check if algorithm is sha384 and if so, set it as\n // the strongest\n } else if (metadata.algo[3] === '3') {\n algorithm = 'sha384'\n }\n }\n return algorithm\n}\n\nfunction filterMetadataListByAlgorithm (metadataList, algorithm) {\n if (metadataList.length === 1) {\n return metadataList\n }\n\n let pos = 0\n for (let i = 0; i < metadataList.length; ++i) {\n if (metadataList[i].algo === algorithm) {\n metadataList[pos++] = metadataList[i]\n }\n }\n\n metadataList.length = pos\n\n return metadataList\n}\n\n/**\n * Compares two base64 strings, allowing for base64url\n * in the second string.\n *\n* @param {string} actualValue always base64\n * @param {string} expectedValue base64 or base64url\n * @returns {boolean}\n */\nfunction compareBase64Mixed (actualValue, expectedValue) {\n if (actualValue.length !== expectedValue.length) {\n return false\n }\n for (let i = 0; i < actualValue.length; ++i) {\n if (actualValue[i] !== expectedValue[i]) {\n if (\n (actualValue[i] === '+' && expectedValue[i] === '-') ||\n (actualValue[i] === '/' && expectedValue[i] === '_')\n ) {\n continue\n }\n return false\n }\n }\n\n return true\n}\n\n// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request\nfunction tryUpgradeRequestToAPotentiallyTrustworthyURL (request) {\n // TODO\n}\n\n/**\n * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin}\n * @param {URL} A\n * @param {URL} B\n */\nfunction sameOrigin (A, B) {\n // 1. If A and B are the same opaque origin, then return true.\n if (A.origin === B.origin && A.origin === 'null') {\n return true\n }\n\n // 2. If A and B are both tuple origins and their schemes,\n // hosts, and port are identical, then return true.\n if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) {\n return true\n }\n\n // 3. Return false.\n return false\n}\n\nfunction createDeferredPromise () {\n let res\n let rej\n const promise = new Promise((resolve, reject) => {\n res = resolve\n rej = reject\n })\n\n return { promise, resolve: res, reject: rej }\n}\n\nfunction isAborted (fetchParams) {\n return fetchParams.controller.state === 'aborted'\n}\n\nfunction isCancelled (fetchParams) {\n return fetchParams.controller.state === 'aborted' ||\n fetchParams.controller.state === 'terminated'\n}\n\nconst normalizeMethodRecord = {\n delete: 'DELETE',\n DELETE: 'DELETE',\n get: 'GET',\n GET: 'GET',\n head: 'HEAD',\n HEAD: 'HEAD',\n options: 'OPTIONS',\n OPTIONS: 'OPTIONS',\n post: 'POST',\n POST: 'POST',\n put: 'PUT',\n PUT: 'PUT'\n}\n\n// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`.\nObject.setPrototypeOf(normalizeMethodRecord, null)\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-method-normalize\n * @param {string} method\n */\nfunction normalizeMethod (method) {\n return normalizeMethodRecord[method.toLowerCase()] ?? method\n}\n\n// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string\nfunction serializeJavascriptValueToJSONString (value) {\n // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »).\n const result = JSON.stringify(value)\n\n // 2. If result is undefined, then throw a TypeError.\n if (result === undefined) {\n throw new TypeError('Value is not JSON serializable')\n }\n\n // 3. Assert: result is a string.\n assert(typeof result === 'string')\n\n // 4. Return result.\n return result\n}\n\n// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object\nconst esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))\n\n/**\n * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object\n * @param {() => unknown[]} iterator\n * @param {string} name name of the instance\n * @param {'key'|'value'|'key+value'} kind\n */\nfunction makeIterator (iterator, name, kind) {\n const object = {\n index: 0,\n kind,\n target: iterator\n }\n\n const i = {\n next () {\n // 1. Let interface be the interface for which the iterator prototype object exists.\n\n // 2. Let thisValue be the this value.\n\n // 3. Let object be ? ToObject(thisValue).\n\n // 4. If object is a platform object, then perform a security\n // check, passing:\n\n // 5. If object is not a default iterator object for interface,\n // then throw a TypeError.\n if (Object.getPrototypeOf(this) !== i) {\n throw new TypeError(\n `'next' called on an object that does not implement interface ${name} Iterator.`\n )\n }\n\n // 6. Let index be object’s index.\n // 7. Let kind be object’s kind.\n // 8. Let values be object’s target's value pairs to iterate over.\n const { index, kind, target } = object\n const values = target()\n\n // 9. Let len be the length of values.\n const len = values.length\n\n // 10. If index is greater than or equal to len, then return\n // CreateIterResultObject(undefined, true).\n if (index >= len) {\n return { value: undefined, done: true }\n }\n\n // 11. Let pair be the entry in values at index index.\n const pair = values[index]\n\n // 12. Set object’s index to index + 1.\n object.index = index + 1\n\n // 13. Return the iterator result for pair and kind.\n return iteratorResult(pair, kind)\n },\n // The class string of an iterator prototype object for a given interface is the\n // result of concatenating the identifier of the interface and the string \" Iterator\".\n [Symbol.toStringTag]: `${name} Iterator`\n }\n\n // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%.\n Object.setPrototypeOf(i, esIteratorPrototype)\n // esIteratorPrototype needs to be the prototype of i\n // which is the prototype of an empty object. Yes, it's confusing.\n return Object.setPrototypeOf({}, i)\n}\n\n// https://webidl.spec.whatwg.org/#iterator-result\nfunction iteratorResult (pair, kind) {\n let result\n\n // 1. Let result be a value determined by the value of kind:\n switch (kind) {\n case 'key': {\n // 1. Let idlKey be pair’s key.\n // 2. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 3. result is key.\n result = pair[0]\n break\n }\n case 'value': {\n // 1. Let idlValue be pair’s value.\n // 2. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 3. result is value.\n result = pair[1]\n break\n }\n case 'key+value': {\n // 1. Let idlKey be pair’s key.\n // 2. Let idlValue be pair’s value.\n // 3. Let key be the result of converting idlKey to an\n // ECMAScript value.\n // 4. Let value be the result of converting idlValue to\n // an ECMAScript value.\n // 5. Let array be ! ArrayCreate(2).\n // 6. Call ! CreateDataProperty(array, \"0\", key).\n // 7. Call ! CreateDataProperty(array, \"1\", value).\n // 8. result is array.\n result = pair\n break\n }\n }\n\n // 2. Return CreateIterResultObject(result, false).\n return { value: result, done: false }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#body-fully-read\n */\nasync function fullyReadBody (body, processBody, processBodyError) {\n // 1. If taskDestination is null, then set taskDestination to\n // the result of starting a new parallel queue.\n\n // 2. Let successSteps given a byte sequence bytes be to queue a\n // fetch task to run processBody given bytes, with taskDestination.\n const successSteps = processBody\n\n // 3. Let errorSteps be to queue a fetch task to run processBodyError,\n // with taskDestination.\n const errorSteps = processBodyError\n\n // 4. Let reader be the result of getting a reader for body’s stream.\n // If that threw an exception, then run errorSteps with that\n // exception and return.\n let reader\n\n try {\n reader = body.stream.getReader()\n } catch (e) {\n errorSteps(e)\n return\n }\n\n // 5. Read all bytes from reader, given successSteps and errorSteps.\n try {\n const result = await readAllBytes(reader)\n successSteps(result)\n } catch (e) {\n errorSteps(e)\n }\n}\n\n/** @type {ReadableStream} */\nlet ReadableStream = globalThis.ReadableStream\n\nfunction isReadableStreamLike (stream) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n return stream instanceof ReadableStream || (\n stream[Symbol.toStringTag] === 'ReadableStream' &&\n typeof stream.tee === 'function'\n )\n}\n\nconst MAXIMUM_ARGUMENT_LENGTH = 65535\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-decode\n * @param {number[]|Uint8Array} input\n */\nfunction isomorphicDecode (input) {\n // 1. To isomorphic decode a byte sequence input, return a string whose code point\n // length is equal to input’s length and whose code points have the same values\n // as the values of input’s bytes, in the same order.\n\n if (input.length < MAXIMUM_ARGUMENT_LENGTH) {\n return String.fromCharCode(...input)\n }\n\n return input.reduce((previous, current) => previous + String.fromCharCode(current), '')\n}\n\n/**\n * @param {ReadableStreamController} controller\n */\nfunction readableStreamClose (controller) {\n try {\n controller.close()\n } catch (err) {\n // TODO: add comment explaining why this error occurs.\n if (!err.message.includes('Controller is already closed')) {\n throw err\n }\n }\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#isomorphic-encode\n * @param {string} input\n */\nfunction isomorphicEncode (input) {\n // 1. Assert: input contains no code points greater than U+00FF.\n for (let i = 0; i < input.length; i++) {\n assert(input.charCodeAt(i) <= 0xFF)\n }\n\n // 2. Return a byte sequence whose length is equal to input’s code\n // point length and whose bytes have the same values as the\n // values of input’s code points, in the same order\n return input\n}\n\n/**\n * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes\n * @see https://streams.spec.whatwg.org/#read-loop\n * @param {ReadableStreamDefaultReader} reader\n */\nasync function readAllBytes (reader) {\n const bytes = []\n let byteLength = 0\n\n while (true) {\n const { done, value: chunk } = await reader.read()\n\n if (done) {\n // 1. Call successSteps with bytes.\n return Buffer.concat(bytes, byteLength)\n }\n\n // 1. If chunk is not a Uint8Array object, call failureSteps\n // with a TypeError and abort these steps.\n if (!isUint8Array(chunk)) {\n throw new TypeError('Received non-Uint8Array chunk')\n }\n\n // 2. Append the bytes represented by chunk to bytes.\n bytes.push(chunk)\n byteLength += chunk.length\n\n // 3. Read-loop given reader, bytes, successSteps, and failureSteps.\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#is-local\n * @param {URL} url\n */\nfunction urlIsLocal (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:'\n}\n\n/**\n * @param {string|URL} url\n */\nfunction urlHasHttpsScheme (url) {\n if (typeof url === 'string') {\n return url.startsWith('https:')\n }\n\n return url.protocol === 'https:'\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-scheme\n * @param {URL} url\n */\nfunction urlIsHttpHttpsScheme (url) {\n assert('protocol' in url) // ensure it's a url object\n\n const protocol = url.protocol\n\n return protocol === 'http:' || protocol === 'https:'\n}\n\n/**\n * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0.\n */\nconst hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key))\n\nmodule.exports = {\n isAborted,\n isCancelled,\n createDeferredPromise,\n ReadableStreamFrom,\n toUSVString,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n coarsenedSharedCurrentTime,\n determineRequestsReferrer,\n makePolicyContainer,\n clonePolicyContainer,\n appendFetchMetadata,\n appendRequestOriginHeader,\n TAOCheck,\n corsCheck,\n crossOriginResourcePolicyCheck,\n createOpaqueTimingInfo,\n setRequestReferrerPolicyOnRedirect,\n isValidHTTPToken,\n requestBadPort,\n requestCurrentURL,\n responseURL,\n responseLocationURL,\n isBlobLike,\n isURLPotentiallyTrustworthy,\n isValidReasonPhrase,\n sameOrigin,\n normalizeMethod,\n serializeJavascriptValueToJSONString,\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue,\n hasOwn,\n isErrorLike,\n fullyReadBody,\n bytesMatch,\n isReadableStreamLike,\n readableStreamClose,\n isomorphicEncode,\n isomorphicDecode,\n urlIsLocal,\n urlHasHttpsScheme,\n urlIsHttpHttpsScheme,\n readAllBytes,\n normalizeMethodRecord,\n parseMetadata\n}\n","'use strict'\n\nmodule.exports = {\n kUrl: Symbol('url'),\n kHeaders: Symbol('headers'),\n kSignal: Symbol('signal'),\n kState: Symbol('state'),\n kGuard: Symbol('guard'),\n kRealm: Symbol('realm')\n}\n","'use strict'\n\nconst { types } = require('util')\nconst { hasOwn, toUSVString } = require('./util')\n\n/** @type {import('../../types/webidl').Webidl} */\nconst webidl = {}\nwebidl.converters = {}\nwebidl.util = {}\nwebidl.errors = {}\n\nwebidl.errors.exception = function (message) {\n return new TypeError(`${message.header}: ${message.message}`)\n}\n\nwebidl.errors.conversionFailed = function (context) {\n const plural = context.types.length === 1 ? '' : ' one of'\n const message =\n `${context.argument} could not be converted to` +\n `${plural}: ${context.types.join(', ')}.`\n\n return webidl.errors.exception({\n header: context.prefix,\n message\n })\n}\n\nwebidl.errors.invalidArgument = function (context) {\n return webidl.errors.exception({\n header: context.prefix,\n message: `\"${context.value}\" is an invalid ${context.type}.`\n })\n}\n\n// https://webidl.spec.whatwg.org/#implements\nwebidl.brandCheck = function (V, I, opts = undefined) {\n if (opts?.strict !== false && !(V instanceof I)) {\n throw new TypeError('Illegal invocation')\n } else {\n return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag]\n }\n}\n\nwebidl.argumentLengthCheck = function ({ length }, min, ctx) {\n if (length < min) {\n throw webidl.errors.exception({\n message: `${min} argument${min !== 1 ? 's' : ''} required, ` +\n `but${length ? ' only' : ''} ${length} found.`,\n ...ctx\n })\n }\n}\n\nwebidl.illegalConstructor = function () {\n throw webidl.errors.exception({\n header: 'TypeError',\n message: 'Illegal constructor'\n })\n}\n\n// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values\nwebidl.util.Type = function (V) {\n switch (typeof V) {\n case 'undefined': return 'Undefined'\n case 'boolean': return 'Boolean'\n case 'string': return 'String'\n case 'symbol': return 'Symbol'\n case 'number': return 'Number'\n case 'bigint': return 'BigInt'\n case 'function':\n case 'object': {\n if (V === null) {\n return 'Null'\n }\n\n return 'Object'\n }\n }\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint\nwebidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) {\n let upperBound\n let lowerBound\n\n // 1. If bitLength is 64, then:\n if (bitLength === 64) {\n // 1. Let upperBound be 2^53 − 1.\n upperBound = Math.pow(2, 53) - 1\n\n // 2. If signedness is \"unsigned\", then let lowerBound be 0.\n if (signedness === 'unsigned') {\n lowerBound = 0\n } else {\n // 3. Otherwise let lowerBound be −2^53 + 1.\n lowerBound = Math.pow(-2, 53) + 1\n }\n } else if (signedness === 'unsigned') {\n // 2. Otherwise, if signedness is \"unsigned\", then:\n\n // 1. Let lowerBound be 0.\n lowerBound = 0\n\n // 2. Let upperBound be 2^bitLength − 1.\n upperBound = Math.pow(2, bitLength) - 1\n } else {\n // 3. Otherwise:\n\n // 1. Let lowerBound be -2^bitLength − 1.\n lowerBound = Math.pow(-2, bitLength) - 1\n\n // 2. Let upperBound be 2^bitLength − 1 − 1.\n upperBound = Math.pow(2, bitLength - 1) - 1\n }\n\n // 4. Let x be ? ToNumber(V).\n let x = Number(V)\n\n // 5. If x is −0, then set x to +0.\n if (x === 0) {\n x = 0\n }\n\n // 6. If the conversion is to an IDL type associated\n // with the [EnforceRange] extended attribute, then:\n if (opts.enforceRange === true) {\n // 1. If x is NaN, +∞, or −∞, then throw a TypeError.\n if (\n Number.isNaN(x) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Could not convert ${V} to an integer.`\n })\n }\n\n // 2. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 3. If x < lowerBound or x > upperBound, then\n // throw a TypeError.\n if (x < lowerBound || x > upperBound) {\n throw webidl.errors.exception({\n header: 'Integer conversion',\n message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.`\n })\n }\n\n // 4. Return x.\n return x\n }\n\n // 7. If x is not NaN and the conversion is to an IDL\n // type associated with the [Clamp] extended\n // attribute, then:\n if (!Number.isNaN(x) && opts.clamp === true) {\n // 1. Set x to min(max(x, lowerBound), upperBound).\n x = Math.min(Math.max(x, lowerBound), upperBound)\n\n // 2. Round x to the nearest integer, choosing the\n // even integer if it lies halfway between two,\n // and choosing +0 rather than −0.\n if (Math.floor(x) % 2 === 0) {\n x = Math.floor(x)\n } else {\n x = Math.ceil(x)\n }\n\n // 3. Return x.\n return x\n }\n\n // 8. If x is NaN, +0, +∞, or −∞, then return +0.\n if (\n Number.isNaN(x) ||\n (x === 0 && Object.is(0, x)) ||\n x === Number.POSITIVE_INFINITY ||\n x === Number.NEGATIVE_INFINITY\n ) {\n return 0\n }\n\n // 9. Set x to IntegerPart(x).\n x = webidl.util.IntegerPart(x)\n\n // 10. Set x to x modulo 2^bitLength.\n x = x % Math.pow(2, bitLength)\n\n // 11. If signedness is \"signed\" and x ≥ 2^bitLength − 1,\n // then return x − 2^bitLength.\n if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) {\n return x - Math.pow(2, bitLength)\n }\n\n // 12. Otherwise, return x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart\nwebidl.util.IntegerPart = function (n) {\n // 1. Let r be floor(abs(n)).\n const r = Math.floor(Math.abs(n))\n\n // 2. If n < 0, then return -1 × r.\n if (n < 0) {\n return -1 * r\n }\n\n // 3. Otherwise, return r.\n return r\n}\n\n// https://webidl.spec.whatwg.org/#es-sequence\nwebidl.sequenceConverter = function (converter) {\n return (V) => {\n // 1. If Type(V) is not Object, throw a TypeError.\n if (webidl.util.Type(V) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: `Value of type ${webidl.util.Type(V)} is not an Object.`\n })\n }\n\n // 2. Let method be ? GetMethod(V, @@iterator).\n /** @type {Generator} */\n const method = V?.[Symbol.iterator]?.()\n const seq = []\n\n // 3. If method is undefined, throw a TypeError.\n if (\n method === undefined ||\n typeof method.next !== 'function'\n ) {\n throw webidl.errors.exception({\n header: 'Sequence',\n message: 'Object is not an iterator.'\n })\n }\n\n // https://webidl.spec.whatwg.org/#create-sequence-from-iterable\n while (true) {\n const { done, value } = method.next()\n\n if (done) {\n break\n }\n\n seq.push(converter(value))\n }\n\n return seq\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-to-record\nwebidl.recordConverter = function (keyConverter, valueConverter) {\n return (O) => {\n // 1. If Type(O) is not Object, throw a TypeError.\n if (webidl.util.Type(O) !== 'Object') {\n throw webidl.errors.exception({\n header: 'Record',\n message: `Value of type ${webidl.util.Type(O)} is not an Object.`\n })\n }\n\n // 2. Let result be a new empty instance of record.\n const result = {}\n\n if (!types.isProxy(O)) {\n // Object.keys only returns enumerable properties\n const keys = Object.keys(O)\n\n for (const key of keys) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n\n // 5. Return result.\n return result\n }\n\n // 3. Let keys be ? O.[[OwnPropertyKeys]]().\n const keys = Reflect.ownKeys(O)\n\n // 4. For each key of keys.\n for (const key of keys) {\n // 1. Let desc be ? O.[[GetOwnProperty]](key).\n const desc = Reflect.getOwnPropertyDescriptor(O, key)\n\n // 2. If desc is not undefined and desc.[[Enumerable]] is true:\n if (desc?.enumerable) {\n // 1. Let typedKey be key converted to an IDL value of type K.\n const typedKey = keyConverter(key)\n\n // 2. Let value be ? Get(O, key).\n // 3. Let typedValue be value converted to an IDL value of type V.\n const typedValue = valueConverter(O[key])\n\n // 4. Set result[typedKey] to typedValue.\n result[typedKey] = typedValue\n }\n }\n\n // 5. Return result.\n return result\n }\n}\n\nwebidl.interfaceConverter = function (i) {\n return (V, opts = {}) => {\n if (opts.strict !== false && !(V instanceof i)) {\n throw webidl.errors.exception({\n header: i.name,\n message: `Expected ${V} to be an instance of ${i.name}.`\n })\n }\n\n return V\n }\n}\n\nwebidl.dictionaryConverter = function (converters) {\n return (dictionary) => {\n const type = webidl.util.Type(dictionary)\n const dict = {}\n\n if (type === 'Null' || type === 'Undefined') {\n return dict\n } else if (type !== 'Object') {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Expected ${dictionary} to be one of: Null, Undefined, Object.`\n })\n }\n\n for (const options of converters) {\n const { key, defaultValue, required, converter } = options\n\n if (required === true) {\n if (!hasOwn(dictionary, key)) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `Missing required key \"${key}\".`\n })\n }\n }\n\n let value = dictionary[key]\n const hasDefault = hasOwn(options, 'defaultValue')\n\n // Only use defaultValue if value is undefined and\n // a defaultValue options was provided.\n if (hasDefault && value !== null) {\n value = value ?? defaultValue\n }\n\n // A key can be optional and have no default value.\n // When this happens, do not perform a conversion,\n // and do not assign the key a value.\n if (required || hasDefault || value !== undefined) {\n value = converter(value)\n\n if (\n options.allowedValues &&\n !options.allowedValues.includes(value)\n ) {\n throw webidl.errors.exception({\n header: 'Dictionary',\n message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.`\n })\n }\n\n dict[key] = value\n }\n }\n\n return dict\n }\n}\n\nwebidl.nullableConverter = function (converter) {\n return (V) => {\n if (V === null) {\n return V\n }\n\n return converter(V)\n }\n}\n\n// https://webidl.spec.whatwg.org/#es-DOMString\nwebidl.converters.DOMString = function (V, opts = {}) {\n // 1. If V is null and the conversion is to an IDL type\n // associated with the [LegacyNullToEmptyString]\n // extended attribute, then return the DOMString value\n // that represents the empty string.\n if (V === null && opts.legacyNullToEmptyString) {\n return ''\n }\n\n // 2. Let x be ? ToString(V).\n if (typeof V === 'symbol') {\n throw new TypeError('Could not convert argument of type symbol to string.')\n }\n\n // 3. Return the IDL DOMString value that represents the\n // same sequence of code units as the one the\n // ECMAScript String value x represents.\n return String(V)\n}\n\n// https://webidl.spec.whatwg.org/#es-ByteString\nwebidl.converters.ByteString = function (V) {\n // 1. Let x be ? ToString(V).\n // Note: DOMString converter perform ? ToString(V)\n const x = webidl.converters.DOMString(V)\n\n // 2. If the value of any element of x is greater than\n // 255, then throw a TypeError.\n for (let index = 0; index < x.length; index++) {\n if (x.charCodeAt(index) > 255) {\n throw new TypeError(\n 'Cannot convert argument to a ByteString because the character at ' +\n `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.`\n )\n }\n }\n\n // 3. Return an IDL ByteString value whose length is the\n // length of x, and where the value of each element is\n // the value of the corresponding element of x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-USVString\nwebidl.converters.USVString = toUSVString\n\n// https://webidl.spec.whatwg.org/#es-boolean\nwebidl.converters.boolean = function (V) {\n // 1. Let x be the result of computing ToBoolean(V).\n const x = Boolean(V)\n\n // 2. Return the IDL boolean value that is the one that represents\n // the same truth value as the ECMAScript Boolean value x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-any\nwebidl.converters.any = function (V) {\n return V\n}\n\n// https://webidl.spec.whatwg.org/#es-long-long\nwebidl.converters['long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"signed\").\n const x = webidl.util.ConvertToInt(V, 64, 'signed')\n\n // 2. Return the IDL long long value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long-long\nwebidl.converters['unsigned long long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 64, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 64, 'unsigned')\n\n // 2. Return the IDL unsigned long long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-long\nwebidl.converters['unsigned long'] = function (V) {\n // 1. Let x be ? ConvertToInt(V, 32, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 32, 'unsigned')\n\n // 2. Return the IDL unsigned long value that\n // represents the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#es-unsigned-short\nwebidl.converters['unsigned short'] = function (V, opts) {\n // 1. Let x be ? ConvertToInt(V, 16, \"unsigned\").\n const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts)\n\n // 2. Return the IDL unsigned short value that represents\n // the same numeric value as x.\n return x\n}\n\n// https://webidl.spec.whatwg.org/#idl-ArrayBuffer\nwebidl.converters.ArrayBuffer = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have an\n // [[ArrayBufferData]] internal slot, then throw a\n // TypeError.\n // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances\n // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isAnyArrayBuffer(V)\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${V}`,\n argument: `${V}`,\n types: ['ArrayBuffer']\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V) is true, then throw a\n // TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V) is true, then throw a\n // TypeError.\n // Note: resizable ArrayBuffers are currently a proposal.\n\n // 4. Return the IDL ArrayBuffer value that is a\n // reference to the same object as V.\n return V\n}\n\nwebidl.converters.TypedArray = function (V, T, opts = {}) {\n // 1. Let T be the IDL type V is being converted to.\n\n // 2. If Type(V) is not Object, or V does not have a\n // [[TypedArrayName]] internal slot with a value\n // equal to T’s name, then throw a TypeError.\n if (\n webidl.util.Type(V) !== 'Object' ||\n !types.isTypedArray(V) ||\n V.constructor.name !== T.name\n ) {\n throw webidl.errors.conversionFailed({\n prefix: `${T.name}`,\n argument: `${V}`,\n types: [T.name]\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 4. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable array buffers are currently a proposal\n\n // 5. Return the IDL value of type T that is a reference\n // to the same object as V.\n return V\n}\n\nwebidl.converters.DataView = function (V, opts = {}) {\n // 1. If Type(V) is not Object, or V does not have a\n // [[DataView]] internal slot, then throw a TypeError.\n if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) {\n throw webidl.errors.exception({\n header: 'DataView',\n message: 'Object is not a DataView.'\n })\n }\n\n // 2. If the conversion is not to an IDL type associated\n // with the [AllowShared] extended attribute, and\n // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true,\n // then throw a TypeError.\n if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) {\n throw webidl.errors.exception({\n header: 'ArrayBuffer',\n message: 'SharedArrayBuffer is not allowed.'\n })\n }\n\n // 3. If the conversion is not to an IDL type associated\n // with the [AllowResizable] extended attribute, and\n // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is\n // true, then throw a TypeError.\n // Note: resizable ArrayBuffers are currently a proposal\n\n // 4. Return the IDL DataView value that is a reference\n // to the same object as V.\n return V\n}\n\n// https://webidl.spec.whatwg.org/#BufferSource\nwebidl.converters.BufferSource = function (V, opts = {}) {\n if (types.isAnyArrayBuffer(V)) {\n return webidl.converters.ArrayBuffer(V, opts)\n }\n\n if (types.isTypedArray(V)) {\n return webidl.converters.TypedArray(V, V.constructor)\n }\n\n if (types.isDataView(V)) {\n return webidl.converters.DataView(V, opts)\n }\n\n throw new TypeError(`Could not convert ${V} to a BufferSource.`)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.ByteString\n)\n\nwebidl.converters['sequence>'] = webidl.sequenceConverter(\n webidl.converters['sequence']\n)\n\nwebidl.converters['record'] = webidl.recordConverter(\n webidl.converters.ByteString,\n webidl.converters.ByteString\n)\n\nmodule.exports = {\n webidl\n}\n","const assert = require('assert')\nconst { atob } = require('buffer')\nconst { isomorphicDecode } = require('./util')\n\nconst encoder = new TextEncoder()\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-token-code-point\n */\nconst HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/\nconst HTTP_WHITESPACE_REGEX = /(\\u000A|\\u000D|\\u0009|\\u0020)/ // eslint-disable-line\n/**\n * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point\n */\nconst HTTP_QUOTED_STRING_TOKENS = /[\\u0009|\\u0020-\\u007E|\\u0080-\\u00FF]/ // eslint-disable-line\n\n// https://fetch.spec.whatwg.org/#data-url-processor\n/** @param {URL} dataURL */\nfunction dataURLProcessor (dataURL) {\n // 1. Assert: dataURL’s scheme is \"data\".\n assert(dataURL.protocol === 'data:')\n\n // 2. Let input be the result of running the URL\n // serializer on dataURL with exclude fragment\n // set to true.\n let input = URLSerializer(dataURL, true)\n\n // 3. Remove the leading \"data:\" string from input.\n input = input.slice(5)\n\n // 4. Let position point at the start of input.\n const position = { position: 0 }\n\n // 5. Let mimeType be the result of collecting a\n // sequence of code points that are not equal\n // to U+002C (,), given position.\n let mimeType = collectASequenceOfCodePointsFast(\n ',',\n input,\n position\n )\n\n // 6. Strip leading and trailing ASCII whitespace\n // from mimeType.\n // Undici implementation note: we need to store the\n // length because if the mimetype has spaces removed,\n // the wrong amount will be sliced from the input in\n // step #9\n const mimeTypeLength = mimeType.length\n mimeType = removeASCIIWhitespace(mimeType, true, true)\n\n // 7. If position is past the end of input, then\n // return failure\n if (position.position >= input.length) {\n return 'failure'\n }\n\n // 8. Advance position by 1.\n position.position++\n\n // 9. Let encodedBody be the remainder of input.\n const encodedBody = input.slice(mimeTypeLength + 1)\n\n // 10. Let body be the percent-decoding of encodedBody.\n let body = stringPercentDecode(encodedBody)\n\n // 11. If mimeType ends with U+003B (;), followed by\n // zero or more U+0020 SPACE, followed by an ASCII\n // case-insensitive match for \"base64\", then:\n if (/;(\\u0020){0,}base64$/i.test(mimeType)) {\n // 1. Let stringBody be the isomorphic decode of body.\n const stringBody = isomorphicDecode(body)\n\n // 2. Set body to the forgiving-base64 decode of\n // stringBody.\n body = forgivingBase64(stringBody)\n\n // 3. If body is failure, then return failure.\n if (body === 'failure') {\n return 'failure'\n }\n\n // 4. Remove the last 6 code points from mimeType.\n mimeType = mimeType.slice(0, -6)\n\n // 5. Remove trailing U+0020 SPACE code points from mimeType,\n // if any.\n mimeType = mimeType.replace(/(\\u0020)+$/, '')\n\n // 6. Remove the last U+003B (;) code point from mimeType.\n mimeType = mimeType.slice(0, -1)\n }\n\n // 12. If mimeType starts with U+003B (;), then prepend\n // \"text/plain\" to mimeType.\n if (mimeType.startsWith(';')) {\n mimeType = 'text/plain' + mimeType\n }\n\n // 13. Let mimeTypeRecord be the result of parsing\n // mimeType.\n let mimeTypeRecord = parseMIMEType(mimeType)\n\n // 14. If mimeTypeRecord is failure, then set\n // mimeTypeRecord to text/plain;charset=US-ASCII.\n if (mimeTypeRecord === 'failure') {\n mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII')\n }\n\n // 15. Return a new data: URL struct whose MIME\n // type is mimeTypeRecord and body is body.\n // https://fetch.spec.whatwg.org/#data-url-struct\n return { mimeType: mimeTypeRecord, body }\n}\n\n// https://url.spec.whatwg.org/#concept-url-serializer\n/**\n * @param {URL} url\n * @param {boolean} excludeFragment\n */\nfunction URLSerializer (url, excludeFragment = false) {\n if (!excludeFragment) {\n return url.href\n }\n\n const href = url.href\n const hashLength = url.hash.length\n\n return hashLength === 0 ? href : href.substring(0, href.length - hashLength)\n}\n\n// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points\n/**\n * @param {(char: string) => boolean} condition\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePoints (condition, input, position) {\n // 1. Let result be the empty string.\n let result = ''\n\n // 2. While position doesn’t point past the end of input and the\n // code point at position within input meets the condition condition:\n while (position.position < input.length && condition(input[position.position])) {\n // 1. Append that code point to the end of result.\n result += input[position.position]\n\n // 2. Advance position by 1.\n position.position++\n }\n\n // 3. Return result.\n return result\n}\n\n/**\n * A faster collectASequenceOfCodePoints that only works when comparing a single character.\n * @param {string} char\n * @param {string} input\n * @param {{ position: number }} position\n */\nfunction collectASequenceOfCodePointsFast (char, input, position) {\n const idx = input.indexOf(char, position.position)\n const start = position.position\n\n if (idx === -1) {\n position.position = input.length\n return input.slice(start)\n }\n\n position.position = idx\n return input.slice(start, position.position)\n}\n\n// https://url.spec.whatwg.org/#string-percent-decode\n/** @param {string} input */\nfunction stringPercentDecode (input) {\n // 1. Let bytes be the UTF-8 encoding of input.\n const bytes = encoder.encode(input)\n\n // 2. Return the percent-decoding of bytes.\n return percentDecode(bytes)\n}\n\n// https://url.spec.whatwg.org/#percent-decode\n/** @param {Uint8Array} input */\nfunction percentDecode (input) {\n // 1. Let output be an empty byte sequence.\n /** @type {number[]} */\n const output = []\n\n // 2. For each byte byte in input:\n for (let i = 0; i < input.length; i++) {\n const byte = input[i]\n\n // 1. If byte is not 0x25 (%), then append byte to output.\n if (byte !== 0x25) {\n output.push(byte)\n\n // 2. Otherwise, if byte is 0x25 (%) and the next two bytes\n // after byte in input are not in the ranges\n // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F),\n // and 0x61 (a) to 0x66 (f), all inclusive, append byte\n // to output.\n } else if (\n byte === 0x25 &&\n !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2]))\n ) {\n output.push(0x25)\n\n // 3. Otherwise:\n } else {\n // 1. Let bytePoint be the two bytes after byte in input,\n // decoded, and then interpreted as hexadecimal number.\n const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2])\n const bytePoint = Number.parseInt(nextTwoBytes, 16)\n\n // 2. Append a byte whose value is bytePoint to output.\n output.push(bytePoint)\n\n // 3. Skip the next two bytes in input.\n i += 2\n }\n }\n\n // 3. Return output.\n return Uint8Array.from(output)\n}\n\n// https://mimesniff.spec.whatwg.org/#parse-a-mime-type\n/** @param {string} input */\nfunction parseMIMEType (input) {\n // 1. Remove any leading and trailing HTTP whitespace\n // from input.\n input = removeHTTPWhitespace(input, true, true)\n\n // 2. Let position be a position variable for input,\n // initially pointing at the start of input.\n const position = { position: 0 }\n\n // 3. Let type be the result of collecting a sequence\n // of code points that are not U+002F (/) from\n // input, given position.\n const type = collectASequenceOfCodePointsFast(\n '/',\n input,\n position\n )\n\n // 4. If type is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n // https://mimesniff.spec.whatwg.org/#http-token-code-point\n if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) {\n return 'failure'\n }\n\n // 5. If position is past the end of input, then return\n // failure\n if (position.position > input.length) {\n return 'failure'\n }\n\n // 6. Advance position by 1. (This skips past U+002F (/).)\n position.position++\n\n // 7. Let subtype be the result of collecting a sequence of\n // code points that are not U+003B (;) from input, given\n // position.\n let subtype = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 8. Remove any trailing HTTP whitespace from subtype.\n subtype = removeHTTPWhitespace(subtype, false, true)\n\n // 9. If subtype is the empty string or does not solely\n // contain HTTP token code points, then return failure.\n if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) {\n return 'failure'\n }\n\n const typeLowercase = type.toLowerCase()\n const subtypeLowercase = subtype.toLowerCase()\n\n // 10. Let mimeType be a new MIME type record whose type\n // is type, in ASCII lowercase, and subtype is subtype,\n // in ASCII lowercase.\n // https://mimesniff.spec.whatwg.org/#mime-type\n const mimeType = {\n type: typeLowercase,\n subtype: subtypeLowercase,\n /** @type {Map} */\n parameters: new Map(),\n // https://mimesniff.spec.whatwg.org/#mime-type-essence\n essence: `${typeLowercase}/${subtypeLowercase}`\n }\n\n // 11. While position is not past the end of input:\n while (position.position < input.length) {\n // 1. Advance position by 1. (This skips past U+003B (;).)\n position.position++\n\n // 2. Collect a sequence of code points that are HTTP\n // whitespace from input given position.\n collectASequenceOfCodePoints(\n // https://fetch.spec.whatwg.org/#http-whitespace\n char => HTTP_WHITESPACE_REGEX.test(char),\n input,\n position\n )\n\n // 3. Let parameterName be the result of collecting a\n // sequence of code points that are not U+003B (;)\n // or U+003D (=) from input, given position.\n let parameterName = collectASequenceOfCodePoints(\n (char) => char !== ';' && char !== '=',\n input,\n position\n )\n\n // 4. Set parameterName to parameterName, in ASCII\n // lowercase.\n parameterName = parameterName.toLowerCase()\n\n // 5. If position is not past the end of input, then:\n if (position.position < input.length) {\n // 1. If the code point at position within input is\n // U+003B (;), then continue.\n if (input[position.position] === ';') {\n continue\n }\n\n // 2. Advance position by 1. (This skips past U+003D (=).)\n position.position++\n }\n\n // 6. If position is past the end of input, then break.\n if (position.position > input.length) {\n break\n }\n\n // 7. Let parameterValue be null.\n let parameterValue = null\n\n // 8. If the code point at position within input is\n // U+0022 (\"), then:\n if (input[position.position] === '\"') {\n // 1. Set parameterValue to the result of collecting\n // an HTTP quoted string from input, given position\n // and the extract-value flag.\n parameterValue = collectAnHTTPQuotedString(input, position, true)\n\n // 2. Collect a sequence of code points that are not\n // U+003B (;) from input, given position.\n collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 9. Otherwise:\n } else {\n // 1. Set parameterValue to the result of collecting\n // a sequence of code points that are not U+003B (;)\n // from input, given position.\n parameterValue = collectASequenceOfCodePointsFast(\n ';',\n input,\n position\n )\n\n // 2. Remove any trailing HTTP whitespace from parameterValue.\n parameterValue = removeHTTPWhitespace(parameterValue, false, true)\n\n // 3. If parameterValue is the empty string, then continue.\n if (parameterValue.length === 0) {\n continue\n }\n }\n\n // 10. If all of the following are true\n // - parameterName is not the empty string\n // - parameterName solely contains HTTP token code points\n // - parameterValue solely contains HTTP quoted-string token code points\n // - mimeType’s parameters[parameterName] does not exist\n // then set mimeType’s parameters[parameterName] to parameterValue.\n if (\n parameterName.length !== 0 &&\n HTTP_TOKEN_CODEPOINTS.test(parameterName) &&\n (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) &&\n !mimeType.parameters.has(parameterName)\n ) {\n mimeType.parameters.set(parameterName, parameterValue)\n }\n }\n\n // 12. Return mimeType.\n return mimeType\n}\n\n// https://infra.spec.whatwg.org/#forgiving-base64-decode\n/** @param {string} data */\nfunction forgivingBase64 (data) {\n // 1. Remove all ASCII whitespace from data.\n data = data.replace(/[\\u0009\\u000A\\u000C\\u000D\\u0020]/g, '') // eslint-disable-line\n\n // 2. If data’s code point length divides by 4 leaving\n // no remainder, then:\n if (data.length % 4 === 0) {\n // 1. If data ends with one or two U+003D (=) code points,\n // then remove them from data.\n data = data.replace(/=?=$/, '')\n }\n\n // 3. If data’s code point length divides by 4 leaving\n // a remainder of 1, then return failure.\n if (data.length % 4 === 1) {\n return 'failure'\n }\n\n // 4. If data contains a code point that is not one of\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n // then return failure.\n if (/[^+/0-9A-Za-z]/.test(data)) {\n return 'failure'\n }\n\n const binary = atob(data)\n const bytes = new Uint8Array(binary.length)\n\n for (let byte = 0; byte < binary.length; byte++) {\n bytes[byte] = binary.charCodeAt(byte)\n }\n\n return bytes\n}\n\n// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string\n// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string\n/**\n * @param {string} input\n * @param {{ position: number }} position\n * @param {boolean?} extractValue\n */\nfunction collectAnHTTPQuotedString (input, position, extractValue) {\n // 1. Let positionStart be position.\n const positionStart = position.position\n\n // 2. Let value be the empty string.\n let value = ''\n\n // 3. Assert: the code point at position within input\n // is U+0022 (\").\n assert(input[position.position] === '\"')\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. While true:\n while (true) {\n // 1. Append the result of collecting a sequence of code points\n // that are not U+0022 (\") or U+005C (\\) from input, given\n // position, to value.\n value += collectASequenceOfCodePoints(\n (char) => char !== '\"' && char !== '\\\\',\n input,\n position\n )\n\n // 2. If position is past the end of input, then break.\n if (position.position >= input.length) {\n break\n }\n\n // 3. Let quoteOrBackslash be the code point at position within\n // input.\n const quoteOrBackslash = input[position.position]\n\n // 4. Advance position by 1.\n position.position++\n\n // 5. If quoteOrBackslash is U+005C (\\), then:\n if (quoteOrBackslash === '\\\\') {\n // 1. If position is past the end of input, then append\n // U+005C (\\) to value and break.\n if (position.position >= input.length) {\n value += '\\\\'\n break\n }\n\n // 2. Append the code point at position within input to value.\n value += input[position.position]\n\n // 3. Advance position by 1.\n position.position++\n\n // 6. Otherwise:\n } else {\n // 1. Assert: quoteOrBackslash is U+0022 (\").\n assert(quoteOrBackslash === '\"')\n\n // 2. Break.\n break\n }\n }\n\n // 6. If the extract-value flag is set, then return value.\n if (extractValue) {\n return value\n }\n\n // 7. Return the code points from positionStart to position,\n // inclusive, within input.\n return input.slice(positionStart, position.position)\n}\n\n/**\n * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type\n */\nfunction serializeAMimeType (mimeType) {\n assert(mimeType !== 'failure')\n const { parameters, essence } = mimeType\n\n // 1. Let serialization be the concatenation of mimeType’s\n // type, U+002F (/), and mimeType’s subtype.\n let serialization = essence\n\n // 2. For each name → value of mimeType’s parameters:\n for (let [name, value] of parameters.entries()) {\n // 1. Append U+003B (;) to serialization.\n serialization += ';'\n\n // 2. Append name to serialization.\n serialization += name\n\n // 3. Append U+003D (=) to serialization.\n serialization += '='\n\n // 4. If value does not solely contain HTTP token code\n // points or value is the empty string, then:\n if (!HTTP_TOKEN_CODEPOINTS.test(value)) {\n // 1. Precede each occurence of U+0022 (\") or\n // U+005C (\\) in value with U+005C (\\).\n value = value.replace(/(\\\\|\")/g, '\\\\$1')\n\n // 2. Prepend U+0022 (\") to value.\n value = '\"' + value\n\n // 3. Append U+0022 (\") to value.\n value += '\"'\n }\n\n // 5. Append value to serialization.\n serialization += value\n }\n\n // 3. Return serialization.\n return serialization\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} char\n */\nfunction isHTTPWhiteSpace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === ' '\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#http-whitespace\n * @param {string} str\n */\nfunction removeHTTPWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n * @param {string} char\n */\nfunction isASCIIWhitespace (char) {\n return char === '\\r' || char === '\\n' || char === '\\t' || char === '\\f' || char === ' '\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace\n */\nfunction removeASCIIWhitespace (str, leading = true, trailing = true) {\n let lead = 0\n let trail = str.length - 1\n\n if (leading) {\n for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++);\n }\n\n if (trailing) {\n for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--);\n }\n\n return str.slice(lead, trail + 1)\n}\n\nmodule.exports = {\n dataURLProcessor,\n URLSerializer,\n collectASequenceOfCodePoints,\n collectASequenceOfCodePointsFast,\n stringPercentDecode,\n parseMIMEType,\n collectAnHTTPQuotedString,\n serializeAMimeType\n}\n","'use strict'\n\nconst { Blob, File: NativeFile } = require('buffer')\nconst { types } = require('util')\nconst { kState } = require('./symbols')\nconst { isBlobLike } = require('./util')\nconst { webidl } = require('./webidl')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\nconst { kEnumerableProperty } = require('../core/util')\nconst encoder = new TextEncoder()\n\nclass File extends Blob {\n constructor (fileBits, fileName, options = {}) {\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' })\n\n fileBits = webidl.converters['sequence'](fileBits)\n fileName = webidl.converters.USVString(fileName)\n options = webidl.converters.FilePropertyBag(options)\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n // Note: Blob handles this for us\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // 2. Convert every character in t to ASCII lowercase.\n let t = options.type\n let d\n\n // eslint-disable-next-line no-labels\n substep: {\n if (t) {\n t = parseMIMEType(t)\n\n if (t === 'failure') {\n t = ''\n // eslint-disable-next-line no-labels\n break substep\n }\n\n t = serializeAMimeType(t).toLowerCase()\n }\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n d = options.lastModified\n }\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n super(processBlobParts(fileBits, options), { type: t })\n this[kState] = {\n name: n,\n lastModified: d,\n type: t\n }\n }\n\n get name () {\n webidl.brandCheck(this, File)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, File)\n\n return this[kState].lastModified\n }\n\n get type () {\n webidl.brandCheck(this, File)\n\n return this[kState].type\n }\n}\n\nclass FileLike {\n constructor (blobLike, fileName, options = {}) {\n // TODO: argument idl type check\n\n // The File constructor is invoked with two or three parameters, depending\n // on whether the optional dictionary parameter is used. When the File()\n // constructor is invoked, user agents must run the following steps:\n\n // 1. Let bytes be the result of processing blob parts given fileBits and\n // options.\n\n // 2. Let n be the fileName argument to the constructor.\n const n = fileName\n\n // 3. Process FilePropertyBag dictionary argument by running the following\n // substeps:\n\n // 1. If the type member is provided and is not the empty string, let t\n // be set to the type dictionary member. If t contains any characters\n // outside the range U+0020 to U+007E, then set t to the empty string\n // and return from these substeps.\n // TODO\n const t = options.type\n\n // 2. Convert every character in t to ASCII lowercase.\n // TODO\n\n // 3. If the lastModified member is provided, let d be set to the\n // lastModified dictionary member. If it is not provided, set d to the\n // current date and time represented as the number of milliseconds since\n // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]).\n const d = options.lastModified ?? Date.now()\n\n // 4. Return a new File object F such that:\n // F refers to the bytes byte sequence.\n // F.size is set to the number of total bytes in bytes.\n // F.name is set to n.\n // F.type is set to t.\n // F.lastModified is set to d.\n\n this[kState] = {\n blobLike,\n name: n,\n type: t,\n lastModified: d\n }\n }\n\n stream (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.stream(...args)\n }\n\n arrayBuffer (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.arrayBuffer(...args)\n }\n\n slice (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.slice(...args)\n }\n\n text (...args) {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.text(...args)\n }\n\n get size () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.size\n }\n\n get type () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].blobLike.type\n }\n\n get name () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].name\n }\n\n get lastModified () {\n webidl.brandCheck(this, FileLike)\n\n return this[kState].lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n}\n\nObject.defineProperties(File.prototype, {\n [Symbol.toStringTag]: {\n value: 'File',\n configurable: true\n },\n name: kEnumerableProperty,\n lastModified: kEnumerableProperty\n})\n\nwebidl.converters.Blob = webidl.interfaceConverter(Blob)\n\nwebidl.converters.BlobPart = function (V, opts) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (\n ArrayBuffer.isView(V) ||\n types.isAnyArrayBuffer(V)\n ) {\n return webidl.converters.BufferSource(V, opts)\n }\n }\n\n return webidl.converters.USVString(V, opts)\n}\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.BlobPart\n)\n\n// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag\nwebidl.converters.FilePropertyBag = webidl.dictionaryConverter([\n {\n key: 'lastModified',\n converter: webidl.converters['long long'],\n get defaultValue () {\n return Date.now()\n }\n },\n {\n key: 'type',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'endings',\n converter: (value) => {\n value = webidl.converters.DOMString(value)\n value = value.toLowerCase()\n\n if (value !== 'native') {\n value = 'transparent'\n }\n\n return value\n },\n defaultValue: 'transparent'\n }\n])\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#process-blob-parts\n * @param {(NodeJS.TypedArray|Blob|string)[]} parts\n * @param {{ type: string, endings: string }} options\n */\nfunction processBlobParts (parts, options) {\n // 1. Let bytes be an empty sequence of bytes.\n /** @type {NodeJS.TypedArray[]} */\n const bytes = []\n\n // 2. For each element in parts:\n for (const element of parts) {\n // 1. If element is a USVString, run the following substeps:\n if (typeof element === 'string') {\n // 1. Let s be element.\n let s = element\n\n // 2. If the endings member of options is \"native\", set s\n // to the result of converting line endings to native\n // of element.\n if (options.endings === 'native') {\n s = convertLineEndingsNative(s)\n }\n\n // 3. Append the result of UTF-8 encoding s to bytes.\n bytes.push(encoder.encode(s))\n } else if (\n types.isAnyArrayBuffer(element) ||\n types.isTypedArray(element)\n ) {\n // 2. If element is a BufferSource, get a copy of the\n // bytes held by the buffer source, and append those\n // bytes to bytes.\n if (!element.buffer) { // ArrayBuffer\n bytes.push(new Uint8Array(element))\n } else {\n bytes.push(\n new Uint8Array(element.buffer, element.byteOffset, element.byteLength)\n )\n }\n } else if (isBlobLike(element)) {\n // 3. If element is a Blob, append the bytes it represents\n // to bytes.\n bytes.push(element)\n }\n }\n\n // 3. Return bytes.\n return bytes\n}\n\n/**\n * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native\n * @param {string} s\n */\nfunction convertLineEndingsNative (s) {\n // 1. Let native line ending be be the code point U+000A LF.\n let nativeLineEnding = '\\n'\n\n // 2. If the underlying platform’s conventions are to\n // represent newlines as a carriage return and line feed\n // sequence, set native line ending to the code point\n // U+000D CR followed by the code point U+000A LF.\n if (process.platform === 'win32') {\n nativeLineEnding = '\\r\\n'\n }\n\n return s.replace(/\\r?\\n/g, nativeLineEnding)\n}\n\n// If this function is moved to ./util.js, some tools (such as\n// rollup) will warn about circular dependencies. See:\n// https://github.com/nodejs/undici/issues/1629\nfunction isFileLike (object) {\n return (\n (NativeFile && object instanceof NativeFile) ||\n object instanceof File || (\n object &&\n (typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function') &&\n object[Symbol.toStringTag] === 'File'\n )\n )\n}\n\nmodule.exports = { File, FileLike, isFileLike }\n","'use strict'\n\nconst { isBlobLike, toUSVString, makeIterator } = require('./util')\nconst { kState } = require('./symbols')\nconst { File: UndiciFile, FileLike, isFileLike } = require('./file')\nconst { webidl } = require('./webidl')\nconst { Blob, File: NativeFile } = require('buffer')\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\n\n// https://xhr.spec.whatwg.org/#formdata\nclass FormData {\n constructor (form) {\n if (form !== undefined) {\n throw webidl.errors.conversionFailed({\n prefix: 'FormData constructor',\n argument: 'Argument 1',\n types: ['undefined']\n })\n }\n\n this[kState] = []\n }\n\n append (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? webidl.converters.USVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with\n // name, value, and filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. Append entry to this’s entry list.\n this[kState].push(entry)\n }\n\n delete (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' })\n\n name = webidl.converters.USVString(name)\n\n // The delete(name) method steps are to remove all entries whose name\n // is name from this’s entry list.\n this[kState] = this[kState].filter(entry => entry.name !== name)\n }\n\n get (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return null.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx === -1) {\n return null\n }\n\n // 2. Return the value of the first entry whose name is name from\n // this’s entry list.\n return this[kState][idx].value\n }\n\n getAll (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' })\n\n name = webidl.converters.USVString(name)\n\n // 1. If there is no entry whose name is name in this’s entry list,\n // then return the empty list.\n // 2. Return the values of all entries whose name is name, in order,\n // from this’s entry list.\n return this[kState]\n .filter((entry) => entry.name === name)\n .map((entry) => entry.value)\n }\n\n has (name) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' })\n\n name = webidl.converters.USVString(name)\n\n // The has(name) method steps are to return true if there is an entry\n // whose name is name in this’s entry list; otherwise false.\n return this[kState].findIndex((entry) => entry.name === name) !== -1\n }\n\n set (name, value, filename = undefined) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' })\n\n if (arguments.length === 3 && !isBlobLike(value)) {\n throw new TypeError(\n \"Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'\"\n )\n }\n\n // The set(name, value) and set(name, blobValue, filename) method steps\n // are:\n\n // 1. Let value be value if given; otherwise blobValue.\n\n name = webidl.converters.USVString(name)\n value = isBlobLike(value)\n ? webidl.converters.Blob(value, { strict: false })\n : webidl.converters.USVString(value)\n filename = arguments.length === 3\n ? toUSVString(filename)\n : undefined\n\n // 2. Let entry be the result of creating an entry with name, value, and\n // filename if given.\n const entry = makeEntry(name, value, filename)\n\n // 3. If there are entries in this’s entry list whose name is name, then\n // replace the first such entry with entry and remove the others.\n const idx = this[kState].findIndex((entry) => entry.name === name)\n if (idx !== -1) {\n this[kState] = [\n ...this[kState].slice(0, idx),\n entry,\n ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name)\n ]\n } else {\n // 4. Otherwise, append entry to this’s entry list.\n this[kState].push(entry)\n }\n }\n\n entries () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key+value'\n )\n }\n\n keys () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, FormData)\n\n return makeIterator(\n () => this[kState].map(pair => [pair.name, pair.value]),\n 'FormData',\n 'value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: FormData) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, FormData)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n}\n\nFormData.prototype[Symbol.iterator] = FormData.prototype.entries\n\nObject.defineProperties(FormData.prototype, {\n [Symbol.toStringTag]: {\n value: 'FormData',\n configurable: true\n }\n})\n\n/**\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry\n * @param {string} name\n * @param {string|Blob} value\n * @param {?string} filename\n * @returns\n */\nfunction makeEntry (name, value, filename) {\n // 1. Set name to the result of converting name into a scalar value string.\n // \"To convert a string into a scalar value string, replace any surrogates\n // with U+FFFD.\"\n // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end\n name = Buffer.from(name).toString('utf8')\n\n // 2. If value is a string, then set value to the result of converting\n // value into a scalar value string.\n if (typeof value === 'string') {\n value = Buffer.from(value).toString('utf8')\n } else {\n // 3. Otherwise:\n\n // 1. If value is not a File object, then set value to a new File object,\n // representing the same bytes, whose name attribute value is \"blob\"\n if (!isFileLike(value)) {\n value = value instanceof Blob\n ? new File([value], 'blob', { type: value.type })\n : new FileLike(value, 'blob', { type: value.type })\n }\n\n // 2. If filename is given, then set value to a new File object,\n // representing the same bytes, whose name attribute is filename.\n if (filename !== undefined) {\n /** @type {FilePropertyBag} */\n const options = {\n type: value.type,\n lastModified: value.lastModified\n }\n\n value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile\n ? new File([value], filename, options)\n : new FileLike(value, filename, options)\n }\n }\n\n // 4. Return an entry whose name is name and whose value is value.\n return { name, value }\n}\n\nmodule.exports = { FormData }\n","'use strict'\n\nconst Busboy = require('@fastify/busboy')\nconst util = require('../core/util')\nconst {\n ReadableStreamFrom,\n isBlobLike,\n isReadableStreamLike,\n readableStreamClose,\n createDeferredPromise,\n fullyReadBody\n} = require('./util')\nconst { FormData } = require('./formdata')\nconst { kState } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { DOMException, structuredClone } = require('./constants')\nconst { Blob, File: NativeFile } = require('buffer')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { isErrored } = require('../core/util')\nconst { isUint8Array, isArrayBuffer } = require('util/types')\nconst { File: UndiciFile } = require('./file')\nconst { parseMIMEType, serializeAMimeType } = require('./dataURL')\n\nlet random\ntry {\n const crypto = require('node:crypto')\n random = (max) => crypto.randomInt(0, max)\n} catch {\n random = (max) => Math.floor(Math.random(max))\n}\n\nlet ReadableStream = globalThis.ReadableStream\n\n/** @type {globalThis['File']} */\nconst File = NativeFile ?? UndiciFile\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nfunction extractBody (object, keepalive = false) {\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // 1. Let stream be null.\n let stream = null\n\n // 2. If object is a ReadableStream object, then set stream to object.\n if (object instanceof ReadableStream) {\n stream = object\n } else if (isBlobLike(object)) {\n // 3. Otherwise, if object is a Blob object, set stream to the\n // result of running object’s get stream.\n stream = object.stream()\n } else {\n // 4. Otherwise, set stream to a new ReadableStream object, and set\n // up stream.\n stream = new ReadableStream({\n async pull (controller) {\n controller.enqueue(\n typeof source === 'string' ? textEncoder.encode(source) : source\n )\n queueMicrotask(() => readableStreamClose(controller))\n },\n start () {},\n type: undefined\n })\n }\n\n // 5. Assert: stream is a ReadableStream object.\n assert(isReadableStreamLike(stream))\n\n // 6. Let action be null.\n let action = null\n\n // 7. Let source be null.\n let source = null\n\n // 8. Let length be null.\n let length = null\n\n // 9. Let type be null.\n let type = null\n\n // 10. Switch on object:\n if (typeof object === 'string') {\n // Set source to the UTF-8 encoding of object.\n // Note: setting source to a Uint8Array here breaks some mocking assumptions.\n source = object\n\n // Set type to `text/plain;charset=UTF-8`.\n type = 'text/plain;charset=UTF-8'\n } else if (object instanceof URLSearchParams) {\n // URLSearchParams\n\n // spec says to run application/x-www-form-urlencoded on body.list\n // this is implemented in Node.js as apart of an URLSearchParams instance toString method\n // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490\n // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100\n\n // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list.\n source = object.toString()\n\n // Set type to `application/x-www-form-urlencoded;charset=UTF-8`.\n type = 'application/x-www-form-urlencoded;charset=UTF-8'\n } else if (isArrayBuffer(object)) {\n // BufferSource/ArrayBuffer\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.slice())\n } else if (ArrayBuffer.isView(object)) {\n // BufferSource/ArrayBufferView\n\n // Set source to a copy of the bytes held by object.\n source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength))\n } else if (util.isFormDataLike(object)) {\n const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}`\n const prefix = `--${boundary}\\r\\nContent-Disposition: form-data`\n\n /*! formdata-polyfill. MIT License. Jimmy Wärting */\n const escape = (str) =>\n str.replace(/\\n/g, '%0A').replace(/\\r/g, '%0D').replace(/\"/g, '%22')\n const normalizeLinefeeds = (value) => value.replace(/\\r?\\n|\\r/g, '\\r\\n')\n\n // Set action to this step: run the multipart/form-data\n // encoding algorithm, with object’s entry list and UTF-8.\n // - This ensures that the body is immutable and can't be changed afterwords\n // - That the content-length is calculated in advance.\n // - And that all parts are pre-encoded and ready to be sent.\n\n const blobParts = []\n const rn = new Uint8Array([13, 10]) // '\\r\\n'\n length = 0\n let hasUnknownSizeValue = false\n\n for (const [name, value] of object) {\n if (typeof value === 'string') {\n const chunk = textEncoder.encode(prefix +\n `; name=\"${escape(normalizeLinefeeds(name))}\"` +\n `\\r\\n\\r\\n${normalizeLinefeeds(value)}\\r\\n`)\n blobParts.push(chunk)\n length += chunk.byteLength\n } else {\n const chunk = textEncoder.encode(`${prefix}; name=\"${escape(normalizeLinefeeds(name))}\"` +\n (value.name ? `; filename=\"${escape(value.name)}\"` : '') + '\\r\\n' +\n `Content-Type: ${\n value.type || 'application/octet-stream'\n }\\r\\n\\r\\n`)\n blobParts.push(chunk, value, rn)\n if (typeof value.size === 'number') {\n length += chunk.byteLength + value.size + rn.byteLength\n } else {\n hasUnknownSizeValue = true\n }\n }\n }\n\n const chunk = textEncoder.encode(`--${boundary}--`)\n blobParts.push(chunk)\n length += chunk.byteLength\n if (hasUnknownSizeValue) {\n length = null\n }\n\n // Set source to object.\n source = object\n\n action = async function * () {\n for (const part of blobParts) {\n if (part.stream) {\n yield * part.stream()\n } else {\n yield part\n }\n }\n }\n\n // Set type to `multipart/form-data; boundary=`,\n // followed by the multipart/form-data boundary string generated\n // by the multipart/form-data encoding algorithm.\n type = 'multipart/form-data; boundary=' + boundary\n } else if (isBlobLike(object)) {\n // Blob\n\n // Set source to object.\n source = object\n\n // Set length to object’s size.\n length = object.size\n\n // If object’s type attribute is not the empty byte sequence, set\n // type to its value.\n if (object.type) {\n type = object.type\n }\n } else if (typeof object[Symbol.asyncIterator] === 'function') {\n // If keepalive is true, then throw a TypeError.\n if (keepalive) {\n throw new TypeError('keepalive')\n }\n\n // If object is disturbed or locked, then throw a TypeError.\n if (util.isDisturbed(object) || object.locked) {\n throw new TypeError(\n 'Response body object should not be disturbed or locked'\n )\n }\n\n stream =\n object instanceof ReadableStream ? object : ReadableStreamFrom(object)\n }\n\n // 11. If source is a byte sequence, then set action to a\n // step that returns source and length to source’s length.\n if (typeof source === 'string' || util.isBuffer(source)) {\n length = Buffer.byteLength(source)\n }\n\n // 12. If action is non-null, then run these steps in in parallel:\n if (action != null) {\n // Run action.\n let iterator\n stream = new ReadableStream({\n async start () {\n iterator = action(object)[Symbol.asyncIterator]()\n },\n async pull (controller) {\n const { value, done } = await iterator.next()\n if (done) {\n // When running action is done, close stream.\n queueMicrotask(() => {\n controller.close()\n })\n } else {\n // Whenever one or more bytes are available and stream is not errored,\n // enqueue a Uint8Array wrapping an ArrayBuffer containing the available\n // bytes into stream.\n if (!isErrored(stream)) {\n controller.enqueue(new Uint8Array(value))\n }\n }\n return controller.desiredSize > 0\n },\n async cancel (reason) {\n await iterator.return()\n },\n type: undefined\n })\n }\n\n // 13. Let body be a body whose stream is stream, source is source,\n // and length is length.\n const body = { stream, source, length }\n\n // 14. Return (body, type).\n return [body, type]\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit-safely-extract\nfunction safelyExtractBody (object, keepalive = false) {\n if (!ReadableStream) {\n // istanbul ignore next\n ReadableStream = require('stream/web').ReadableStream\n }\n\n // To safely extract a body and a `Content-Type` value from\n // a byte sequence or BodyInit object object, run these steps:\n\n // 1. If object is a ReadableStream object, then:\n if (object instanceof ReadableStream) {\n // Assert: object is neither disturbed nor locked.\n // istanbul ignore next\n assert(!util.isDisturbed(object), 'The body has already been consumed.')\n // istanbul ignore next\n assert(!object.locked, 'The stream is locked.')\n }\n\n // 2. Return the results of extracting object.\n return extractBody(object, keepalive)\n}\n\nfunction cloneBody (body) {\n // To clone a body body, run these steps:\n\n // https://fetch.spec.whatwg.org/#concept-body-clone\n\n // 1. Let « out1, out2 » be the result of teeing body’s stream.\n const [out1, out2] = body.stream.tee()\n const out2Clone = structuredClone(out2, { transfer: [out2] })\n // This, for whatever reasons, unrefs out2Clone which allows\n // the process to exit by itself.\n const [, finalClone] = out2Clone.tee()\n\n // 2. Set body’s stream to out1.\n body.stream = out1\n\n // 3. Return a body whose stream is out2 and other members are copied from body.\n return {\n stream: finalClone,\n length: body.length,\n source: body.source\n }\n}\n\nasync function * consumeBody (body) {\n if (body) {\n if (isUint8Array(body)) {\n yield body\n } else {\n const stream = body.stream\n\n if (util.isDisturbed(stream)) {\n throw new TypeError('The body has already been consumed.')\n }\n\n if (stream.locked) {\n throw new TypeError('The stream is locked.')\n }\n\n // Compat.\n stream[kBodyUsed] = true\n\n yield * stream\n }\n }\n}\n\nfunction throwIfAborted (state) {\n if (state.aborted) {\n throw new DOMException('The operation was aborted.', 'AbortError')\n }\n}\n\nfunction bodyMixinMethods (instance) {\n const methods = {\n blob () {\n // The blob() method steps are to return the result of\n // running consume body with this and the following step\n // given a byte sequence bytes: return a Blob whose\n // contents are bytes and whose type attribute is this’s\n // MIME type.\n return specConsumeBody(this, (bytes) => {\n let mimeType = bodyMimeType(this)\n\n if (mimeType === 'failure') {\n mimeType = ''\n } else if (mimeType) {\n mimeType = serializeAMimeType(mimeType)\n }\n\n // Return a Blob whose contents are bytes and type attribute\n // is mimeType.\n return new Blob([bytes], { type: mimeType })\n }, instance)\n },\n\n arrayBuffer () {\n // The arrayBuffer() method steps are to return the result\n // of running consume body with this and the following step\n // given a byte sequence bytes: return a new ArrayBuffer\n // whose contents are bytes.\n return specConsumeBody(this, (bytes) => {\n return new Uint8Array(bytes).buffer\n }, instance)\n },\n\n text () {\n // The text() method steps are to return the result of running\n // consume body with this and UTF-8 decode.\n return specConsumeBody(this, utf8DecodeBytes, instance)\n },\n\n json () {\n // The json() method steps are to return the result of running\n // consume body with this and parse JSON from bytes.\n return specConsumeBody(this, parseJSONFromBytes, instance)\n },\n\n async formData () {\n webidl.brandCheck(this, instance)\n\n throwIfAborted(this[kState])\n\n const contentType = this.headers.get('Content-Type')\n\n // If mimeType’s essence is \"multipart/form-data\", then:\n if (/multipart\\/form-data/.test(contentType)) {\n const headers = {}\n for (const [key, value] of this.headers) headers[key.toLowerCase()] = value\n\n const responseFormData = new FormData()\n\n let busboy\n\n try {\n busboy = new Busboy({\n headers,\n preservePath: true\n })\n } catch (err) {\n throw new DOMException(`${err}`, 'AbortError')\n }\n\n busboy.on('field', (name, value) => {\n responseFormData.append(name, value)\n })\n busboy.on('file', (name, value, filename, encoding, mimeType) => {\n const chunks = []\n\n if (encoding === 'base64' || encoding.toLowerCase() === 'base64') {\n let base64chunk = ''\n\n value.on('data', (chunk) => {\n base64chunk += chunk.toString().replace(/[\\r\\n]/gm, '')\n\n const end = base64chunk.length - base64chunk.length % 4\n chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64'))\n\n base64chunk = base64chunk.slice(end)\n })\n value.on('end', () => {\n chunks.push(Buffer.from(base64chunk, 'base64'))\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n } else {\n value.on('data', (chunk) => {\n chunks.push(chunk)\n })\n value.on('end', () => {\n responseFormData.append(name, new File(chunks, filename, { type: mimeType }))\n })\n }\n })\n\n const busboyResolve = new Promise((resolve, reject) => {\n busboy.on('finish', resolve)\n busboy.on('error', (err) => reject(new TypeError(err)))\n })\n\n if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk)\n busboy.end()\n await busboyResolve\n\n return responseFormData\n } else if (/application\\/x-www-form-urlencoded/.test(contentType)) {\n // Otherwise, if mimeType’s essence is \"application/x-www-form-urlencoded\", then:\n\n // 1. Let entries be the result of parsing bytes.\n let entries\n try {\n let text = ''\n // application/x-www-form-urlencoded parser will keep the BOM.\n // https://url.spec.whatwg.org/#concept-urlencoded-parser\n // Note that streaming decoder is stateful and cannot be reused\n const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true })\n\n for await (const chunk of consumeBody(this[kState].body)) {\n if (!isUint8Array(chunk)) {\n throw new TypeError('Expected Uint8Array chunk')\n }\n text += streamingDecoder.decode(chunk, { stream: true })\n }\n text += streamingDecoder.decode()\n entries = new URLSearchParams(text)\n } catch (err) {\n // istanbul ignore next: Unclear when new URLSearchParams can fail on a string.\n // 2. If entries is failure, then throw a TypeError.\n throw Object.assign(new TypeError(), { cause: err })\n }\n\n // 3. Return a new FormData object whose entries are entries.\n const formData = new FormData()\n for (const [name, value] of entries) {\n formData.append(name, value)\n }\n return formData\n } else {\n // Wait a tick before checking if the request has been aborted.\n // Otherwise, a TypeError can be thrown when an AbortError should.\n await Promise.resolve()\n\n throwIfAborted(this[kState])\n\n // Otherwise, throw a TypeError.\n throw webidl.errors.exception({\n header: `${instance.name}.formData`,\n message: 'Could not parse content as FormData.'\n })\n }\n }\n }\n\n return methods\n}\n\nfunction mixinBody (prototype) {\n Object.assign(prototype.prototype, bodyMixinMethods(prototype))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-consume-body\n * @param {Response|Request} object\n * @param {(value: unknown) => unknown} convertBytesToJSValue\n * @param {Response|Request} instance\n */\nasync function specConsumeBody (object, convertBytesToJSValue, instance) {\n webidl.brandCheck(object, instance)\n\n throwIfAborted(object[kState])\n\n // 1. If object is unusable, then return a promise rejected\n // with a TypeError.\n if (bodyUnusable(object[kState].body)) {\n throw new TypeError('Body is unusable')\n }\n\n // 2. Let promise be a new promise.\n const promise = createDeferredPromise()\n\n // 3. Let errorSteps given error be to reject promise with error.\n const errorSteps = (error) => promise.reject(error)\n\n // 4. Let successSteps given a byte sequence data be to resolve\n // promise with the result of running convertBytesToJSValue\n // with data. If that threw an exception, then run errorSteps\n // with that exception.\n const successSteps = (data) => {\n try {\n promise.resolve(convertBytesToJSValue(data))\n } catch (e) {\n errorSteps(e)\n }\n }\n\n // 5. If object’s body is null, then run successSteps with an\n // empty byte sequence.\n if (object[kState].body == null) {\n successSteps(new Uint8Array())\n return promise.promise\n }\n\n // 6. Otherwise, fully read object’s body given successSteps,\n // errorSteps, and object’s relevant global object.\n await fullyReadBody(object[kState].body, successSteps, errorSteps)\n\n // 7. Return promise.\n return promise.promise\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction bodyUnusable (body) {\n // An object including the Body interface mixin is\n // said to be unusable if its body is non-null and\n // its body’s stream is disturbed or locked.\n return body != null && (body.stream.locked || util.isDisturbed(body.stream))\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#utf-8-decode\n * @param {Buffer} buffer\n */\nfunction utf8DecodeBytes (buffer) {\n if (buffer.length === 0) {\n return ''\n }\n\n // 1. Let buffer be the result of peeking three bytes from\n // ioQueue, converted to a byte sequence.\n\n // 2. If buffer is 0xEF 0xBB 0xBF, then read three\n // bytes from ioQueue. (Do nothing with those bytes.)\n if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {\n buffer = buffer.subarray(3)\n }\n\n // 3. Process a queue with an instance of UTF-8’s\n // decoder, ioQueue, output, and \"replacement\".\n const output = textDecoder.decode(buffer)\n\n // 4. Return output.\n return output\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value\n * @param {Uint8Array} bytes\n */\nfunction parseJSONFromBytes (bytes) {\n return JSON.parse(utf8DecodeBytes(bytes))\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-body-mime-type\n * @param {import('./response').Response|import('./request').Request} object\n */\nfunction bodyMimeType (object) {\n const { headersList } = object[kState]\n const contentType = headersList.get('content-type')\n\n if (contentType === null) {\n return 'failure'\n }\n\n return parseMIMEType(contentType)\n}\n\nmodule.exports = {\n extractBody,\n safelyExtractBody,\n cloneBody,\n mixinBody\n}\n","'use strict'\n\nconst {\n InvalidArgumentError,\n NotSupportedError\n} = require('./errors')\nconst assert = require('assert')\nconst { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require('./symbols')\nconst util = require('./util')\n\n// tokenRegExp and headerCharRegex have been lifted from\n// https://github.com/nodejs/node/blob/main/lib/_http_common.js\n\n/**\n * Verifies that the given val is a valid HTTP token\n * per the rules defined in RFC 7230\n * See https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nconst tokenRegExp = /^[\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]+$/\n\n/**\n * Matches if val contains an invalid field-vchar\n * field-value = *( field-content / obs-fold )\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n */\nconst headerCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/\n\n// Verifies that a given path is valid does not contain control chars \\x00 to \\x20\nconst invalidPathRegex = /[^\\u0021-\\u00ff]/\n\nconst kHandler = Symbol('handler')\n\nconst channels = {}\n\nlet extractBody\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.create = diagnosticsChannel.channel('undici:request:create')\n channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent')\n channels.headers = diagnosticsChannel.channel('undici:request:headers')\n channels.trailers = diagnosticsChannel.channel('undici:request:trailers')\n channels.error = diagnosticsChannel.channel('undici:request:error')\n} catch {\n channels.create = { hasSubscribers: false }\n channels.bodySent = { hasSubscribers: false }\n channels.headers = { hasSubscribers: false }\n channels.trailers = { hasSubscribers: false }\n channels.error = { hasSubscribers: false }\n}\n\nclass Request {\n constructor (origin, {\n path,\n method,\n body,\n headers,\n query,\n idempotent,\n blocking,\n upgrade,\n headersTimeout,\n bodyTimeout,\n reset,\n throwOnError,\n expectContinue\n }, handler) {\n if (typeof path !== 'string') {\n throw new InvalidArgumentError('path must be a string')\n } else if (\n path[0] !== '/' &&\n !(path.startsWith('http://') || path.startsWith('https://')) &&\n method !== 'CONNECT'\n ) {\n throw new InvalidArgumentError('path must be an absolute URL or start with a slash')\n } else if (invalidPathRegex.exec(path) !== null) {\n throw new InvalidArgumentError('invalid request path')\n }\n\n if (typeof method !== 'string') {\n throw new InvalidArgumentError('method must be a string')\n } else if (tokenRegExp.exec(method) === null) {\n throw new InvalidArgumentError('invalid request method')\n }\n\n if (upgrade && typeof upgrade !== 'string') {\n throw new InvalidArgumentError('upgrade must be a string')\n }\n\n if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('invalid headersTimeout')\n }\n\n if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('invalid bodyTimeout')\n }\n\n if (reset != null && typeof reset !== 'boolean') {\n throw new InvalidArgumentError('invalid reset')\n }\n\n if (expectContinue != null && typeof expectContinue !== 'boolean') {\n throw new InvalidArgumentError('invalid expectContinue')\n }\n\n this.headersTimeout = headersTimeout\n\n this.bodyTimeout = bodyTimeout\n\n this.throwOnError = throwOnError === true\n\n this.method = method\n\n this.abort = null\n\n if (body == null) {\n this.body = null\n } else if (util.isStream(body)) {\n this.body = body\n\n const rState = this.body._readableState\n if (!rState || !rState.autoDestroy) {\n this.endHandler = function autoDestroy () {\n util.destroy(this)\n }\n this.body.on('end', this.endHandler)\n }\n\n this.errorHandler = err => {\n if (this.abort) {\n this.abort(err)\n } else {\n this.error = err\n }\n }\n this.body.on('error', this.errorHandler)\n } else if (util.isBuffer(body)) {\n this.body = body.byteLength ? body : null\n } else if (ArrayBuffer.isView(body)) {\n this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null\n } else if (body instanceof ArrayBuffer) {\n this.body = body.byteLength ? Buffer.from(body) : null\n } else if (typeof body === 'string') {\n this.body = body.length ? Buffer.from(body) : null\n } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) {\n this.body = body\n } else {\n throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable')\n }\n\n this.completed = false\n\n this.aborted = false\n\n this.upgrade = upgrade || null\n\n this.path = query ? util.buildURL(path, query) : path\n\n this.origin = origin\n\n this.idempotent = idempotent == null\n ? method === 'HEAD' || method === 'GET'\n : idempotent\n\n this.blocking = blocking == null ? false : blocking\n\n this.reset = reset == null ? null : reset\n\n this.host = null\n\n this.contentLength = null\n\n this.contentType = null\n\n this.headers = ''\n\n // Only for H2\n this.expectContinue = expectContinue != null ? expectContinue : false\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(this, headers[i], headers[i + 1])\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(this, key, headers[key])\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n if (util.isFormDataLike(this.body)) {\n if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) {\n throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.')\n }\n\n if (!extractBody) {\n extractBody = require('../fetch/body.js').extractBody\n }\n\n const [bodyStream, contentType] = extractBody(body)\n if (this.contentType == null) {\n this.contentType = contentType\n this.headers += `content-type: ${contentType}\\r\\n`\n }\n this.body = bodyStream.stream\n this.contentLength = bodyStream.length\n } else if (util.isBlobLike(body) && this.contentType == null && body.type) {\n this.contentType = body.type\n this.headers += `content-type: ${body.type}\\r\\n`\n }\n\n util.validateHandler(handler, method, upgrade)\n\n this.servername = util.getServerName(this.host)\n\n this[kHandler] = handler\n\n if (channels.create.hasSubscribers) {\n channels.create.publish({ request: this })\n }\n }\n\n onBodySent (chunk) {\n if (this[kHandler].onBodySent) {\n try {\n return this[kHandler].onBodySent(chunk)\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onRequestSent () {\n if (channels.bodySent.hasSubscribers) {\n channels.bodySent.publish({ request: this })\n }\n\n if (this[kHandler].onRequestSent) {\n try {\n return this[kHandler].onRequestSent()\n } catch (err) {\n this.abort(err)\n }\n }\n }\n\n onConnect (abort) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (this.error) {\n abort(this.error)\n } else {\n this.abort = abort\n return this[kHandler].onConnect(abort)\n }\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n assert(!this.aborted)\n assert(!this.completed)\n\n if (channels.headers.hasSubscribers) {\n channels.headers.publish({ request: this, response: { statusCode, headers, statusText } })\n }\n\n try {\n return this[kHandler].onHeaders(statusCode, headers, resume, statusText)\n } catch (err) {\n this.abort(err)\n }\n }\n\n onData (chunk) {\n assert(!this.aborted)\n assert(!this.completed)\n\n try {\n return this[kHandler].onData(chunk)\n } catch (err) {\n this.abort(err)\n return false\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n assert(!this.aborted)\n assert(!this.completed)\n\n return this[kHandler].onUpgrade(statusCode, headers, socket)\n }\n\n onComplete (trailers) {\n this.onFinally()\n\n assert(!this.aborted)\n\n this.completed = true\n if (channels.trailers.hasSubscribers) {\n channels.trailers.publish({ request: this, trailers })\n }\n\n try {\n return this[kHandler].onComplete(trailers)\n } catch (err) {\n // TODO (fix): This might be a bad idea?\n this.onError(err)\n }\n }\n\n onError (error) {\n this.onFinally()\n\n if (channels.error.hasSubscribers) {\n channels.error.publish({ request: this, error })\n }\n\n if (this.aborted) {\n return\n }\n this.aborted = true\n\n return this[kHandler].onError(error)\n }\n\n onFinally () {\n if (this.errorHandler) {\n this.body.off('error', this.errorHandler)\n this.errorHandler = null\n }\n\n if (this.endHandler) {\n this.body.off('end', this.endHandler)\n this.endHandler = null\n }\n }\n\n // TODO: adjust to support H2\n addHeader (key, value) {\n processHeader(this, key, value)\n return this\n }\n\n static [kHTTP1BuildRequest] (origin, opts, handler) {\n // TODO: Migrate header parsing here, to make Requests\n // HTTP agnostic\n return new Request(origin, opts, handler)\n }\n\n static [kHTTP2BuildRequest] (origin, opts, handler) {\n const headers = opts.headers\n opts = { ...opts, headers: null }\n\n const request = new Request(origin, opts, handler)\n\n request.headers = {}\n\n if (Array.isArray(headers)) {\n if (headers.length % 2 !== 0) {\n throw new InvalidArgumentError('headers array must be even')\n }\n for (let i = 0; i < headers.length; i += 2) {\n processHeader(request, headers[i], headers[i + 1], true)\n }\n } else if (headers && typeof headers === 'object') {\n const keys = Object.keys(headers)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n processHeader(request, key, headers[key], true)\n }\n } else if (headers != null) {\n throw new InvalidArgumentError('headers must be an object or an array')\n }\n\n return request\n }\n\n static [kHTTP2CopyHeaders] (raw) {\n const rawHeaders = raw.split('\\r\\n')\n const headers = {}\n\n for (const header of rawHeaders) {\n const [key, value] = header.split(': ')\n\n if (value == null || value.length === 0) continue\n\n if (headers[key]) headers[key] += `,${value}`\n else headers[key] = value\n }\n\n return headers\n }\n}\n\nfunction processHeaderValue (key, val, skipAppend) {\n if (val && typeof val === 'object') {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n val = val != null ? `${val}` : ''\n\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n\n return skipAppend ? val : `${key}: ${val}\\r\\n`\n}\n\nfunction processHeader (request, key, val, skipAppend = false) {\n if (val && (typeof val === 'object' && !Array.isArray(val))) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n } else if (val === undefined) {\n return\n }\n\n if (\n request.host === null &&\n key.length === 4 &&\n key.toLowerCase() === 'host'\n ) {\n if (headerCharRegex.exec(val) !== null) {\n throw new InvalidArgumentError(`invalid ${key} header`)\n }\n // Consumed by Client\n request.host = val\n } else if (\n request.contentLength === null &&\n key.length === 14 &&\n key.toLowerCase() === 'content-length'\n ) {\n request.contentLength = parseInt(val, 10)\n if (!Number.isFinite(request.contentLength)) {\n throw new InvalidArgumentError('invalid content-length header')\n }\n } else if (\n request.contentType === null &&\n key.length === 12 &&\n key.toLowerCase() === 'content-type'\n ) {\n request.contentType = val\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n } else if (\n key.length === 17 &&\n key.toLowerCase() === 'transfer-encoding'\n ) {\n throw new InvalidArgumentError('invalid transfer-encoding header')\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'connection'\n ) {\n const value = typeof val === 'string' ? val.toLowerCase() : null\n if (value !== 'close' && value !== 'keep-alive') {\n throw new InvalidArgumentError('invalid connection header')\n } else if (value === 'close') {\n request.reset = true\n }\n } else if (\n key.length === 10 &&\n key.toLowerCase() === 'keep-alive'\n ) {\n throw new InvalidArgumentError('invalid keep-alive header')\n } else if (\n key.length === 7 &&\n key.toLowerCase() === 'upgrade'\n ) {\n throw new InvalidArgumentError('invalid upgrade header')\n } else if (\n key.length === 6 &&\n key.toLowerCase() === 'expect'\n ) {\n throw new NotSupportedError('expect header not supported')\n } else if (tokenRegExp.exec(key) === null) {\n throw new InvalidArgumentError('invalid header key')\n } else {\n if (Array.isArray(val)) {\n for (let i = 0; i < val.length; i++) {\n if (skipAppend) {\n if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}`\n else request.headers[key] = processHeaderValue(key, val[i], skipAppend)\n } else {\n request.headers += processHeaderValue(key, val[i])\n }\n }\n } else {\n if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend)\n else request.headers += processHeaderValue(key, val)\n }\n }\n}\n\nmodule.exports = Request\n","'use strict'\n\nconst EventEmitter = require('events')\n\nclass Dispatcher extends EventEmitter {\n dispatch () {\n throw new Error('not implemented')\n }\n\n close () {\n throw new Error('not implemented')\n }\n\n destroy () {\n throw new Error('not implemented')\n }\n}\n\nmodule.exports = Dispatcher\n","'use strict'\n\nconst Dispatcher = require('./dispatcher')\nconst {\n ClientDestroyedError,\n ClientClosedError,\n InvalidArgumentError\n} = require('./core/errors')\nconst { kDestroy, kClose, kDispatch, kInterceptors } = require('./core/symbols')\n\nconst kDestroyed = Symbol('destroyed')\nconst kClosed = Symbol('closed')\nconst kOnDestroyed = Symbol('onDestroyed')\nconst kOnClosed = Symbol('onClosed')\nconst kInterceptedDispatch = Symbol('Intercepted Dispatch')\n\nclass DispatcherBase extends Dispatcher {\n constructor () {\n super()\n\n this[kDestroyed] = false\n this[kOnDestroyed] = null\n this[kClosed] = false\n this[kOnClosed] = []\n }\n\n get destroyed () {\n return this[kDestroyed]\n }\n\n get closed () {\n return this[kClosed]\n }\n\n get interceptors () {\n return this[kInterceptors]\n }\n\n set interceptors (newInterceptors) {\n if (newInterceptors) {\n for (let i = newInterceptors.length - 1; i >= 0; i--) {\n const interceptor = this[kInterceptors][i]\n if (typeof interceptor !== 'function') {\n throw new InvalidArgumentError('interceptor must be an function')\n }\n }\n }\n\n this[kInterceptors] = newInterceptors\n }\n\n close (callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.close((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n queueMicrotask(() => callback(new ClientDestroyedError(), null))\n return\n }\n\n if (this[kClosed]) {\n if (this[kOnClosed]) {\n this[kOnClosed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n this[kClosed] = true\n this[kOnClosed].push(callback)\n\n const onClosed = () => {\n const callbacks = this[kOnClosed]\n this[kOnClosed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kClose]()\n .then(() => this.destroy())\n .then(() => {\n queueMicrotask(onClosed)\n })\n }\n\n destroy (err, callback) {\n if (typeof err === 'function') {\n callback = err\n err = null\n }\n\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n this.destroy(err, (err, data) => {\n return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data)\n })\n })\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (this[kDestroyed]) {\n if (this[kOnDestroyed]) {\n this[kOnDestroyed].push(callback)\n } else {\n queueMicrotask(() => callback(null, null))\n }\n return\n }\n\n if (!err) {\n err = new ClientDestroyedError()\n }\n\n this[kDestroyed] = true\n this[kOnDestroyed] = this[kOnDestroyed] || []\n this[kOnDestroyed].push(callback)\n\n const onDestroyed = () => {\n const callbacks = this[kOnDestroyed]\n this[kOnDestroyed] = null\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](null, null)\n }\n }\n\n // Should not error.\n this[kDestroy](err).then(() => {\n queueMicrotask(onDestroyed)\n })\n }\n\n [kInterceptedDispatch] (opts, handler) {\n if (!this[kInterceptors] || this[kInterceptors].length === 0) {\n this[kInterceptedDispatch] = this[kDispatch]\n return this[kDispatch](opts, handler)\n }\n\n let dispatch = this[kDispatch].bind(this)\n for (let i = this[kInterceptors].length - 1; i >= 0; i--) {\n dispatch = this[kInterceptors][i](dispatch)\n }\n this[kInterceptedDispatch] = dispatch\n return dispatch(opts, handler)\n }\n\n dispatch (opts, handler) {\n if (!handler || typeof handler !== 'object') {\n throw new InvalidArgumentError('handler must be an object')\n }\n\n try {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object.')\n }\n\n if (this[kDestroyed] || this[kOnDestroyed]) {\n throw new ClientDestroyedError()\n }\n\n if (this[kClosed]) {\n throw new ClientClosedError()\n }\n\n return this[kInterceptedDispatch](opts, handler)\n } catch (err) {\n if (typeof handler.onError !== 'function') {\n throw new InvalidArgumentError('invalid onError method')\n }\n\n handler.onError(err)\n\n return false\n }\n }\n}\n\nmodule.exports = DispatcherBase\n","'use strict'\n\nconst net = require('net')\nconst assert = require('assert')\nconst util = require('./util')\nconst { InvalidArgumentError, ConnectTimeoutError } = require('./errors')\n\nlet tls // include tls conditionally since it is not always available\n\n// TODO: session re-use does not wait for the first\n// connection to resolve the session and might therefore\n// resolve the same servername multiple times even when\n// re-use is enabled.\n\nlet SessionCache\n// FIXME: remove workaround when the Node bug is fixed\n// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\nif (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) {\n SessionCache = class WeakSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n this._sessionRegistry = new global.FinalizationRegistry((key) => {\n if (this._sessionCache.size < this._maxCachedSessions) {\n return\n }\n\n const ref = this._sessionCache.get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this._sessionCache.delete(key)\n }\n })\n }\n\n get (sessionKey) {\n const ref = this._sessionCache.get(sessionKey)\n return ref ? ref.deref() : null\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n this._sessionCache.set(sessionKey, new WeakRef(session))\n this._sessionRegistry.register(session, sessionKey)\n }\n }\n} else {\n SessionCache = class SimpleSessionCache {\n constructor (maxCachedSessions) {\n this._maxCachedSessions = maxCachedSessions\n this._sessionCache = new Map()\n }\n\n get (sessionKey) {\n return this._sessionCache.get(sessionKey)\n }\n\n set (sessionKey, session) {\n if (this._maxCachedSessions === 0) {\n return\n }\n\n if (this._sessionCache.size >= this._maxCachedSessions) {\n // remove the oldest session\n const { value: oldestKey } = this._sessionCache.keys().next()\n this._sessionCache.delete(oldestKey)\n }\n\n this._sessionCache.set(sessionKey, session)\n }\n }\n}\n\nfunction buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) {\n if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) {\n throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero')\n }\n\n const options = { path: socketPath, ...opts }\n const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions)\n timeout = timeout == null ? 10e3 : timeout\n allowH2 = allowH2 != null ? allowH2 : false\n return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) {\n let socket\n if (protocol === 'https:') {\n if (!tls) {\n tls = require('tls')\n }\n servername = servername || options.servername || util.getServerName(host) || null\n\n const sessionKey = servername || hostname\n const session = sessionCache.get(sessionKey) || null\n\n assert(sessionKey)\n\n socket = tls.connect({\n highWaterMark: 16384, // TLS in node can't have bigger HWM anyway...\n ...options,\n servername,\n session,\n localAddress,\n // TODO(HTTP/2): Add support for h2c\n ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'],\n socket: httpSocket, // upgrade socket connection\n port: port || 443,\n host: hostname\n })\n\n socket\n .on('session', function (session) {\n // TODO (fix): Can a session become invalid once established? Don't think so?\n sessionCache.set(sessionKey, session)\n })\n } else {\n assert(!httpSocket, 'httpSocket can only be sent on TLS update')\n socket = net.connect({\n highWaterMark: 64 * 1024, // Same as nodejs fs streams.\n ...options,\n localAddress,\n port: port || 80,\n host: hostname\n })\n }\n\n // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket\n if (options.keepAlive == null || options.keepAlive) {\n const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay\n socket.setKeepAlive(true, keepAliveInitialDelay)\n }\n\n const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout)\n\n socket\n .setNoDelay(true)\n .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(null, this)\n }\n })\n .on('error', function (err) {\n cancelTimeout()\n\n if (callback) {\n const cb = callback\n callback = null\n cb(err)\n }\n })\n\n return socket\n }\n}\n\nfunction setupTimeout (onConnectTimeout, timeout) {\n if (!timeout) {\n return () => {}\n }\n\n let s1 = null\n let s2 = null\n const timeoutId = setTimeout(() => {\n // setImmediate is added to make sure that we priotorise socket error events over timeouts\n s1 = setImmediate(() => {\n if (process.platform === 'win32') {\n // Windows needs an extra setImmediate probably due to implementation differences in the socket logic\n s2 = setImmediate(() => onConnectTimeout())\n } else {\n onConnectTimeout()\n }\n })\n }, timeout)\n return () => {\n clearTimeout(timeoutId)\n clearImmediate(s1)\n clearImmediate(s2)\n }\n}\n\nfunction onConnectTimeout (socket) {\n util.destroy(socket, new ConnectTimeoutError())\n}\n\nmodule.exports = buildConnector\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.enumToMap = void 0;\nfunction enumToMap(obj) {\n const res = {};\n Object.keys(obj).forEach((key) => {\n const value = obj[key];\n if (typeof value === 'number') {\n res[key] = value;\n }\n });\n return res;\n}\nexports.enumToMap = enumToMap;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0;\nconst utils_1 = require(\"./utils\");\n// C headers\nvar ERROR;\n(function (ERROR) {\n ERROR[ERROR[\"OK\"] = 0] = \"OK\";\n ERROR[ERROR[\"INTERNAL\"] = 1] = \"INTERNAL\";\n ERROR[ERROR[\"STRICT\"] = 2] = \"STRICT\";\n ERROR[ERROR[\"LF_EXPECTED\"] = 3] = \"LF_EXPECTED\";\n ERROR[ERROR[\"UNEXPECTED_CONTENT_LENGTH\"] = 4] = \"UNEXPECTED_CONTENT_LENGTH\";\n ERROR[ERROR[\"CLOSED_CONNECTION\"] = 5] = \"CLOSED_CONNECTION\";\n ERROR[ERROR[\"INVALID_METHOD\"] = 6] = \"INVALID_METHOD\";\n ERROR[ERROR[\"INVALID_URL\"] = 7] = \"INVALID_URL\";\n ERROR[ERROR[\"INVALID_CONSTANT\"] = 8] = \"INVALID_CONSTANT\";\n ERROR[ERROR[\"INVALID_VERSION\"] = 9] = \"INVALID_VERSION\";\n ERROR[ERROR[\"INVALID_HEADER_TOKEN\"] = 10] = \"INVALID_HEADER_TOKEN\";\n ERROR[ERROR[\"INVALID_CONTENT_LENGTH\"] = 11] = \"INVALID_CONTENT_LENGTH\";\n ERROR[ERROR[\"INVALID_CHUNK_SIZE\"] = 12] = \"INVALID_CHUNK_SIZE\";\n ERROR[ERROR[\"INVALID_STATUS\"] = 13] = \"INVALID_STATUS\";\n ERROR[ERROR[\"INVALID_EOF_STATE\"] = 14] = \"INVALID_EOF_STATE\";\n ERROR[ERROR[\"INVALID_TRANSFER_ENCODING\"] = 15] = \"INVALID_TRANSFER_ENCODING\";\n ERROR[ERROR[\"CB_MESSAGE_BEGIN\"] = 16] = \"CB_MESSAGE_BEGIN\";\n ERROR[ERROR[\"CB_HEADERS_COMPLETE\"] = 17] = \"CB_HEADERS_COMPLETE\";\n ERROR[ERROR[\"CB_MESSAGE_COMPLETE\"] = 18] = \"CB_MESSAGE_COMPLETE\";\n ERROR[ERROR[\"CB_CHUNK_HEADER\"] = 19] = \"CB_CHUNK_HEADER\";\n ERROR[ERROR[\"CB_CHUNK_COMPLETE\"] = 20] = \"CB_CHUNK_COMPLETE\";\n ERROR[ERROR[\"PAUSED\"] = 21] = \"PAUSED\";\n ERROR[ERROR[\"PAUSED_UPGRADE\"] = 22] = \"PAUSED_UPGRADE\";\n ERROR[ERROR[\"PAUSED_H2_UPGRADE\"] = 23] = \"PAUSED_H2_UPGRADE\";\n ERROR[ERROR[\"USER\"] = 24] = \"USER\";\n})(ERROR = exports.ERROR || (exports.ERROR = {}));\nvar TYPE;\n(function (TYPE) {\n TYPE[TYPE[\"BOTH\"] = 0] = \"BOTH\";\n TYPE[TYPE[\"REQUEST\"] = 1] = \"REQUEST\";\n TYPE[TYPE[\"RESPONSE\"] = 2] = \"RESPONSE\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\nvar FLAGS;\n(function (FLAGS) {\n FLAGS[FLAGS[\"CONNECTION_KEEP_ALIVE\"] = 1] = \"CONNECTION_KEEP_ALIVE\";\n FLAGS[FLAGS[\"CONNECTION_CLOSE\"] = 2] = \"CONNECTION_CLOSE\";\n FLAGS[FLAGS[\"CONNECTION_UPGRADE\"] = 4] = \"CONNECTION_UPGRADE\";\n FLAGS[FLAGS[\"CHUNKED\"] = 8] = \"CHUNKED\";\n FLAGS[FLAGS[\"UPGRADE\"] = 16] = \"UPGRADE\";\n FLAGS[FLAGS[\"CONTENT_LENGTH\"] = 32] = \"CONTENT_LENGTH\";\n FLAGS[FLAGS[\"SKIPBODY\"] = 64] = \"SKIPBODY\";\n FLAGS[FLAGS[\"TRAILING\"] = 128] = \"TRAILING\";\n // 1 << 8 is unused\n FLAGS[FLAGS[\"TRANSFER_ENCODING\"] = 512] = \"TRANSFER_ENCODING\";\n})(FLAGS = exports.FLAGS || (exports.FLAGS = {}));\nvar LENIENT_FLAGS;\n(function (LENIENT_FLAGS) {\n LENIENT_FLAGS[LENIENT_FLAGS[\"HEADERS\"] = 1] = \"HEADERS\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"CHUNKED_LENGTH\"] = 2] = \"CHUNKED_LENGTH\";\n LENIENT_FLAGS[LENIENT_FLAGS[\"KEEP_ALIVE\"] = 4] = \"KEEP_ALIVE\";\n})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {}));\nvar METHODS;\n(function (METHODS) {\n METHODS[METHODS[\"DELETE\"] = 0] = \"DELETE\";\n METHODS[METHODS[\"GET\"] = 1] = \"GET\";\n METHODS[METHODS[\"HEAD\"] = 2] = \"HEAD\";\n METHODS[METHODS[\"POST\"] = 3] = \"POST\";\n METHODS[METHODS[\"PUT\"] = 4] = \"PUT\";\n /* pathological */\n METHODS[METHODS[\"CONNECT\"] = 5] = \"CONNECT\";\n METHODS[METHODS[\"OPTIONS\"] = 6] = \"OPTIONS\";\n METHODS[METHODS[\"TRACE\"] = 7] = \"TRACE\";\n /* WebDAV */\n METHODS[METHODS[\"COPY\"] = 8] = \"COPY\";\n METHODS[METHODS[\"LOCK\"] = 9] = \"LOCK\";\n METHODS[METHODS[\"MKCOL\"] = 10] = \"MKCOL\";\n METHODS[METHODS[\"MOVE\"] = 11] = \"MOVE\";\n METHODS[METHODS[\"PROPFIND\"] = 12] = \"PROPFIND\";\n METHODS[METHODS[\"PROPPATCH\"] = 13] = \"PROPPATCH\";\n METHODS[METHODS[\"SEARCH\"] = 14] = \"SEARCH\";\n METHODS[METHODS[\"UNLOCK\"] = 15] = \"UNLOCK\";\n METHODS[METHODS[\"BIND\"] = 16] = \"BIND\";\n METHODS[METHODS[\"REBIND\"] = 17] = \"REBIND\";\n METHODS[METHODS[\"UNBIND\"] = 18] = \"UNBIND\";\n METHODS[METHODS[\"ACL\"] = 19] = \"ACL\";\n /* subversion */\n METHODS[METHODS[\"REPORT\"] = 20] = \"REPORT\";\n METHODS[METHODS[\"MKACTIVITY\"] = 21] = \"MKACTIVITY\";\n METHODS[METHODS[\"CHECKOUT\"] = 22] = \"CHECKOUT\";\n METHODS[METHODS[\"MERGE\"] = 23] = \"MERGE\";\n /* upnp */\n METHODS[METHODS[\"M-SEARCH\"] = 24] = \"M-SEARCH\";\n METHODS[METHODS[\"NOTIFY\"] = 25] = \"NOTIFY\";\n METHODS[METHODS[\"SUBSCRIBE\"] = 26] = \"SUBSCRIBE\";\n METHODS[METHODS[\"UNSUBSCRIBE\"] = 27] = \"UNSUBSCRIBE\";\n /* RFC-5789 */\n METHODS[METHODS[\"PATCH\"] = 28] = \"PATCH\";\n METHODS[METHODS[\"PURGE\"] = 29] = \"PURGE\";\n /* CalDAV */\n METHODS[METHODS[\"MKCALENDAR\"] = 30] = \"MKCALENDAR\";\n /* RFC-2068, section 19.6.1.2 */\n METHODS[METHODS[\"LINK\"] = 31] = \"LINK\";\n METHODS[METHODS[\"UNLINK\"] = 32] = \"UNLINK\";\n /* icecast */\n METHODS[METHODS[\"SOURCE\"] = 33] = \"SOURCE\";\n /* RFC-7540, section 11.6 */\n METHODS[METHODS[\"PRI\"] = 34] = \"PRI\";\n /* RFC-2326 RTSP */\n METHODS[METHODS[\"DESCRIBE\"] = 35] = \"DESCRIBE\";\n METHODS[METHODS[\"ANNOUNCE\"] = 36] = \"ANNOUNCE\";\n METHODS[METHODS[\"SETUP\"] = 37] = \"SETUP\";\n METHODS[METHODS[\"PLAY\"] = 38] = \"PLAY\";\n METHODS[METHODS[\"PAUSE\"] = 39] = \"PAUSE\";\n METHODS[METHODS[\"TEARDOWN\"] = 40] = \"TEARDOWN\";\n METHODS[METHODS[\"GET_PARAMETER\"] = 41] = \"GET_PARAMETER\";\n METHODS[METHODS[\"SET_PARAMETER\"] = 42] = \"SET_PARAMETER\";\n METHODS[METHODS[\"REDIRECT\"] = 43] = \"REDIRECT\";\n METHODS[METHODS[\"RECORD\"] = 44] = \"RECORD\";\n /* RAOP */\n METHODS[METHODS[\"FLUSH\"] = 45] = \"FLUSH\";\n})(METHODS = exports.METHODS || (exports.METHODS = {}));\nexports.METHODS_HTTP = [\n METHODS.DELETE,\n METHODS.GET,\n METHODS.HEAD,\n METHODS.POST,\n METHODS.PUT,\n METHODS.CONNECT,\n METHODS.OPTIONS,\n METHODS.TRACE,\n METHODS.COPY,\n METHODS.LOCK,\n METHODS.MKCOL,\n METHODS.MOVE,\n METHODS.PROPFIND,\n METHODS.PROPPATCH,\n METHODS.SEARCH,\n METHODS.UNLOCK,\n METHODS.BIND,\n METHODS.REBIND,\n METHODS.UNBIND,\n METHODS.ACL,\n METHODS.REPORT,\n METHODS.MKACTIVITY,\n METHODS.CHECKOUT,\n METHODS.MERGE,\n METHODS['M-SEARCH'],\n METHODS.NOTIFY,\n METHODS.SUBSCRIBE,\n METHODS.UNSUBSCRIBE,\n METHODS.PATCH,\n METHODS.PURGE,\n METHODS.MKCALENDAR,\n METHODS.LINK,\n METHODS.UNLINK,\n METHODS.PRI,\n // TODO(indutny): should we allow it with HTTP?\n METHODS.SOURCE,\n];\nexports.METHODS_ICE = [\n METHODS.SOURCE,\n];\nexports.METHODS_RTSP = [\n METHODS.OPTIONS,\n METHODS.DESCRIBE,\n METHODS.ANNOUNCE,\n METHODS.SETUP,\n METHODS.PLAY,\n METHODS.PAUSE,\n METHODS.TEARDOWN,\n METHODS.GET_PARAMETER,\n METHODS.SET_PARAMETER,\n METHODS.REDIRECT,\n METHODS.RECORD,\n METHODS.FLUSH,\n // For AirPlay\n METHODS.GET,\n METHODS.POST,\n];\nexports.METHOD_MAP = utils_1.enumToMap(METHODS);\nexports.H_METHOD_MAP = {};\nObject.keys(exports.METHOD_MAP).forEach((key) => {\n if (/^H/.test(key)) {\n exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key];\n }\n});\nvar FINISH;\n(function (FINISH) {\n FINISH[FINISH[\"SAFE\"] = 0] = \"SAFE\";\n FINISH[FINISH[\"SAFE_WITH_CB\"] = 1] = \"SAFE_WITH_CB\";\n FINISH[FINISH[\"UNSAFE\"] = 2] = \"UNSAFE\";\n})(FINISH = exports.FINISH || (exports.FINISH = {}));\nexports.ALPHA = [];\nfor (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) {\n // Upper case\n exports.ALPHA.push(String.fromCharCode(i));\n // Lower case\n exports.ALPHA.push(String.fromCharCode(i + 0x20));\n}\nexports.NUM_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n};\nexports.HEX_MAP = {\n 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,\n 5: 5, 6: 6, 7: 7, 8: 8, 9: 9,\n A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF,\n a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf,\n};\nexports.NUM = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n];\nexports.ALPHANUM = exports.ALPHA.concat(exports.NUM);\nexports.MARK = ['-', '_', '.', '!', '~', '*', '\\'', '(', ')'];\nexports.USERINFO_CHARS = exports.ALPHANUM\n .concat(exports.MARK)\n .concat(['%', ';', ':', '&', '=', '+', '$', ',']);\n// TODO(indutny): use RFC\nexports.STRICT_URL_CHAR = [\n '!', '\"', '$', '%', '&', '\\'',\n '(', ')', '*', '+', ',', '-', '.', '/',\n ':', ';', '<', '=', '>',\n '@', '[', '\\\\', ']', '^', '_',\n '`',\n '{', '|', '}', '~',\n].concat(exports.ALPHANUM);\nexports.URL_CHAR = exports.STRICT_URL_CHAR\n .concat(['\\t', '\\f']);\n// All characters with 0x80 bit set to 1\nfor (let i = 0x80; i <= 0xff; i++) {\n exports.URL_CHAR.push(i);\n}\nexports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']);\n/* Tokens as defined by rfc 2616. Also lowercases them.\n * token = 1*\n * separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n * | \",\" | \";\" | \":\" | \"\\\" | <\">\n * | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n * | \"{\" | \"}\" | SP | HT\n */\nexports.STRICT_TOKEN = [\n '!', '#', '$', '%', '&', '\\'',\n '*', '+', '-', '.',\n '^', '_', '`',\n '|', '~',\n].concat(exports.ALPHANUM);\nexports.TOKEN = exports.STRICT_TOKEN.concat([' ']);\n/*\n * Verify that a char is a valid visible (printable) US-ASCII\n * character or %x80-FF\n */\nexports.HEADER_CHARS = ['\\t'];\nfor (let i = 32; i <= 255; i++) {\n if (i !== 127) {\n exports.HEADER_CHARS.push(i);\n }\n}\n// ',' = \\x44\nexports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44);\nexports.MAJOR = exports.NUM_MAP;\nexports.MINOR = exports.MAJOR;\nvar HEADER_STATE;\n(function (HEADER_STATE) {\n HEADER_STATE[HEADER_STATE[\"GENERAL\"] = 0] = \"GENERAL\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION\"] = 1] = \"CONNECTION\";\n HEADER_STATE[HEADER_STATE[\"CONTENT_LENGTH\"] = 2] = \"CONTENT_LENGTH\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING\"] = 3] = \"TRANSFER_ENCODING\";\n HEADER_STATE[HEADER_STATE[\"UPGRADE\"] = 4] = \"UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_KEEP_ALIVE\"] = 5] = \"CONNECTION_KEEP_ALIVE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_CLOSE\"] = 6] = \"CONNECTION_CLOSE\";\n HEADER_STATE[HEADER_STATE[\"CONNECTION_UPGRADE\"] = 7] = \"CONNECTION_UPGRADE\";\n HEADER_STATE[HEADER_STATE[\"TRANSFER_ENCODING_CHUNKED\"] = 8] = \"TRANSFER_ENCODING_CHUNKED\";\n})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {}));\nexports.SPECIAL_HEADERS = {\n 'connection': HEADER_STATE.CONNECTION,\n 'content-length': HEADER_STATE.CONTENT_LENGTH,\n 'proxy-connection': HEADER_STATE.CONNECTION,\n 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING,\n 'upgrade': HEADER_STATE.UPGRADE,\n};\n//# sourceMappingURL=constants.js.map","'use strict'\n\nconst util = require('../core/util')\nconst { kBodyUsed } = require('../core/symbols')\nconst assert = require('assert')\nconst { InvalidArgumentError } = require('../core/errors')\nconst EE = require('events')\n\nconst redirectableStatusCodes = [300, 301, 302, 303, 307, 308]\n\nconst kBody = Symbol('body')\n\nclass BodyAsyncIterable {\n constructor (body) {\n this[kBody] = body\n this[kBodyUsed] = false\n }\n\n async * [Symbol.asyncIterator] () {\n assert(!this[kBodyUsed], 'disturbed')\n this[kBodyUsed] = true\n yield * this[kBody]\n }\n}\n\nclass RedirectHandler {\n constructor (dispatch, maxRedirections, opts, handler) {\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n util.validateHandler(handler, opts.method, opts.upgrade)\n\n this.dispatch = dispatch\n this.location = null\n this.abort = null\n this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy\n this.maxRedirections = maxRedirections\n this.handler = handler\n this.history = []\n\n if (util.isStream(this.opts.body)) {\n // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp\n // so that it can be dispatched again?\n // TODO (fix): Do we need 100-expect support to provide a way to do this properly?\n if (util.bodyLength(this.opts.body) === 0) {\n this.opts.body\n .on('data', function () {\n assert(false)\n })\n }\n\n if (typeof this.opts.body.readableDidRead !== 'boolean') {\n this.opts.body[kBodyUsed] = false\n EE.prototype.on.call(this.opts.body, 'data', function () {\n this[kBodyUsed] = true\n })\n }\n } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') {\n // TODO (fix): We can't access ReadableStream internal state\n // to determine whether or not it has been disturbed. This is just\n // a workaround.\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n } else if (\n this.opts.body &&\n typeof this.opts.body !== 'string' &&\n !ArrayBuffer.isView(this.opts.body) &&\n util.isIterable(this.opts.body)\n ) {\n // TODO: Should we allow re-using iterable if !this.opts.idempotent\n // or through some other flag?\n this.opts.body = new BodyAsyncIterable(this.opts.body)\n }\n }\n\n onConnect (abort) {\n this.abort = abort\n this.handler.onConnect(abort, { history: this.history })\n }\n\n onUpgrade (statusCode, headers, socket) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n\n onError (error) {\n this.handler.onError(error)\n }\n\n onHeaders (statusCode, headers, resume, statusText) {\n this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body)\n ? null\n : parseLocation(statusCode, headers)\n\n if (this.opts.origin) {\n this.history.push(new URL(this.opts.path, this.opts.origin))\n }\n\n if (!this.location) {\n return this.handler.onHeaders(statusCode, headers, resume, statusText)\n }\n\n const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin)))\n const path = search ? `${pathname}${search}` : pathname\n\n // Remove headers referring to the original URL.\n // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers.\n // https://tools.ietf.org/html/rfc7231#section-6.4\n this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin)\n this.opts.path = path\n this.opts.origin = origin\n this.opts.maxRedirections = 0\n this.opts.query = null\n\n // https://tools.ietf.org/html/rfc7231#section-6.4.4\n // In case of HTTP 303, always replace method to be either HEAD or GET\n if (statusCode === 303 && this.opts.method !== 'HEAD') {\n this.opts.method = 'GET'\n this.opts.body = null\n }\n }\n\n onData (chunk) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response bodies.\n\n Redirection is used to serve the requested resource from another URL, so it is assumes that\n no body is generated (and thus can be ignored). Even though generating a body is not prohibited.\n\n For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually\n (which means it's optional and not mandated) contain just an hyperlink to the value of\n the Location response header, so the body can be ignored safely.\n\n For status 300, which is \"Multiple Choices\", the spec mentions both generating a Location\n response header AND a response body with the other possible location to follow.\n Since the spec explicitily chooses not to specify a format for such body and leave it to\n servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it.\n */\n } else {\n return this.handler.onData(chunk)\n }\n }\n\n onComplete (trailers) {\n if (this.location) {\n /*\n https://tools.ietf.org/html/rfc7231#section-6.4\n\n TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections\n and neither are useful if present.\n\n See comment on onData method above for more detailed informations.\n */\n\n this.location = null\n this.abort = null\n\n this.dispatch(this.opts, this)\n } else {\n this.handler.onComplete(trailers)\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) {\n this.handler.onBodySent(chunk)\n }\n }\n}\n\nfunction parseLocation (statusCode, headers) {\n if (redirectableStatusCodes.indexOf(statusCode) === -1) {\n return null\n }\n\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toString().toLowerCase() === 'location') {\n return headers[i + 1]\n }\n }\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4.4\nfunction shouldRemoveHeader (header, removeContent, unknownOrigin) {\n if (header.length === 4) {\n return util.headerNameToString(header) === 'host'\n }\n if (removeContent && util.headerNameToString(header).startsWith('content-')) {\n return true\n }\n if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) {\n const name = util.headerNameToString(header)\n return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization'\n }\n return false\n}\n\n// https://tools.ietf.org/html/rfc7231#section-6.4\nfunction cleanRequestHeaders (headers, removeContent, unknownOrigin) {\n const ret = []\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) {\n ret.push(headers[i], headers[i + 1])\n }\n }\n } else if (headers && typeof headers === 'object') {\n for (const key of Object.keys(headers)) {\n if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) {\n ret.push(key, headers[key])\n }\n }\n } else {\n assert(headers == null, 'headers must be an object or an array')\n }\n return ret\n}\n\nmodule.exports = RedirectHandler\n","'use strict'\n\nconst RedirectHandler = require('../handler/RedirectHandler')\n\nfunction createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) {\n return (dispatch) => {\n return function Intercept (opts, handler) {\n const { maxRedirections = defaultMaxRedirections } = opts\n\n if (!maxRedirections) {\n return dispatch(opts, handler)\n }\n\n const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler)\n opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting.\n return dispatch(opts, redirectHandler)\n }\n }\n}\n\nmodule.exports = createRedirectInterceptor\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8='\n","module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=='\n","// @ts-check\n\n'use strict'\n\n/* global WebAssembly */\n\nconst assert = require('assert')\nconst net = require('net')\nconst http = require('http')\nconst { pipeline } = require('stream')\nconst util = require('./core/util')\nconst timers = require('./timers')\nconst Request = require('./core/request')\nconst DispatcherBase = require('./dispatcher-base')\nconst {\n RequestContentLengthMismatchError,\n ResponseContentLengthMismatchError,\n InvalidArgumentError,\n RequestAbortedError,\n HeadersTimeoutError,\n HeadersOverflowError,\n SocketError,\n InformationalError,\n BodyTimeoutError,\n HTTPParserError,\n ResponseExceededMaxSizeError,\n ClientDestroyedError\n} = require('./core/errors')\nconst buildConnector = require('./core/connect')\nconst {\n kUrl,\n kReset,\n kServerName,\n kClient,\n kBusy,\n kParser,\n kConnect,\n kBlocking,\n kResuming,\n kRunning,\n kPending,\n kSize,\n kWriting,\n kQueue,\n kConnected,\n kConnecting,\n kNeedDrain,\n kNoRef,\n kKeepAliveDefaultTimeout,\n kHostHeader,\n kPendingIdx,\n kRunningIdx,\n kError,\n kPipelining,\n kSocket,\n kKeepAliveTimeoutValue,\n kMaxHeadersSize,\n kKeepAliveMaxTimeout,\n kKeepAliveTimeoutThreshold,\n kHeadersTimeout,\n kBodyTimeout,\n kStrictContentLength,\n kConnector,\n kMaxRedirections,\n kMaxRequests,\n kCounter,\n kClose,\n kDestroy,\n kDispatch,\n kInterceptors,\n kLocalAddress,\n kMaxResponseSize,\n kHTTPConnVersion,\n // HTTP2\n kHost,\n kHTTP2Session,\n kHTTP2SessionState,\n kHTTP2BuildRequest,\n kHTTP2CopyHeaders,\n kHTTP1BuildRequest\n} = require('./core/symbols')\n\n/** @type {import('http2')} */\nlet http2\ntry {\n http2 = require('http2')\n} catch {\n // @ts-ignore\n http2 = { constants: {} }\n}\n\nconst {\n constants: {\n HTTP2_HEADER_AUTHORITY,\n HTTP2_HEADER_METHOD,\n HTTP2_HEADER_PATH,\n HTTP2_HEADER_SCHEME,\n HTTP2_HEADER_CONTENT_LENGTH,\n HTTP2_HEADER_EXPECT,\n HTTP2_HEADER_STATUS\n }\n} = http2\n\n// Experimental\nlet h2ExperimentalWarned = false\n\nconst FastBuffer = Buffer[Symbol.species]\n\nconst kClosedResolve = Symbol('kClosedResolve')\n\nconst channels = {}\n\ntry {\n const diagnosticsChannel = require('diagnostics_channel')\n channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders')\n channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect')\n channels.connectError = diagnosticsChannel.channel('undici:client:connectError')\n channels.connected = diagnosticsChannel.channel('undici:client:connected')\n} catch {\n channels.sendHeaders = { hasSubscribers: false }\n channels.beforeConnect = { hasSubscribers: false }\n channels.connectError = { hasSubscribers: false }\n channels.connected = { hasSubscribers: false }\n}\n\n/**\n * @type {import('../types/client').default}\n */\nclass Client extends DispatcherBase {\n /**\n *\n * @param {string|URL} url\n * @param {import('../types/client').Client.Options} options\n */\n constructor (url, {\n interceptors,\n maxHeaderSize,\n headersTimeout,\n socketTimeout,\n requestTimeout,\n connectTimeout,\n bodyTimeout,\n idleTimeout,\n keepAlive,\n keepAliveTimeout,\n maxKeepAliveTimeout,\n keepAliveMaxTimeout,\n keepAliveTimeoutThreshold,\n socketPath,\n pipelining,\n tls,\n strictContentLength,\n maxCachedSessions,\n maxRedirections,\n connect,\n maxRequestsPerClient,\n localAddress,\n maxResponseSize,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n // h2\n allowH2,\n maxConcurrentStreams\n } = {}) {\n super()\n\n if (keepAlive !== undefined) {\n throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead')\n }\n\n if (socketTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (requestTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead')\n }\n\n if (idleTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead')\n }\n\n if (maxKeepAliveTimeout !== undefined) {\n throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')\n }\n\n if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {\n throw new InvalidArgumentError('invalid maxHeaderSize')\n }\n\n if (socketPath != null && typeof socketPath !== 'string') {\n throw new InvalidArgumentError('invalid socketPath')\n }\n\n if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) {\n throw new InvalidArgumentError('invalid connectTimeout')\n }\n\n if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveTimeout')\n }\n\n if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) {\n throw new InvalidArgumentError('invalid keepAliveMaxTimeout')\n }\n\n if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) {\n throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold')\n }\n\n if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) {\n throw new InvalidArgumentError('headersTimeout must be a positive integer or zero')\n }\n\n if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) {\n throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) {\n throw new InvalidArgumentError('maxRequestsPerClient must be a positive number')\n }\n\n if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) {\n throw new InvalidArgumentError('localAddress must be valid string IP address')\n }\n\n if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) {\n throw new InvalidArgumentError('maxResponseSize must be a positive number')\n }\n\n if (\n autoSelectFamilyAttemptTimeout != null &&\n (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)\n ) {\n throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number')\n }\n\n // h2\n if (allowH2 != null && typeof allowH2 !== 'boolean') {\n throw new InvalidArgumentError('allowH2 must be a valid boolean value')\n }\n\n if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) {\n throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client)\n ? interceptors.Client\n : [createRedirectInterceptor({ maxRedirections })]\n this[kUrl] = util.parseOrigin(url)\n this[kConnector] = connect\n this[kSocket] = null\n this[kPipelining] = pipelining != null ? pipelining : 1\n this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize\n this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout\n this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout\n this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold\n this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]\n this[kServerName] = null\n this[kLocalAddress] = localAddress != null ? localAddress : null\n this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming\n this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\\r\\n`\n this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3\n this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3\n this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength\n this[kMaxRedirections] = maxRedirections\n this[kMaxRequests] = maxRequestsPerClient\n this[kClosedResolve] = null\n this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1\n this[kHTTPConnVersion] = 'h1'\n\n // HTTP/2\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = !allowH2\n ? null\n : {\n // streams: null, // Fixed queue of streams - For future support of `push`\n openStreams: 0, // Keep track of them to decide wether or not unref the session\n maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server\n }\n this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}`\n\n // kQueue is built up of 3 sections separated by\n // the kRunningIdx and kPendingIdx indices.\n // | complete | running | pending |\n // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length\n // kRunningIdx points to the first running element.\n // kPendingIdx points to the first pending element.\n // This implements a fast queue with an amortized\n // time of O(1).\n\n this[kQueue] = []\n this[kRunningIdx] = 0\n this[kPendingIdx] = 0\n }\n\n get pipelining () {\n return this[kPipelining]\n }\n\n set pipelining (value) {\n this[kPipelining] = value\n resume(this, true)\n }\n\n get [kPending] () {\n return this[kQueue].length - this[kPendingIdx]\n }\n\n get [kRunning] () {\n return this[kPendingIdx] - this[kRunningIdx]\n }\n\n get [kSize] () {\n return this[kQueue].length - this[kRunningIdx]\n }\n\n get [kConnected] () {\n return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed\n }\n\n get [kBusy] () {\n const socket = this[kSocket]\n return (\n (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) ||\n (this[kSize] >= (this[kPipelining] || 1)) ||\n this[kPending] > 0\n )\n }\n\n /* istanbul ignore: only used for test */\n [kConnect] (cb) {\n connect(this)\n this.once('connect', cb)\n }\n\n [kDispatch] (opts, handler) {\n const origin = opts.origin || this[kUrl].origin\n\n const request = this[kHTTPConnVersion] === 'h2'\n ? Request[kHTTP2BuildRequest](origin, opts, handler)\n : Request[kHTTP1BuildRequest](origin, opts, handler)\n\n this[kQueue].push(request)\n if (this[kResuming]) {\n // Do nothing.\n } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {\n // Wait a tick in case stream/iterator is ended in the same tick.\n this[kResuming] = 1\n process.nextTick(resume, this)\n } else {\n resume(this, true)\n }\n\n if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) {\n this[kNeedDrain] = 2\n }\n\n return this[kNeedDrain] < 2\n }\n\n async [kClose] () {\n // TODO: for H2 we need to gracefully flush the remaining enqueued\n // request and close each stream.\n return new Promise((resolve) => {\n if (!this[kSize]) {\n resolve(null)\n } else {\n this[kClosedResolve] = resolve\n }\n })\n }\n\n async [kDestroy] (err) {\n return new Promise((resolve) => {\n const requests = this[kQueue].splice(this[kPendingIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n\n const callback = () => {\n if (this[kClosedResolve]) {\n // TODO (fix): Should we error here with ClientDestroyedError?\n this[kClosedResolve]()\n this[kClosedResolve] = null\n }\n resolve()\n }\n\n if (this[kHTTP2Session] != null) {\n util.destroy(this[kHTTP2Session], err)\n this[kHTTP2Session] = null\n this[kHTTP2SessionState] = null\n }\n\n if (!this[kSocket]) {\n queueMicrotask(callback)\n } else {\n util.destroy(this[kSocket].on('close', callback), err)\n }\n\n resume(this)\n })\n }\n}\n\nfunction onHttp2SessionError (err) {\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n this[kSocket][kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onHttp2FrameError (type, code, id) {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n\n if (id === 0) {\n this[kSocket][kError] = err\n onError(this[kClient], err)\n }\n}\n\nfunction onHttp2SessionEnd () {\n util.destroy(this, new SocketError('other side closed'))\n util.destroy(this[kSocket], new SocketError('other side closed'))\n}\n\nfunction onHTTP2GoAway (code) {\n const client = this[kClient]\n const err = new InformationalError(`HTTP/2: \"GOAWAY\" frame received with code ${code}`)\n client[kSocket] = null\n client[kHTTP2Session] = null\n\n if (client.destroyed) {\n assert(this[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(this, request, err)\n }\n } else if (client[kRunning] > 0) {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect',\n client[kUrl],\n [client],\n err\n )\n\n resume(client)\n}\n\nconst constants = require('./llhttp/constants')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst EMPTY_BUF = Buffer.alloc(0)\n\nasync function lazyllhttp () {\n const llhttpWasmData = process.env.JEST_WORKER_ID ? require('./llhttp/llhttp-wasm.js') : undefined\n\n let mod\n try {\n mod = await WebAssembly.compile(Buffer.from(require('./llhttp/llhttp_simd-wasm.js'), 'base64'))\n } catch (e) {\n /* istanbul ignore next */\n\n // We could check if the error was caused by the simd option not\n // being enabled, but the occurring of this other error\n // * https://github.com/emscripten-core/emscripten/issues/11495\n // got me to remove that check to avoid breaking Node 12.\n mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || require('./llhttp/llhttp-wasm.js'), 'base64'))\n }\n\n return await WebAssembly.instantiate(mod, {\n env: {\n /* eslint-disable camelcase */\n\n wasm_on_url: (p, at, len) => {\n /* istanbul ignore next */\n return 0\n },\n wasm_on_status: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_begin: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageBegin() || 0\n },\n wasm_on_header_field: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_header_value: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0\n },\n wasm_on_body: (p, at, len) => {\n assert.strictEqual(currentParser.ptr, p)\n const start = at - currentBufferPtr + currentBufferRef.byteOffset\n return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0\n },\n wasm_on_message_complete: (p) => {\n assert.strictEqual(currentParser.ptr, p)\n return currentParser.onMessageComplete() || 0\n }\n\n /* eslint-enable camelcase */\n }\n })\n}\n\nlet llhttpInstance = null\nlet llhttpPromise = lazyllhttp()\nllhttpPromise.catch()\n\nlet currentParser = null\nlet currentBufferRef = null\nlet currentBufferSize = 0\nlet currentBufferPtr = null\n\nconst TIMEOUT_HEADERS = 1\nconst TIMEOUT_BODY = 2\nconst TIMEOUT_IDLE = 3\n\nclass Parser {\n constructor (client, socket, { exports }) {\n assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)\n\n this.llhttp = exports\n this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)\n this.client = client\n this.socket = socket\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n this.statusCode = null\n this.statusText = ''\n this.upgrade = false\n this.headers = []\n this.headersSize = 0\n this.headersMaxSize = client[kMaxHeadersSize]\n this.shouldKeepAlive = false\n this.paused = false\n this.resume = this.resume.bind(this)\n\n this.bytesRead = 0\n\n this.keepAlive = ''\n this.contentLength = ''\n this.connection = ''\n this.maxResponseSize = client[kMaxResponseSize]\n }\n\n setTimeout (value, type) {\n this.timeoutType = type\n if (value !== this.timeoutValue) {\n timers.clearTimeout(this.timeout)\n if (value) {\n this.timeout = timers.setTimeout(onParserTimeout, value, this)\n // istanbul ignore else: only for jest\n if (this.timeout.unref) {\n this.timeout.unref()\n }\n } else {\n this.timeout = null\n }\n this.timeoutValue = value\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n }\n\n resume () {\n if (this.socket.destroyed || !this.paused) {\n return\n }\n\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_resume(this.ptr)\n\n assert(this.timeoutType === TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n this.paused = false\n this.execute(this.socket.read() || EMPTY_BUF) // Flush parser.\n this.readMore()\n }\n\n readMore () {\n while (!this.paused && this.ptr) {\n const chunk = this.socket.read()\n if (chunk === null) {\n break\n }\n this.execute(chunk)\n }\n }\n\n execute (data) {\n assert(this.ptr != null)\n assert(currentParser == null)\n assert(!this.paused)\n\n const { socket, llhttp } = this\n\n if (data.length > currentBufferSize) {\n if (currentBufferPtr) {\n llhttp.free(currentBufferPtr)\n }\n currentBufferSize = Math.ceil(data.length / 4096) * 4096\n currentBufferPtr = llhttp.malloc(currentBufferSize)\n }\n\n new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data)\n\n // Call `execute` on the wasm parser.\n // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data,\n // and finally the length of bytes to parse.\n // The return value is an error code or `constants.ERROR.OK`.\n try {\n let ret\n\n try {\n currentBufferRef = data\n currentParser = this\n ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length)\n /* eslint-disable-next-line no-useless-catch */\n } catch (err) {\n /* istanbul ignore next: difficult to make a test case for */\n throw err\n } finally {\n currentParser = null\n currentBufferRef = null\n }\n\n const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr\n\n if (ret === constants.ERROR.PAUSED_UPGRADE) {\n this.onUpgrade(data.slice(offset))\n } else if (ret === constants.ERROR.PAUSED) {\n this.paused = true\n socket.unshift(data.slice(offset))\n } else if (ret !== constants.ERROR.OK) {\n const ptr = llhttp.llhttp_get_error_reason(this.ptr)\n let message = ''\n /* istanbul ignore else: difficult to make a test case for */\n if (ptr) {\n const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)\n message =\n 'Response does not match the HTTP/1.1 protocol (' +\n Buffer.from(llhttp.memory.buffer, ptr, len).toString() +\n ')'\n }\n throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset))\n }\n } catch (err) {\n util.destroy(socket, err)\n }\n }\n\n destroy () {\n assert(this.ptr != null)\n assert(currentParser == null)\n\n this.llhttp.llhttp_free(this.ptr)\n this.ptr = null\n\n timers.clearTimeout(this.timeout)\n this.timeout = null\n this.timeoutValue = null\n this.timeoutType = null\n\n this.paused = false\n }\n\n onStatus (buf) {\n this.statusText = buf.toString()\n }\n\n onMessageBegin () {\n const { socket, client } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n if (!request) {\n return -1\n }\n }\n\n onHeaderField (buf) {\n const len = this.headers.length\n\n if ((len & 1) === 0) {\n this.headers.push(buf)\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n this.trackHeader(buf.length)\n }\n\n onHeaderValue (buf) {\n let len = this.headers.length\n\n if ((len & 1) === 1) {\n this.headers.push(buf)\n len += 1\n } else {\n this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf])\n }\n\n const key = this.headers[len - 2]\n if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') {\n this.keepAlive += buf.toString()\n } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') {\n this.connection += buf.toString()\n } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') {\n this.contentLength += buf.toString()\n }\n\n this.trackHeader(buf.length)\n }\n\n trackHeader (len) {\n this.headersSize += len\n if (this.headersSize >= this.headersMaxSize) {\n util.destroy(this.socket, new HeadersOverflowError())\n }\n }\n\n onUpgrade (head) {\n const { upgrade, client, socket, headers, statusCode } = this\n\n assert(upgrade)\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(!socket.destroyed)\n assert(socket === client[kSocket])\n assert(!this.paused)\n assert(request.upgrade || request.method === 'CONNECT')\n\n this.statusCode = null\n this.statusText = ''\n this.shouldKeepAlive = null\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n socket.unshift(head)\n\n socket[kParser].destroy()\n socket[kParser] = null\n\n socket[kClient] = null\n socket[kError] = null\n socket\n .removeListener('error', onSocketError)\n .removeListener('readable', onSocketReadable)\n .removeListener('end', onSocketEnd)\n .removeListener('close', onSocketClose)\n\n client[kSocket] = null\n client[kQueue][client[kRunningIdx]++] = null\n client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))\n\n try {\n request.onUpgrade(statusCode, headers, socket)\n } catch (err) {\n util.destroy(socket, err)\n }\n\n resume(client)\n }\n\n onHeadersComplete (statusCode, upgrade, shouldKeepAlive) {\n const { client, socket, headers, statusText } = this\n\n /* istanbul ignore next: difficult to make a test case for */\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n\n /* istanbul ignore next: difficult to make a test case for */\n if (!request) {\n return -1\n }\n\n assert(!this.upgrade)\n assert(this.statusCode < 200)\n\n if (statusCode === 100) {\n util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket)))\n return -1\n }\n\n /* this can only happen if server is misbehaving */\n if (upgrade && !request.upgrade) {\n util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket)))\n return -1\n }\n\n assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS)\n\n this.statusCode = statusCode\n this.shouldKeepAlive = (\n shouldKeepAlive ||\n // Override llhttp value which does not allow keepAlive for HEAD.\n (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive')\n )\n\n if (this.statusCode >= 200) {\n const bodyTimeout = request.bodyTimeout != null\n ? request.bodyTimeout\n : client[kBodyTimeout]\n this.setTimeout(bodyTimeout, TIMEOUT_BODY)\n } else if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n if (request.method === 'CONNECT') {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n if (upgrade) {\n assert(client[kRunning] === 1)\n this.upgrade = true\n return 2\n }\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (this.shouldKeepAlive && client[kPipelining]) {\n const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null\n\n if (keepAliveTimeout != null) {\n const timeout = Math.min(\n keepAliveTimeout - client[kKeepAliveTimeoutThreshold],\n client[kKeepAliveMaxTimeout]\n )\n if (timeout <= 0) {\n socket[kReset] = true\n } else {\n client[kKeepAliveTimeoutValue] = timeout\n }\n } else {\n client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]\n }\n } else {\n // Stop more requests from being dispatched.\n socket[kReset] = true\n }\n\n const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false\n\n if (request.aborted) {\n return -1\n }\n\n if (request.method === 'HEAD') {\n return 1\n }\n\n if (statusCode < 200) {\n return 1\n }\n\n if (socket[kBlocking]) {\n socket[kBlocking] = false\n resume(client)\n }\n\n return pause ? constants.ERROR.PAUSED : 0\n }\n\n onBody (buf) {\n const { client, socket, statusCode, maxResponseSize } = this\n\n if (socket.destroyed) {\n return -1\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert.strictEqual(this.timeoutType, TIMEOUT_BODY)\n if (this.timeout) {\n // istanbul ignore else: only for jest\n if (this.timeout.refresh) {\n this.timeout.refresh()\n }\n }\n\n assert(statusCode >= 200)\n\n if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {\n util.destroy(socket, new ResponseExceededMaxSizeError())\n return -1\n }\n\n this.bytesRead += buf.length\n\n if (request.onData(buf) === false) {\n return constants.ERROR.PAUSED\n }\n }\n\n onMessageComplete () {\n const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this\n\n if (socket.destroyed && (!statusCode || shouldKeepAlive)) {\n return -1\n }\n\n if (upgrade) {\n return\n }\n\n const request = client[kQueue][client[kRunningIdx]]\n assert(request)\n\n assert(statusCode >= 100)\n\n this.statusCode = null\n this.statusText = ''\n this.bytesRead = 0\n this.contentLength = ''\n this.keepAlive = ''\n this.connection = ''\n\n assert(this.headers.length % 2 === 0)\n this.headers = []\n this.headersSize = 0\n\n if (statusCode < 200) {\n return\n }\n\n /* istanbul ignore next: should be handled by llhttp? */\n if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) {\n util.destroy(socket, new ResponseContentLengthMismatchError())\n return -1\n }\n\n request.onComplete(headers)\n\n client[kQueue][client[kRunningIdx]++] = null\n\n if (socket[kWriting]) {\n assert.strictEqual(client[kRunning], 0)\n // Response completed before request.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (!shouldKeepAlive) {\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (socket[kReset] && client[kRunning] === 0) {\n // Destroy socket once all requests have completed.\n // The request at the tail of the pipeline is the one\n // that requested reset and no further requests should\n // have been queued since then.\n util.destroy(socket, new InformationalError('reset'))\n return constants.ERROR.PAUSED\n } else if (client[kPipelining] === 1) {\n // We must wait a full event loop cycle to reuse this socket to make sure\n // that non-spec compliant servers are not closing the connection even if they\n // said they won't.\n setImmediate(resume, client)\n } else {\n resume(client)\n }\n }\n}\n\nfunction onParserTimeout (parser) {\n const { socket, timeoutType, client } = parser\n\n /* istanbul ignore else */\n if (timeoutType === TIMEOUT_HEADERS) {\n if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {\n assert(!parser.paused, 'cannot be paused while waiting for headers')\n util.destroy(socket, new HeadersTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_BODY) {\n if (!parser.paused) {\n util.destroy(socket, new BodyTimeoutError())\n }\n } else if (timeoutType === TIMEOUT_IDLE) {\n assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue])\n util.destroy(socket, new InformationalError('socket idle timeout'))\n }\n}\n\nfunction onSocketReadable () {\n const { [kParser]: parser } = this\n if (parser) {\n parser.readMore()\n }\n}\n\nfunction onSocketError (err) {\n const { [kClient]: client, [kParser]: parser } = this\n\n assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')\n\n if (client[kHTTPConnVersion] !== 'h2') {\n // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded\n // to the user.\n if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so for as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n this[kError] = err\n\n onError(this[kClient], err)\n}\n\nfunction onError (client, err) {\n if (\n client[kRunning] === 0 &&\n err.code !== 'UND_ERR_INFO' &&\n err.code !== 'UND_ERR_SOCKET'\n ) {\n // Error is not caused by running request and not a recoverable\n // socket error.\n\n assert(client[kPendingIdx] === client[kRunningIdx])\n\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n assert(client[kSize] === 0)\n }\n}\n\nfunction onSocketEnd () {\n const { [kParser]: parser, [kClient]: client } = this\n\n if (client[kHTTPConnVersion] !== 'h2') {\n if (parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n return\n }\n }\n\n util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this)))\n}\n\nfunction onSocketClose () {\n const { [kClient]: client, [kParser]: parser } = this\n\n if (client[kHTTPConnVersion] === 'h1' && parser) {\n if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {\n // We treat all incoming data so far as a valid response.\n parser.onMessageComplete()\n }\n\n this[kParser].destroy()\n this[kParser] = null\n }\n\n const err = this[kError] || new SocketError('closed', util.getSocketInfo(this))\n\n client[kSocket] = null\n\n if (client.destroyed) {\n assert(client[kPending] === 0)\n\n // Fail entire queue.\n const requests = client[kQueue].splice(client[kRunningIdx])\n for (let i = 0; i < requests.length; i++) {\n const request = requests[i]\n errorRequest(client, request, err)\n }\n } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') {\n // Fail head of pipeline.\n const request = client[kQueue][client[kRunningIdx]]\n client[kQueue][client[kRunningIdx]++] = null\n\n errorRequest(client, request, err)\n }\n\n client[kPendingIdx] = client[kRunningIdx]\n\n assert(client[kRunning] === 0)\n\n client.emit('disconnect', client[kUrl], [client], err)\n\n resume(client)\n}\n\nasync function connect (client) {\n assert(!client[kConnecting])\n assert(!client[kSocket])\n\n let { host, hostname, protocol, port } = client[kUrl]\n\n // Resolve ipv6\n if (hostname[0] === '[') {\n const idx = hostname.indexOf(']')\n\n assert(idx !== -1)\n const ip = hostname.substring(1, idx)\n\n assert(net.isIP(ip))\n hostname = ip\n }\n\n client[kConnecting] = true\n\n if (channels.beforeConnect.hasSubscribers) {\n channels.beforeConnect.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector]\n })\n }\n\n try {\n const socket = await new Promise((resolve, reject) => {\n client[kConnector]({\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n }, (err, socket) => {\n if (err) {\n reject(err)\n } else {\n resolve(socket)\n }\n })\n })\n\n if (client.destroyed) {\n util.destroy(socket.on('error', () => {}), new ClientDestroyedError())\n return\n }\n\n client[kConnecting] = false\n\n assert(socket)\n\n const isH2 = socket.alpnProtocol === 'h2'\n if (isH2) {\n if (!h2ExperimentalWarned) {\n h2ExperimentalWarned = true\n process.emitWarning('H2 support is experimental, expect them to change at any time.', {\n code: 'UNDICI-H2'\n })\n }\n\n const session = http2.connect(client[kUrl], {\n createConnection: () => socket,\n peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams\n })\n\n client[kHTTPConnVersion] = 'h2'\n session[kClient] = client\n session[kSocket] = socket\n session.on('error', onHttp2SessionError)\n session.on('frameError', onHttp2FrameError)\n session.on('end', onHttp2SessionEnd)\n session.on('goaway', onHTTP2GoAway)\n session.on('close', onSocketClose)\n session.unref()\n\n client[kHTTP2Session] = session\n socket[kHTTP2Session] = session\n } else {\n if (!llhttpInstance) {\n llhttpInstance = await llhttpPromise\n llhttpPromise = null\n }\n\n socket[kNoRef] = false\n socket[kWriting] = false\n socket[kReset] = false\n socket[kBlocking] = false\n socket[kParser] = new Parser(client, socket, llhttpInstance)\n }\n\n socket[kCounter] = 0\n socket[kMaxRequests] = client[kMaxRequests]\n socket[kClient] = client\n socket[kError] = null\n\n socket\n .on('error', onSocketError)\n .on('readable', onSocketReadable)\n .on('end', onSocketEnd)\n .on('close', onSocketClose)\n\n client[kSocket] = socket\n\n if (channels.connected.hasSubscribers) {\n channels.connected.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n socket\n })\n }\n client.emit('connect', client[kUrl], [client])\n } catch (err) {\n if (client.destroyed) {\n return\n }\n\n client[kConnecting] = false\n\n if (channels.connectError.hasSubscribers) {\n channels.connectError.publish({\n connectParams: {\n host,\n hostname,\n protocol,\n port,\n servername: client[kServerName],\n localAddress: client[kLocalAddress]\n },\n connector: client[kConnector],\n error: err\n })\n }\n\n if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') {\n assert(client[kRunning] === 0)\n while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {\n const request = client[kQueue][client[kPendingIdx]++]\n errorRequest(client, request, err)\n }\n } else {\n onError(client, err)\n }\n\n client.emit('connectionError', client[kUrl], [client], err)\n }\n\n resume(client)\n}\n\nfunction emitDrain (client) {\n client[kNeedDrain] = 0\n client.emit('drain', client[kUrl], [client])\n}\n\nfunction resume (client, sync) {\n if (client[kResuming] === 2) {\n return\n }\n\n client[kResuming] = 2\n\n _resume(client, sync)\n client[kResuming] = 0\n\n if (client[kRunningIdx] > 256) {\n client[kQueue].splice(0, client[kRunningIdx])\n client[kPendingIdx] -= client[kRunningIdx]\n client[kRunningIdx] = 0\n }\n}\n\nfunction _resume (client, sync) {\n while (true) {\n if (client.destroyed) {\n assert(client[kPending] === 0)\n return\n }\n\n if (client[kClosedResolve] && !client[kSize]) {\n client[kClosedResolve]()\n client[kClosedResolve] = null\n return\n }\n\n const socket = client[kSocket]\n\n if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') {\n if (client[kSize] === 0) {\n if (!socket[kNoRef] && socket.unref) {\n socket.unref()\n socket[kNoRef] = true\n }\n } else if (socket[kNoRef] && socket.ref) {\n socket.ref()\n socket[kNoRef] = false\n }\n\n if (client[kSize] === 0) {\n if (socket[kParser].timeoutType !== TIMEOUT_IDLE) {\n socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE)\n }\n } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {\n if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {\n const request = client[kQueue][client[kRunningIdx]]\n const headersTimeout = request.headersTimeout != null\n ? request.headersTimeout\n : client[kHeadersTimeout]\n socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)\n }\n }\n }\n\n if (client[kBusy]) {\n client[kNeedDrain] = 2\n } else if (client[kNeedDrain] === 2) {\n if (sync) {\n client[kNeedDrain] = 1\n process.nextTick(emitDrain, client)\n } else {\n emitDrain(client)\n }\n continue\n }\n\n if (client[kPending] === 0) {\n return\n }\n\n if (client[kRunning] >= (client[kPipelining] || 1)) {\n return\n }\n\n const request = client[kQueue][client[kPendingIdx]]\n\n if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {\n if (client[kRunning] > 0) {\n return\n }\n\n client[kServerName] = request.servername\n\n if (socket && socket.servername !== request.servername) {\n util.destroy(socket, new InformationalError('servername changed'))\n return\n }\n }\n\n if (client[kConnecting]) {\n return\n }\n\n if (!socket && !client[kHTTP2Session]) {\n connect(client)\n return\n }\n\n if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) {\n return\n }\n\n if (client[kRunning] > 0 && !request.idempotent) {\n // Non-idempotent request cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) {\n // Don't dispatch an upgrade until all preceding requests have completed.\n // A misbehaving server might upgrade the connection before all pipelined\n // request has completed.\n return\n }\n\n if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&\n (util.isStream(request.body) || util.isAsyncIterable(request.body))) {\n // Request with stream or iterator body can error while other requests\n // are inflight and indirectly error those as well.\n // Ensure this doesn't happen by waiting for inflight\n // to complete before dispatching.\n\n // Request with stream or iterator body cannot be retried.\n // Ensure that no other requests are inflight and\n // could cause failure.\n return\n }\n\n if (!request.aborted && write(client, request)) {\n client[kPendingIdx]++\n } else {\n client[kQueue].splice(client[kPendingIdx], 1)\n }\n }\n}\n\n// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2\nfunction shouldSendContentLength (method) {\n return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT'\n}\n\nfunction write (client, request) {\n if (client[kHTTPConnVersion] === 'h2') {\n writeH2(client, client[kHTTP2Session], request)\n return\n }\n\n const { body, method, path, host, upgrade, headers, blocking, reset } = request\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n const bodyLength = util.bodyLength(body)\n\n let contentLength = bodyLength\n\n if (contentLength === null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 && !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n const socket = client[kSocket]\n\n try {\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n\n util.destroy(socket, new InformationalError('aborted'))\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n if (method === 'HEAD') {\n // https://github.com/mcollina/undici/issues/258\n // Close after a HEAD request to interop with misbehaving servers\n // that may send a body in the response.\n\n socket[kReset] = true\n }\n\n if (upgrade || method === 'CONNECT') {\n // On CONNECT or upgrade, block pipeline from dispatching further\n // requests on this connection.\n\n socket[kReset] = true\n }\n\n if (reset != null) {\n socket[kReset] = reset\n }\n\n if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) {\n socket[kReset] = true\n }\n\n if (blocking) {\n socket[kBlocking] = true\n }\n\n let header = `${method} ${path} HTTP/1.1\\r\\n`\n\n if (typeof host === 'string') {\n header += `host: ${host}\\r\\n`\n } else {\n header += client[kHostHeader]\n }\n\n if (upgrade) {\n header += `connection: upgrade\\r\\nupgrade: ${upgrade}\\r\\n`\n } else if (client[kPipelining] && !socket[kReset]) {\n header += 'connection: keep-alive\\r\\n'\n } else {\n header += 'connection: close\\r\\n'\n }\n\n if (headers) {\n header += headers\n }\n\n if (channels.sendHeaders.hasSubscribers) {\n channels.sendHeaders.publish({ request, headers: header, socket })\n }\n\n /* istanbul ignore else: assertion */\n if (!body || bodyLength === 0) {\n if (contentLength === 0) {\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n assert(contentLength === null, 'no body must not have content length')\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(body)\n socket.uncork()\n request.onBodySent(body)\n request.onRequestSent()\n if (!expectsPayload) {\n socket[kReset] = true\n }\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload })\n } else {\n writeBlob({ body, client, request, socket, contentLength, header, expectsPayload })\n }\n } else if (util.isStream(body)) {\n writeStream({ body, client, request, socket, contentLength, header, expectsPayload })\n } else if (util.isIterable(body)) {\n writeIterable({ body, client, request, socket, contentLength, header, expectsPayload })\n } else {\n assert(false)\n }\n\n return true\n}\n\nfunction writeH2 (client, session, request) {\n const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request\n\n let headers\n if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim())\n else headers = reqHeaders\n\n if (upgrade) {\n errorRequest(client, request, new Error('Upgrade not supported for H2'))\n return false\n }\n\n try {\n // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event?\n request.onConnect((err) => {\n if (request.aborted || request.completed) {\n return\n }\n\n errorRequest(client, request, err || new RequestAbortedError())\n })\n } catch (err) {\n errorRequest(client, request, err)\n }\n\n if (request.aborted) {\n return false\n }\n\n /** @type {import('node:http2').ClientHttp2Stream} */\n let stream\n const h2State = client[kHTTP2SessionState]\n\n headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost]\n headers[HTTP2_HEADER_METHOD] = method\n\n if (method === 'CONNECT') {\n session.ref()\n // we are already connected, streams are pending, first request\n // will create a new stream. We trigger a request to create the stream and wait until\n // `ready` event is triggered\n // We disabled endStream to allow the user to write to the stream\n stream = session.request(headers, { endStream: false, signal })\n\n if (stream.id && !stream.pending) {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n } else {\n stream.once('ready', () => {\n request.onUpgrade(null, null, stream)\n ++h2State.openStreams\n })\n }\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) session.unref()\n })\n\n return true\n }\n\n // https://tools.ietf.org/html/rfc7540#section-8.3\n // :path and :scheme headers must be omited when sending CONNECT\n\n headers[HTTP2_HEADER_PATH] = path\n headers[HTTP2_HEADER_SCHEME] = 'https'\n\n // https://tools.ietf.org/html/rfc7231#section-4.3.1\n // https://tools.ietf.org/html/rfc7231#section-4.3.2\n // https://tools.ietf.org/html/rfc7231#section-4.3.5\n\n // Sending a payload body on a request that does not\n // expect it can cause undefined behavior on some\n // servers and corrupt connection state. Do not\n // re-use the connection for further requests.\n\n const expectsPayload = (\n method === 'PUT' ||\n method === 'POST' ||\n method === 'PATCH'\n )\n\n if (body && typeof body.read === 'function') {\n // Try to read EOF in order to get length.\n body.read(0)\n }\n\n let contentLength = util.bodyLength(body)\n\n if (contentLength == null) {\n contentLength = request.contentLength\n }\n\n if (contentLength === 0 || !expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD NOT send a Content-Length header field when\n // the request message does not contain a payload body and the method\n // semantics do not anticipate such a body.\n\n contentLength = null\n }\n\n // https://github.com/nodejs/undici/issues/2046\n // A user agent may send a Content-Length header with 0 value, this should be allowed.\n if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) {\n if (client[kStrictContentLength]) {\n errorRequest(client, request, new RequestContentLengthMismatchError())\n return false\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n if (contentLength != null) {\n assert(body, 'no body must not have content length')\n headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`\n }\n\n session.ref()\n\n const shouldEndStream = method === 'GET' || method === 'HEAD'\n if (expectContinue) {\n headers[HTTP2_HEADER_EXPECT] = '100-continue'\n stream = session.request(headers, { endStream: shouldEndStream, signal })\n\n stream.once('continue', writeBodyH2)\n } else {\n stream = session.request(headers, {\n endStream: shouldEndStream,\n signal\n })\n writeBodyH2()\n }\n\n // Increment counter as we have new several streams open\n ++h2State.openStreams\n\n stream.once('response', headers => {\n const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers\n\n if (request.onHeaders(Number(statusCode), realHeaders, stream.resume.bind(stream), '') === false) {\n stream.pause()\n }\n })\n\n stream.once('end', () => {\n request.onComplete([])\n })\n\n stream.on('data', (chunk) => {\n if (request.onData(chunk) === false) {\n stream.pause()\n }\n })\n\n stream.once('close', () => {\n h2State.openStreams -= 1\n // TODO(HTTP/2): unref only if current streams count is 0\n if (h2State.openStreams === 0) {\n session.unref()\n }\n })\n\n stream.once('error', function (err) {\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n stream.once('frameError', (type, code) => {\n const err = new InformationalError(`HTTP/2: \"frameError\" received - type ${type}, code ${code}`)\n errorRequest(client, request, err)\n\n if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) {\n h2State.streams -= 1\n util.destroy(stream, err)\n }\n })\n\n // stream.on('aborted', () => {\n // // TODO(HTTP/2): Support aborted\n // })\n\n // stream.on('timeout', () => {\n // // TODO(HTTP/2): Support timeout\n // })\n\n // stream.on('push', headers => {\n // // TODO(HTTP/2): Suppor push\n // })\n\n // stream.on('trailers', headers => {\n // // TODO(HTTP/2): Support trailers\n // })\n\n return true\n\n function writeBodyH2 () {\n /* istanbul ignore else: assertion */\n if (!body) {\n request.onRequestSent()\n } else if (util.isBuffer(body)) {\n assert(contentLength === body.byteLength, 'buffer body must have content length')\n stream.cork()\n stream.write(body)\n stream.uncork()\n stream.end()\n request.onBodySent(body)\n request.onRequestSent()\n } else if (util.isBlobLike(body)) {\n if (typeof body.stream === 'function') {\n writeIterable({\n client,\n request,\n contentLength,\n h2stream: stream,\n expectsPayload,\n body: body.stream(),\n socket: client[kSocket],\n header: ''\n })\n } else {\n writeBlob({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n h2stream: stream,\n header: '',\n socket: client[kSocket]\n })\n }\n } else if (util.isStream(body)) {\n writeStream({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n socket: client[kSocket],\n h2stream: stream,\n header: ''\n })\n } else if (util.isIterable(body)) {\n writeIterable({\n body,\n client,\n request,\n contentLength,\n expectsPayload,\n header: '',\n h2stream: stream,\n socket: client[kSocket]\n })\n } else {\n assert(false)\n }\n }\n}\n\nfunction writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined')\n\n if (client[kHTTPConnVersion] === 'h2') {\n // For HTTP/2, is enough to pipe the stream\n const pipe = pipeline(\n body,\n h2stream,\n (err) => {\n if (err) {\n util.destroy(body, err)\n util.destroy(h2stream, err)\n } else {\n request.onRequestSent()\n }\n }\n )\n\n pipe.on('data', onPipeData)\n pipe.once('end', () => {\n pipe.removeListener('data', onPipeData)\n util.destroy(pipe)\n })\n\n function onPipeData (chunk) {\n request.onBodySent(chunk)\n }\n\n return\n }\n\n let finished = false\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n\n const onData = function (chunk) {\n if (finished) {\n return\n }\n\n try {\n if (!writer.write(chunk) && this.pause) {\n this.pause()\n }\n } catch (err) {\n util.destroy(this, err)\n }\n }\n const onDrain = function () {\n if (finished) {\n return\n }\n\n if (body.resume) {\n body.resume()\n }\n }\n const onAbort = function () {\n if (finished) {\n return\n }\n const err = new RequestAbortedError()\n queueMicrotask(() => onFinished(err))\n }\n const onFinished = function (err) {\n if (finished) {\n return\n }\n\n finished = true\n\n assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))\n\n socket\n .off('drain', onDrain)\n .off('error', onFinished)\n\n body\n .removeListener('data', onData)\n .removeListener('end', onFinished)\n .removeListener('error', onFinished)\n .removeListener('close', onAbort)\n\n if (!err) {\n try {\n writer.end()\n } catch (er) {\n err = er\n }\n }\n\n writer.destroy(err)\n\n if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) {\n util.destroy(body, err)\n } else {\n util.destroy(body)\n }\n }\n\n body\n .on('data', onData)\n .on('end', onFinished)\n .on('error', onFinished)\n .on('close', onAbort)\n\n if (body.resume) {\n body.resume()\n }\n\n socket\n .on('drain', onDrain)\n .on('error', onFinished)\n}\n\nasync function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength === body.size, 'blob body must have content length')\n\n const isH2 = client[kHTTPConnVersion] === 'h2'\n try {\n if (contentLength != null && contentLength !== body.size) {\n throw new RequestContentLengthMismatchError()\n }\n\n const buffer = Buffer.from(await body.arrayBuffer())\n\n if (isH2) {\n h2stream.cork()\n h2stream.write(buffer)\n h2stream.uncork()\n } else {\n socket.cork()\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n socket.write(buffer)\n socket.uncork()\n }\n\n request.onBodySent(buffer)\n request.onRequestSent()\n\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n resume(client)\n } catch (err) {\n util.destroy(isH2 ? h2stream : socket, err)\n }\n}\n\nasync function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) {\n assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined')\n\n let callback = null\n function onDrain () {\n if (callback) {\n const cb = callback\n callback = null\n cb()\n }\n }\n\n const waitForDrain = () => new Promise((resolve, reject) => {\n assert(callback === null)\n\n if (socket[kError]) {\n reject(socket[kError])\n } else {\n callback = resolve\n }\n })\n\n if (client[kHTTPConnVersion] === 'h2') {\n h2stream\n .on('close', onDrain)\n .on('drain', onDrain)\n\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n const res = h2stream.write(chunk)\n request.onBodySent(chunk)\n if (!res) {\n await waitForDrain()\n }\n }\n } catch (err) {\n h2stream.destroy(err)\n } finally {\n request.onRequestSent()\n h2stream.end()\n h2stream\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n\n return\n }\n\n socket\n .on('close', onDrain)\n .on('drain', onDrain)\n\n const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header })\n try {\n // It's up to the user to somehow abort the async iterable.\n for await (const chunk of body) {\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (!writer.write(chunk)) {\n await waitForDrain()\n }\n }\n\n writer.end()\n } catch (err) {\n writer.destroy(err)\n } finally {\n socket\n .off('close', onDrain)\n .off('drain', onDrain)\n }\n}\n\nclass AsyncWriter {\n constructor ({ socket, request, contentLength, client, expectsPayload, header }) {\n this.socket = socket\n this.request = request\n this.contentLength = contentLength\n this.client = client\n this.bytesWritten = 0\n this.expectsPayload = expectsPayload\n this.header = header\n\n socket[kWriting] = true\n }\n\n write (chunk) {\n const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return false\n }\n\n const len = Buffer.byteLength(chunk)\n if (!len) {\n return true\n }\n\n // We should defer writing chunks.\n if (contentLength !== null && bytesWritten + len > contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n }\n\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n\n socket.cork()\n\n if (bytesWritten === 0) {\n if (!expectsPayload) {\n socket[kReset] = true\n }\n\n if (contentLength === null) {\n socket.write(`${header}transfer-encoding: chunked\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}content-length: ${contentLength}\\r\\n\\r\\n`, 'latin1')\n }\n }\n\n if (contentLength === null) {\n socket.write(`\\r\\n${len.toString(16)}\\r\\n`, 'latin1')\n }\n\n this.bytesWritten += len\n\n const ret = socket.write(chunk)\n\n socket.uncork()\n\n request.onBodySent(chunk)\n\n if (!ret) {\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n }\n\n return ret\n }\n\n end () {\n const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this\n request.onRequestSent()\n\n socket[kWriting] = false\n\n if (socket[kError]) {\n throw socket[kError]\n }\n\n if (socket.destroyed) {\n return\n }\n\n if (bytesWritten === 0) {\n if (expectsPayload) {\n // https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body.\n\n socket.write(`${header}content-length: 0\\r\\n\\r\\n`, 'latin1')\n } else {\n socket.write(`${header}\\r\\n`, 'latin1')\n }\n } else if (contentLength === null) {\n socket.write('\\r\\n0\\r\\n\\r\\n', 'latin1')\n }\n\n if (contentLength !== null && bytesWritten !== contentLength) {\n if (client[kStrictContentLength]) {\n throw new RequestContentLengthMismatchError()\n } else {\n process.emitWarning(new RequestContentLengthMismatchError())\n }\n }\n\n if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {\n // istanbul ignore else: only for jest\n if (socket[kParser].timeout.refresh) {\n socket[kParser].timeout.refresh()\n }\n }\n\n resume(client)\n }\n\n destroy (err) {\n const { socket, client } = this\n\n socket[kWriting] = false\n\n if (err) {\n assert(client[kRunning] <= 1, 'pipeline should only contain this request')\n util.destroy(socket, err)\n }\n }\n}\n\nfunction errorRequest (client, request, err) {\n try {\n request.onError(err)\n assert(request.aborted)\n } catch (err) {\n client.emit('error', err)\n }\n}\n\nmodule.exports = Client\n","/* eslint-disable */\n\n'use strict'\n\n// Extracted from node/lib/internal/fixed_queue.js\n\n// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two.\nconst kSize = 2048;\nconst kMask = kSize - 1;\n\n// The FixedQueue is implemented as a singly-linked list of fixed-size\n// circular buffers. It looks something like this:\n//\n// head tail\n// | |\n// v v\n// +-----------+ <-----\\ +-----------+ <------\\ +-----------+\n// | [null] | \\----- | next | \\------- | next |\n// +-----------+ +-----------+ +-----------+\n// | item | <-- bottom | item | <-- bottom | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | | [empty] |\n// | item | | item | bottom --> | item |\n// | item | | item | | item |\n// | ... | | ... | | ... |\n// | item | | item | | item |\n// | item | | item | | item |\n// | [empty] | <-- top | item | | item |\n// | [empty] | | item | | item |\n// | [empty] | | [empty] | <-- top top --> | [empty] |\n// +-----------+ +-----------+ +-----------+\n//\n// Or, if there is only one circular buffer, it looks something\n// like either of these:\n//\n// head tail head tail\n// | | | |\n// v v v v\n// +-----------+ +-----------+\n// | [null] | | [null] |\n// +-----------+ +-----------+\n// | [empty] | | item |\n// | [empty] | | item |\n// | item | <-- bottom top --> | [empty] |\n// | item | | [empty] |\n// | [empty] | <-- top bottom --> | item |\n// | [empty] | | item |\n// +-----------+ +-----------+\n//\n// Adding a value means moving `top` forward by one, removing means\n// moving `bottom` forward by one. After reaching the end, the queue\n// wraps around.\n//\n// When `top === bottom` the current queue is empty and when\n// `top + 1 === bottom` it's full. This wastes a single space of storage\n// but allows much quicker checks.\n\nclass FixedCircularBuffer {\n constructor() {\n this.bottom = 0;\n this.top = 0;\n this.list = new Array(kSize);\n this.next = null;\n }\n\n isEmpty() {\n return this.top === this.bottom;\n }\n\n isFull() {\n return ((this.top + 1) & kMask) === this.bottom;\n }\n\n push(data) {\n this.list[this.top] = data;\n this.top = (this.top + 1) & kMask;\n }\n\n shift() {\n const nextItem = this.list[this.bottom];\n if (nextItem === undefined)\n return null;\n this.list[this.bottom] = undefined;\n this.bottom = (this.bottom + 1) & kMask;\n return nextItem;\n }\n}\n\nmodule.exports = class FixedQueue {\n constructor() {\n this.head = this.tail = new FixedCircularBuffer();\n }\n\n isEmpty() {\n return this.head.isEmpty();\n }\n\n push(data) {\n if (this.head.isFull()) {\n // Head is full: Creates a new queue, sets the old queue's `.next` to it,\n // and sets it as the new main queue.\n this.head = this.head.next = new FixedCircularBuffer();\n }\n this.head.push(data);\n }\n\n shift() {\n const tail = this.tail;\n const next = tail.shift();\n if (tail.isEmpty() && tail.next !== null) {\n // If there is another queue, it forms the new tail.\n this.tail = tail.next;\n }\n return next;\n }\n};\n","const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require('./core/symbols')\nconst kPool = Symbol('pool')\n\nclass PoolStats {\n constructor (pool) {\n this[kPool] = pool\n }\n\n get connected () {\n return this[kPool][kConnected]\n }\n\n get free () {\n return this[kPool][kFree]\n }\n\n get pending () {\n return this[kPool][kPending]\n }\n\n get queued () {\n return this[kPool][kQueued]\n }\n\n get running () {\n return this[kPool][kRunning]\n }\n\n get size () {\n return this[kPool][kSize]\n }\n}\n\nmodule.exports = PoolStats\n","'use strict'\n\nconst DispatcherBase = require('./dispatcher-base')\nconst FixedQueue = require('./node/fixed-queue')\nconst { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require('./core/symbols')\nconst PoolStats = require('./pool-stats')\n\nconst kClients = Symbol('clients')\nconst kNeedDrain = Symbol('needDrain')\nconst kQueue = Symbol('queue')\nconst kClosedResolve = Symbol('closed resolve')\nconst kOnDrain = Symbol('onDrain')\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kGetDispatcher = Symbol('get dispatcher')\nconst kAddClient = Symbol('add client')\nconst kRemoveClient = Symbol('remove client')\nconst kStats = Symbol('stats')\n\nclass PoolBase extends DispatcherBase {\n constructor () {\n super()\n\n this[kQueue] = new FixedQueue()\n this[kClients] = []\n this[kQueued] = 0\n\n const pool = this\n\n this[kOnDrain] = function onDrain (origin, targets) {\n const queue = pool[kQueue]\n\n let needDrain = false\n\n while (!needDrain) {\n const item = queue.shift()\n if (!item) {\n break\n }\n pool[kQueued]--\n needDrain = !this.dispatch(item.opts, item.handler)\n }\n\n this[kNeedDrain] = needDrain\n\n if (!this[kNeedDrain] && pool[kNeedDrain]) {\n pool[kNeedDrain] = false\n pool.emit('drain', origin, [pool, ...targets])\n }\n\n if (pool[kClosedResolve] && queue.isEmpty()) {\n Promise\n .all(pool[kClients].map(c => c.close()))\n .then(pool[kClosedResolve])\n }\n }\n\n this[kOnConnect] = (origin, targets) => {\n pool.emit('connect', origin, [pool, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n pool.emit('disconnect', origin, [pool, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n pool.emit('connectionError', origin, [pool, ...targets], err)\n }\n\n this[kStats] = new PoolStats(this)\n }\n\n get [kBusy] () {\n return this[kNeedDrain]\n }\n\n get [kConnected] () {\n return this[kClients].filter(client => client[kConnected]).length\n }\n\n get [kFree] () {\n return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length\n }\n\n get [kPending] () {\n let ret = this[kQueued]\n for (const { [kPending]: pending } of this[kClients]) {\n ret += pending\n }\n return ret\n }\n\n get [kRunning] () {\n let ret = 0\n for (const { [kRunning]: running } of this[kClients]) {\n ret += running\n }\n return ret\n }\n\n get [kSize] () {\n let ret = this[kQueued]\n for (const { [kSize]: size } of this[kClients]) {\n ret += size\n }\n return ret\n }\n\n get stats () {\n return this[kStats]\n }\n\n async [kClose] () {\n if (this[kQueue].isEmpty()) {\n return Promise.all(this[kClients].map(c => c.close()))\n } else {\n return new Promise((resolve) => {\n this[kClosedResolve] = resolve\n })\n }\n }\n\n async [kDestroy] (err) {\n while (true) {\n const item = this[kQueue].shift()\n if (!item) {\n break\n }\n item.handler.onError(err)\n }\n\n return Promise.all(this[kClients].map(c => c.destroy(err)))\n }\n\n [kDispatch] (opts, handler) {\n const dispatcher = this[kGetDispatcher]()\n\n if (!dispatcher) {\n this[kNeedDrain] = true\n this[kQueue].push({ opts, handler })\n this[kQueued]++\n } else if (!dispatcher.dispatch(opts, handler)) {\n dispatcher[kNeedDrain] = true\n this[kNeedDrain] = !this[kGetDispatcher]()\n }\n\n return !this[kNeedDrain]\n }\n\n [kAddClient] (client) {\n client\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].push(client)\n\n if (this[kNeedDrain]) {\n process.nextTick(() => {\n if (this[kNeedDrain]) {\n this[kOnDrain](client[kUrl], [this, client])\n }\n })\n }\n\n return this\n }\n\n [kRemoveClient] (client) {\n client.close(() => {\n const idx = this[kClients].indexOf(client)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n })\n\n this[kNeedDrain] = this[kClients].some(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n }\n}\n\nmodule.exports = {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n}\n","'use strict'\n\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Client = require('./client')\nconst {\n InvalidArgumentError\n} = require('./core/errors')\nconst util = require('./core/util')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst buildConnector = require('./core/connect')\n\nconst kOptions = Symbol('options')\nconst kConnections = Symbol('connections')\nconst kFactory = Symbol('factory')\n\nfunction defaultFactory (origin, opts) {\n return new Client(origin, opts)\n}\n\nclass Pool extends PoolBase {\n constructor (origin, {\n connections,\n factory = defaultFactory,\n connect,\n connectTimeout,\n tls,\n maxCachedSessions,\n socketPath,\n autoSelectFamily,\n autoSelectFamilyAttemptTimeout,\n allowH2,\n ...options\n } = {}) {\n super()\n\n if (connections != null && (!Number.isFinite(connections) || connections < 0)) {\n throw new InvalidArgumentError('invalid connections')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (typeof connect !== 'function') {\n connect = buildConnector({\n ...tls,\n maxCachedSessions,\n allowH2,\n socketPath,\n timeout: connectTimeout,\n ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined),\n ...connect\n })\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool)\n ? options.interceptors.Pool\n : []\n this[kConnections] = connections || null\n this[kUrl] = util.parseOrigin(origin)\n this[kOptions] = { ...util.deepClone(options), connect, allowH2 }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kFactory] = factory\n\n this.on('connectionError', (origin, targets, error) => {\n // If a connection error occurs, we remove the client from the pool,\n // and emit a connectionError event. They will not be re-used.\n // Fixes https://github.com/nodejs/undici/issues/3895\n for (const target of targets) {\n // Do not use kRemoveClient here, as it will close the client,\n // but the client cannot be closed in this state.\n const idx = this[kClients].indexOf(target)\n if (idx !== -1) {\n this[kClients].splice(idx, 1)\n }\n }\n })\n }\n\n [kGetDispatcher] () {\n let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain])\n\n if (dispatcher) {\n return dispatcher\n }\n\n if (!this[kConnections] || this[kClients].length < this[kConnections]) {\n dispatcher = this[kFactory](this[kUrl], this[kOptions])\n this[kAddClient](dispatcher)\n }\n\n return dispatcher\n }\n}\n\nmodule.exports = Pool\n","'use strict'\n\nconst {\n BalancedPoolMissingUpstreamError,\n InvalidArgumentError\n} = require('./core/errors')\nconst {\n PoolBase,\n kClients,\n kNeedDrain,\n kAddClient,\n kRemoveClient,\n kGetDispatcher\n} = require('./pool-base')\nconst Pool = require('./pool')\nconst { kUrl, kInterceptors } = require('./core/symbols')\nconst { parseOrigin } = require('./core/util')\nconst kFactory = Symbol('factory')\n\nconst kOptions = Symbol('options')\nconst kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor')\nconst kCurrentWeight = Symbol('kCurrentWeight')\nconst kIndex = Symbol('kIndex')\nconst kWeight = Symbol('kWeight')\nconst kMaxWeightPerServer = Symbol('kMaxWeightPerServer')\nconst kErrorPenalty = Symbol('kErrorPenalty')\n\nfunction getGreatestCommonDivisor (a, b) {\n if (b === 0) return a\n return getGreatestCommonDivisor(b, a % b)\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass BalancedPool extends PoolBase {\n constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) {\n super()\n\n this[kOptions] = opts\n this[kIndex] = -1\n this[kCurrentWeight] = 0\n\n this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100\n this[kErrorPenalty] = this[kOptions].errorPenalty || 15\n\n if (!Array.isArray(upstreams)) {\n upstreams = [upstreams]\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool)\n ? opts.interceptors.BalancedPool\n : []\n this[kFactory] = factory\n\n for (const upstream of upstreams) {\n this.addUpstream(upstream)\n }\n this._updateBalancedPoolStats()\n }\n\n addUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n if (this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))) {\n return this\n }\n const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions]))\n\n this[kAddClient](pool)\n pool.on('connect', () => {\n pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty])\n })\n\n pool.on('connectionError', () => {\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n })\n\n pool.on('disconnect', (...args) => {\n const err = args[2]\n if (err && err.code === 'UND_ERR_SOCKET') {\n // decrease the weight of the pool.\n pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty])\n this._updateBalancedPoolStats()\n }\n })\n\n for (const client of this[kClients]) {\n client[kWeight] = this[kMaxWeightPerServer]\n }\n\n this._updateBalancedPoolStats()\n\n return this\n }\n\n _updateBalancedPoolStats () {\n this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0)\n }\n\n removeUpstream (upstream) {\n const upstreamOrigin = parseOrigin(upstream).origin\n\n const pool = this[kClients].find((pool) => (\n pool[kUrl].origin === upstreamOrigin &&\n pool.closed !== true &&\n pool.destroyed !== true\n ))\n\n if (pool) {\n this[kRemoveClient](pool)\n }\n\n return this\n }\n\n get upstreams () {\n return this[kClients]\n .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true)\n .map((p) => p[kUrl].origin)\n }\n\n [kGetDispatcher] () {\n // We validate that pools is greater than 0,\n // otherwise we would have to wait until an upstream\n // is added, which might never happen.\n if (this[kClients].length === 0) {\n throw new BalancedPoolMissingUpstreamError()\n }\n\n const dispatcher = this[kClients].find(dispatcher => (\n !dispatcher[kNeedDrain] &&\n dispatcher.closed !== true &&\n dispatcher.destroyed !== true\n ))\n\n if (!dispatcher) {\n return\n }\n\n const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true)\n\n if (allClientsBusy) {\n return\n }\n\n let counter = 0\n\n let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain])\n\n while (counter++ < this[kClients].length) {\n this[kIndex] = (this[kIndex] + 1) % this[kClients].length\n const pool = this[kClients][this[kIndex]]\n\n // find pool index with the largest weight\n if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) {\n maxWeightIndex = this[kIndex]\n }\n\n // decrease the current weight every `this[kClients].length`.\n if (this[kIndex] === 0) {\n // Set the current weight to the next lower weight.\n this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]\n\n if (this[kCurrentWeight] <= 0) {\n this[kCurrentWeight] = this[kMaxWeightPerServer]\n }\n }\n if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) {\n return pool\n }\n }\n\n this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]\n this[kIndex] = maxWeightIndex\n return this[kClients][maxWeightIndex]\n }\n}\n\nmodule.exports = BalancedPool\n","'use strict'\n\n/* istanbul ignore file: only for Node 12 */\n\nconst { kConnected, kSize } = require('../core/symbols')\n\nclass CompatWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value[kConnected] === 0 && this.value[kSize] === 0\n ? undefined\n : this.value\n }\n}\n\nclass CompatFinalizer {\n constructor (finalizer) {\n this.finalizer = finalizer\n }\n\n register (dispatcher, key) {\n if (dispatcher.on) {\n dispatcher.on('disconnect', () => {\n if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) {\n this.finalizer(key)\n }\n })\n }\n }\n}\n\nmodule.exports = function () {\n // FIXME: remove workaround when the Node bug is fixed\n // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308\n if (process.env.NODE_V8_COVERAGE) {\n return {\n WeakRef: CompatWeakRef,\n FinalizationRegistry: CompatFinalizer\n }\n }\n return {\n WeakRef: global.WeakRef || CompatWeakRef,\n FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer\n }\n}\n","'use strict'\n\nconst { InvalidArgumentError } = require('./core/errors')\nconst { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require('./core/symbols')\nconst DispatcherBase = require('./dispatcher-base')\nconst Pool = require('./pool')\nconst Client = require('./client')\nconst util = require('./core/util')\nconst createRedirectInterceptor = require('./interceptor/redirectInterceptor')\nconst { WeakRef, FinalizationRegistry } = require('./compat/dispatcher-weakref')()\n\nconst kOnConnect = Symbol('onConnect')\nconst kOnDisconnect = Symbol('onDisconnect')\nconst kOnConnectionError = Symbol('onConnectionError')\nconst kMaxRedirections = Symbol('maxRedirections')\nconst kOnDrain = Symbol('onDrain')\nconst kFactory = Symbol('factory')\nconst kFinalizer = Symbol('finalizer')\nconst kOptions = Symbol('options')\n\nfunction defaultFactory (origin, opts) {\n return opts && opts.connections === 1\n ? new Client(origin, opts)\n : new Pool(origin, opts)\n}\n\nclass Agent extends DispatcherBase {\n constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) {\n super()\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('factory must be a function.')\n }\n\n if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') {\n throw new InvalidArgumentError('connect must be a function or an object')\n }\n\n if (!Number.isInteger(maxRedirections) || maxRedirections < 0) {\n throw new InvalidArgumentError('maxRedirections must be a positive number')\n }\n\n if (connect && typeof connect !== 'function') {\n connect = { ...connect }\n }\n\n this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent)\n ? options.interceptors.Agent\n : [createRedirectInterceptor({ maxRedirections })]\n\n this[kOptions] = { ...util.deepClone(options), connect }\n this[kOptions].interceptors = options.interceptors\n ? { ...options.interceptors }\n : undefined\n this[kMaxRedirections] = maxRedirections\n this[kFactory] = factory\n this[kClients] = new Map()\n this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => {\n const ref = this[kClients].get(key)\n if (ref !== undefined && ref.deref() === undefined) {\n this[kClients].delete(key)\n }\n })\n\n const agent = this\n\n this[kOnDrain] = (origin, targets) => {\n agent.emit('drain', origin, [agent, ...targets])\n }\n\n this[kOnConnect] = (origin, targets) => {\n agent.emit('connect', origin, [agent, ...targets])\n }\n\n this[kOnDisconnect] = (origin, targets, err) => {\n agent.emit('disconnect', origin, [agent, ...targets], err)\n }\n\n this[kOnConnectionError] = (origin, targets, err) => {\n agent.emit('connectionError', origin, [agent, ...targets], err)\n }\n }\n\n get [kRunning] () {\n let ret = 0\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore next: gc is undeterministic */\n if (client) {\n ret += client[kRunning]\n }\n }\n return ret\n }\n\n [kDispatch] (opts, handler) {\n let key\n if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) {\n key = String(opts.origin)\n } else {\n throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.')\n }\n\n const ref = this[kClients].get(key)\n\n let dispatcher = ref ? ref.deref() : null\n if (!dispatcher) {\n dispatcher = this[kFactory](opts.origin, this[kOptions])\n .on('drain', this[kOnDrain])\n .on('connect', this[kOnConnect])\n .on('disconnect', this[kOnDisconnect])\n .on('connectionError', this[kOnConnectionError])\n\n this[kClients].set(key, new WeakRef(dispatcher))\n this[kFinalizer].register(dispatcher, key)\n }\n\n return dispatcher.dispatch(opts, handler)\n }\n\n async [kClose] () {\n const closePromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n closePromises.push(client.close())\n }\n }\n\n await Promise.all(closePromises)\n }\n\n async [kDestroy] (err) {\n const destroyPromises = []\n for (const ref of this[kClients].values()) {\n const client = ref.deref()\n /* istanbul ignore else: gc is undeterministic */\n if (client) {\n destroyPromises.push(client.destroy(err))\n }\n }\n\n await Promise.all(destroyPromises)\n }\n}\n\nmodule.exports = Agent\n","// Ported from https://github.com/nodejs/undici/pull/907\n\n'use strict'\n\nconst assert = require('assert')\nconst { Readable } = require('stream')\nconst { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require('../core/errors')\nconst util = require('../core/util')\nconst { ReadableStreamFrom, toUSVString } = require('../core/util')\n\nlet Blob\n\nconst kConsume = Symbol('kConsume')\nconst kReading = Symbol('kReading')\nconst kBody = Symbol('kBody')\nconst kAbort = Symbol('abort')\nconst kContentType = Symbol('kContentType')\n\nconst noop = () => {}\n\nmodule.exports = class BodyReadable extends Readable {\n constructor ({\n resume,\n abort,\n contentType = '',\n highWaterMark = 64 * 1024 // Same as nodejs fs streams.\n }) {\n super({\n autoDestroy: true,\n read: resume,\n highWaterMark\n })\n\n this._readableState.dataEmitted = false\n\n this[kAbort] = abort\n this[kConsume] = null\n this[kBody] = null\n this[kContentType] = contentType\n\n // Is stream being consumed through Readable API?\n // This is an optimization so that we avoid checking\n // for 'data' and 'readable' listeners in the hot path\n // inside push().\n this[kReading] = false\n }\n\n destroy (err) {\n if (this.destroyed) {\n // Node < 16\n return this\n }\n\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (err) {\n this[kAbort]()\n }\n\n return super.destroy(err)\n }\n\n emit (ev, ...args) {\n if (ev === 'data') {\n // Node < 16.7\n this._readableState.dataEmitted = true\n } else if (ev === 'error') {\n // Node < 16\n this._readableState.errorEmitted = true\n }\n return super.emit(ev, ...args)\n }\n\n on (ev, ...args) {\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = true\n }\n return super.on(ev, ...args)\n }\n\n addListener (ev, ...args) {\n return this.on(ev, ...args)\n }\n\n off (ev, ...args) {\n const ret = super.off(ev, ...args)\n if (ev === 'data' || ev === 'readable') {\n this[kReading] = (\n this.listenerCount('data') > 0 ||\n this.listenerCount('readable') > 0\n )\n }\n return ret\n }\n\n removeListener (ev, ...args) {\n return this.off(ev, ...args)\n }\n\n push (chunk) {\n if (this[kConsume] && chunk !== null && this.readableLength === 0) {\n consumePush(this[kConsume], chunk)\n return this[kReading] ? super.push(chunk) : true\n }\n return super.push(chunk)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-text\n async text () {\n return consume(this, 'text')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-json\n async json () {\n return consume(this, 'json')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-blob\n async blob () {\n return consume(this, 'blob')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-arraybuffer\n async arrayBuffer () {\n return consume(this, 'arrayBuffer')\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-formdata\n async formData () {\n // TODO: Implement.\n throw new NotSupportedError()\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-bodyused\n get bodyUsed () {\n return util.isDisturbed(this)\n }\n\n // https://fetch.spec.whatwg.org/#dom-body-body\n get body () {\n if (!this[kBody]) {\n this[kBody] = ReadableStreamFrom(this)\n if (this[kConsume]) {\n // TODO: Is this the best way to force a lock?\n this[kBody].getReader() // Ensure stream is locked.\n assert(this[kBody].locked)\n }\n }\n return this[kBody]\n }\n\n dump (opts) {\n let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144\n const signal = opts && opts.signal\n\n if (signal) {\n try {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new InvalidArgumentError('signal must be an AbortSignal')\n }\n util.throwIfAborted(signal)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n if (this.closed) {\n return Promise.resolve(null)\n }\n\n return new Promise((resolve, reject) => {\n const signalListenerCleanup = signal\n ? util.addAbortListener(signal, () => {\n this.destroy()\n })\n : noop\n\n this\n .on('close', function () {\n signalListenerCleanup()\n if (signal && signal.aborted) {\n reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))\n } else {\n resolve(null)\n }\n })\n .on('error', noop)\n .on('data', function (chunk) {\n limit -= chunk.length\n if (limit <= 0) {\n this.destroy()\n }\n })\n .resume()\n })\n }\n}\n\n// https://streams.spec.whatwg.org/#readablestream-locked\nfunction isLocked (self) {\n // Consume is an implicit lock.\n return (self[kBody] && self[kBody].locked === true) || self[kConsume]\n}\n\n// https://fetch.spec.whatwg.org/#body-unusable\nfunction isUnusable (self) {\n return util.isDisturbed(self) || isLocked(self)\n}\n\nasync function consume (stream, type) {\n if (isUnusable(stream)) {\n throw new TypeError('unusable')\n }\n\n assert(!stream[kConsume])\n\n return new Promise((resolve, reject) => {\n stream[kConsume] = {\n type,\n stream,\n resolve,\n reject,\n length: 0,\n body: []\n }\n\n stream\n .on('error', function (err) {\n consumeFinish(this[kConsume], err)\n })\n .on('close', function () {\n if (this[kConsume].body !== null) {\n consumeFinish(this[kConsume], new RequestAbortedError())\n }\n })\n\n process.nextTick(consumeStart, stream[kConsume])\n })\n}\n\nfunction consumeStart (consume) {\n if (consume.body === null) {\n return\n }\n\n const { _readableState: state } = consume.stream\n\n for (const chunk of state.buffer) {\n consumePush(consume, chunk)\n }\n\n if (state.endEmitted) {\n consumeEnd(this[kConsume])\n } else {\n consume.stream.on('end', function () {\n consumeEnd(this[kConsume])\n })\n }\n\n consume.stream.resume()\n\n while (consume.stream.read() != null) {\n // Loop\n }\n}\n\nfunction consumeEnd (consume) {\n const { type, body, resolve, stream, length } = consume\n\n try {\n if (type === 'text') {\n resolve(toUSVString(Buffer.concat(body)))\n } else if (type === 'json') {\n resolve(JSON.parse(Buffer.concat(body)))\n } else if (type === 'arrayBuffer') {\n const dst = new Uint8Array(length)\n\n let pos = 0\n for (const buf of body) {\n dst.set(buf, pos)\n pos += buf.byteLength\n }\n\n resolve(dst.buffer)\n } else if (type === 'blob') {\n if (!Blob) {\n Blob = require('buffer').Blob\n }\n resolve(new Blob(body, { type: stream[kContentType] }))\n }\n\n consumeFinish(consume)\n } catch (err) {\n stream.destroy(err)\n }\n}\n\nfunction consumePush (consume, chunk) {\n consume.length += chunk.length\n consume.body.push(chunk)\n}\n\nfunction consumeFinish (consume, err) {\n if (consume.body === null) {\n return\n }\n\n if (err) {\n consume.reject(err)\n } else {\n consume.resolve()\n }\n\n consume.type = null\n consume.stream = null\n consume.resolve = null\n consume.reject = null\n consume.length = 0\n consume.body = null\n}\n","const assert = require('assert')\nconst {\n ResponseStatusCodeError\n} = require('../core/errors')\nconst { toUSVString } = require('../core/util')\n\nasync function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) {\n assert(body)\n\n let chunks = []\n let limit = 0\n\n for await (const chunk of body) {\n chunks.push(chunk)\n limit += chunk.length\n if (limit > 128 * 1024) {\n chunks = null\n break\n }\n }\n\n if (statusCode === 204 || !contentType || !chunks) {\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n return\n }\n\n try {\n if (contentType.startsWith('application/json')) {\n const payload = JSON.parse(toUSVString(Buffer.concat(chunks)))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n\n if (contentType.startsWith('text/')) {\n const payload = toUSVString(Buffer.concat(chunks))\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload))\n return\n }\n } catch (err) {\n // Process in a fallback if error\n }\n\n process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers))\n}\n\nmodule.exports = { getResolveErrorBodyCallback }\n","const { addAbortListener } = require('../core/util')\nconst { RequestAbortedError } = require('../core/errors')\n\nconst kListener = Symbol('kListener')\nconst kSignal = Symbol('kSignal')\n\nfunction abort (self) {\n if (self.abort) {\n self.abort()\n } else {\n self.onError(new RequestAbortedError())\n }\n}\n\nfunction addSignal (self, signal) {\n self[kSignal] = null\n self[kListener] = null\n\n if (!signal) {\n return\n }\n\n if (signal.aborted) {\n abort(self)\n return\n }\n\n self[kSignal] = signal\n self[kListener] = () => {\n abort(self)\n }\n\n addAbortListener(self[kSignal], self[kListener])\n}\n\nfunction removeSignal (self) {\n if (!self[kSignal]) {\n return\n }\n\n if ('removeEventListener' in self[kSignal]) {\n self[kSignal].removeEventListener('abort', self[kListener])\n } else {\n self[kSignal].removeListener('abort', self[kListener])\n }\n\n self[kSignal] = null\n self[kListener] = null\n}\n\nmodule.exports = {\n addSignal,\n removeSignal\n}\n","'use strict'\n\nconst Readable = require('./readable')\nconst {\n InvalidArgumentError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass RequestHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) {\n throw new InvalidArgumentError('invalid highWaterMark')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_REQUEST')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.res = null\n this.abort = null\n this.body = body\n this.trailers = {}\n this.context = null\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError\n this.highWaterMark = highWaterMark\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n const body = new Readable({ resume, abort, contentType, highWaterMark })\n\n this.callback = null\n this.res = body\n if (callback !== null) {\n if (this.throwOnError && statusCode >= 400) {\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body, contentType, statusCode, statusMessage, headers }\n )\n } else {\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n trailers: this.trailers,\n opaque,\n body,\n context\n })\n }\n }\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n util.parseHeaders(trailers, this.trailers)\n\n res.push(null)\n }\n\n onError (err) {\n const { res, callback, body, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n // TODO: Does this need queueMicrotask?\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (res) {\n this.res = null\n // Ensure all queued handlers are invoked before destroying res.\n queueMicrotask(() => {\n util.destroy(res, err)\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction request (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n request.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new RequestHandler(opts, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = request\nmodule.exports.RequestHandler = RequestHandler\n","'use strict'\n\nconst { finished, PassThrough } = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { getResolveErrorBodyCallback } = require('./util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass StreamHandler extends AsyncResource {\n constructor (opts, factory, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts\n\n try {\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n if (typeof factory !== 'function') {\n throw new InvalidArgumentError('invalid factory')\n }\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_STREAM')\n } catch (err) {\n if (util.isStream(body)) {\n util.destroy(body.on('error', util.nop), err)\n }\n throw err\n }\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.factory = factory\n this.callback = callback\n this.res = null\n this.abort = null\n this.context = null\n this.trailers = null\n this.body = body\n this.onInfo = onInfo || null\n this.throwOnError = throwOnError || false\n\n if (util.isStream(body)) {\n body.on('error', (err) => {\n this.onError(err)\n })\n }\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const { factory, opaque, context, callback, responseHeaders } = this\n\n const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n\n if (statusCode < 200) {\n if (this.onInfo) {\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.factory = null\n\n let res\n\n if (this.throwOnError && statusCode >= 400) {\n const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers\n const contentType = parsedHeaders['content-type']\n res = new PassThrough()\n\n this.callback = null\n this.runInAsyncScope(getResolveErrorBodyCallback, null,\n { callback, body: res, contentType, statusCode, statusMessage, headers }\n )\n } else {\n if (factory === null) {\n return\n }\n\n res = this.runInAsyncScope(factory, null, {\n statusCode,\n headers,\n opaque,\n context\n })\n\n if (\n !res ||\n typeof res.write !== 'function' ||\n typeof res.end !== 'function' ||\n typeof res.on !== 'function'\n ) {\n throw new InvalidReturnValueError('expected Writable')\n }\n\n // TODO: Avoid finished. It registers an unnecessary amount of listeners.\n finished(res, { readable: false }, (err) => {\n const { callback, res, opaque, trailers, abort } = this\n\n this.res = null\n if (err || !res.readable) {\n util.destroy(res, err)\n }\n\n this.callback = null\n this.runInAsyncScope(callback, null, err || null, { opaque, trailers })\n\n if (err) {\n abort()\n }\n })\n }\n\n res.on('drain', resume)\n\n this.res = res\n\n const needDrain = res.writableNeedDrain !== undefined\n ? res.writableNeedDrain\n : res._writableState && res._writableState.needDrain\n\n return needDrain !== true\n }\n\n onData (chunk) {\n const { res } = this\n\n return res ? res.write(chunk) : true\n }\n\n onComplete (trailers) {\n const { res } = this\n\n removeSignal(this)\n\n if (!res) {\n return\n }\n\n this.trailers = util.parseHeaders(trailers)\n\n res.end()\n }\n\n onError (err) {\n const { res, callback, opaque, body } = this\n\n removeSignal(this)\n\n this.factory = null\n\n if (res) {\n this.res = null\n util.destroy(res, err)\n } else if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n\n if (body) {\n this.body = null\n util.destroy(body, err)\n }\n }\n}\n\nfunction stream (opts, factory, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n stream.call(this, opts, factory, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n this.dispatch(opts, new StreamHandler(opts, factory, callback))\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = stream\n","'use strict'\n\nconst {\n Readable,\n Duplex,\n PassThrough\n} = require('stream')\nconst {\n InvalidArgumentError,\n InvalidReturnValueError,\n RequestAbortedError\n} = require('../core/errors')\nconst util = require('../core/util')\nconst { AsyncResource } = require('async_hooks')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nconst kResume = Symbol('resume')\n\nclass PipelineRequest extends Readable {\n constructor () {\n super({ autoDestroy: true })\n\n this[kResume] = null\n }\n\n _read () {\n const { [kResume]: resume } = this\n\n if (resume) {\n this[kResume] = null\n resume()\n }\n }\n\n _destroy (err, callback) {\n this._read()\n\n callback(err)\n }\n}\n\nclass PipelineResponse extends Readable {\n constructor (resume) {\n super({ autoDestroy: true })\n this[kResume] = resume\n }\n\n _read () {\n this[kResume]()\n }\n\n _destroy (err, callback) {\n if (!err && !this._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n callback(err)\n }\n}\n\nclass PipelineHandler extends AsyncResource {\n constructor (opts, handler) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof handler !== 'function') {\n throw new InvalidArgumentError('invalid handler')\n }\n\n const { signal, method, opaque, onInfo, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n if (method === 'CONNECT') {\n throw new InvalidArgumentError('invalid method')\n }\n\n if (onInfo && typeof onInfo !== 'function') {\n throw new InvalidArgumentError('invalid onInfo callback')\n }\n\n super('UNDICI_PIPELINE')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.handler = handler\n this.abort = null\n this.context = null\n this.onInfo = onInfo || null\n\n this.req = new PipelineRequest().on('error', util.nop)\n\n this.ret = new Duplex({\n readableObjectMode: opts.objectMode,\n autoDestroy: true,\n read: () => {\n const { body } = this\n\n if (body && body.resume) {\n body.resume()\n }\n },\n write: (chunk, encoding, callback) => {\n const { req } = this\n\n if (req.push(chunk, encoding) || req._readableState.destroyed) {\n callback()\n } else {\n req[kResume] = callback\n }\n },\n destroy: (err, callback) => {\n const { body, req, res, ret, abort } = this\n\n if (!err && !ret._readableState.endEmitted) {\n err = new RequestAbortedError()\n }\n\n if (abort && err) {\n abort()\n }\n\n util.destroy(body, err)\n util.destroy(req, err)\n util.destroy(res, err)\n\n removeSignal(this)\n\n callback(err)\n }\n }).on('prefinish', () => {\n const { req } = this\n\n // Node < 15 does not call _final in same tick.\n req.push(null)\n })\n\n this.res = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n const { ret, res } = this\n\n assert(!res, 'pipeline cannot be retried')\n\n if (ret.destroyed) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders (statusCode, rawHeaders, resume) {\n const { opaque, handler, context } = this\n\n if (statusCode < 200) {\n if (this.onInfo) {\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.onInfo({ statusCode, headers })\n }\n return\n }\n\n this.res = new PipelineResponse(resume)\n\n let body\n try {\n this.handler = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n body = this.runInAsyncScope(handler, null, {\n statusCode,\n headers,\n opaque,\n body: this.res,\n context\n })\n } catch (err) {\n this.res.on('error', util.nop)\n throw err\n }\n\n if (!body || typeof body.on !== 'function') {\n throw new InvalidReturnValueError('expected Readable')\n }\n\n body\n .on('data', (chunk) => {\n const { ret, body } = this\n\n if (!ret.push(chunk) && body.pause) {\n body.pause()\n }\n })\n .on('error', (err) => {\n const { ret } = this\n\n util.destroy(ret, err)\n })\n .on('end', () => {\n const { ret } = this\n\n ret.push(null)\n })\n .on('close', () => {\n const { ret } = this\n\n if (!ret._readableState.ended) {\n util.destroy(ret, new RequestAbortedError())\n }\n })\n\n this.body = body\n }\n\n onData (chunk) {\n const { res } = this\n return res.push(chunk)\n }\n\n onComplete (trailers) {\n const { res } = this\n res.push(null)\n }\n\n onError (err) {\n const { ret } = this\n this.handler = null\n util.destroy(ret, err)\n }\n}\n\nfunction pipeline (opts, handler) {\n try {\n const pipelineHandler = new PipelineHandler(opts, handler)\n this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler)\n return pipelineHandler.ret\n } catch (err) {\n return new PassThrough().destroy(err)\n }\n}\n\nmodule.exports = pipeline\n","'use strict'\n\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst { AsyncResource } = require('async_hooks')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\nconst assert = require('assert')\n\nclass UpgradeHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_UPGRADE')\n\n this.responseHeaders = responseHeaders || null\n this.opaque = opaque || null\n this.callback = callback\n this.abort = null\n this.context = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = null\n }\n\n onHeaders () {\n throw new SocketError('bad upgrade', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n assert.strictEqual(statusCode, 101)\n\n removeSignal(this)\n\n this.callback = null\n const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n this.runInAsyncScope(callback, null, null, {\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction upgrade (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n upgrade.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const upgradeHandler = new UpgradeHandler(opts, callback)\n this.dispatch({\n ...opts,\n method: opts.method || 'GET',\n upgrade: opts.protocol || 'Websocket'\n }, upgradeHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = upgrade\n","'use strict'\n\nconst { AsyncResource } = require('async_hooks')\nconst { InvalidArgumentError, RequestAbortedError, SocketError } = require('../core/errors')\nconst util = require('../core/util')\nconst { addSignal, removeSignal } = require('./abort-signal')\n\nclass ConnectHandler extends AsyncResource {\n constructor (opts, callback) {\n if (!opts || typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (typeof callback !== 'function') {\n throw new InvalidArgumentError('invalid callback')\n }\n\n const { signal, opaque, responseHeaders } = opts\n\n if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') {\n throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget')\n }\n\n super('UNDICI_CONNECT')\n\n this.opaque = opaque || null\n this.responseHeaders = responseHeaders || null\n this.callback = callback\n this.abort = null\n\n addSignal(this, signal)\n }\n\n onConnect (abort, context) {\n if (!this.callback) {\n throw new RequestAbortedError()\n }\n\n this.abort = abort\n this.context = context\n }\n\n onHeaders () {\n throw new SocketError('bad connect', null)\n }\n\n onUpgrade (statusCode, rawHeaders, socket) {\n const { callback, opaque, context } = this\n\n removeSignal(this)\n\n this.callback = null\n\n let headers = rawHeaders\n // Indicates is an HTTP2Session\n if (headers != null) {\n headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)\n }\n\n this.runInAsyncScope(callback, null, null, {\n statusCode,\n headers,\n socket,\n opaque,\n context\n })\n }\n\n onError (err) {\n const { callback, opaque } = this\n\n removeSignal(this)\n\n if (callback) {\n this.callback = null\n queueMicrotask(() => {\n this.runInAsyncScope(callback, null, err, { opaque })\n })\n }\n }\n}\n\nfunction connect (opts, callback) {\n if (callback === undefined) {\n return new Promise((resolve, reject) => {\n connect.call(this, opts, (err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n try {\n const connectHandler = new ConnectHandler(opts, callback)\n this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler)\n } catch (err) {\n if (typeof callback !== 'function') {\n throw err\n }\n const opaque = opts && opts.opaque\n queueMicrotask(() => callback(err, { opaque }))\n }\n}\n\nmodule.exports = connect\n","'use strict'\n\nmodule.exports.request = require('./api-request')\nmodule.exports.stream = require('./api-stream')\nmodule.exports.pipeline = require('./api-pipeline')\nmodule.exports.upgrade = require('./api-upgrade')\nmodule.exports.connect = require('./api-connect')\n","'use strict'\n\nconst { UndiciError } = require('../core/errors')\n\nclass MockNotMatchedError extends UndiciError {\n constructor (message) {\n super(message)\n Error.captureStackTrace(this, MockNotMatchedError)\n this.name = 'MockNotMatchedError'\n this.message = message || 'The request does not match any registered mock dispatches'\n this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'\n }\n}\n\nmodule.exports = {\n MockNotMatchedError\n}\n","'use strict'\n\nmodule.exports = {\n kAgent: Symbol('agent'),\n kOptions: Symbol('options'),\n kFactory: Symbol('factory'),\n kDispatches: Symbol('dispatches'),\n kDispatchKey: Symbol('dispatch key'),\n kDefaultHeaders: Symbol('default headers'),\n kDefaultTrailers: Symbol('default trailers'),\n kContentLength: Symbol('content length'),\n kMockAgent: Symbol('mock agent'),\n kMockAgentSet: Symbol('mock agent set'),\n kMockAgentGet: Symbol('mock agent get'),\n kMockDispatch: Symbol('mock dispatch'),\n kClose: Symbol('close'),\n kOriginalClose: Symbol('original agent close'),\n kOrigin: Symbol('origin'),\n kIsMockActive: Symbol('is mock active'),\n kNetConnect: Symbol('net connect'),\n kGetNetConnect: Symbol('get net connect'),\n kConnected: Symbol('connected')\n}\n","'use strict'\n\nconst { MockNotMatchedError } = require('./mock-errors')\nconst {\n kDispatches,\n kMockAgent,\n kOriginalDispatch,\n kOrigin,\n kGetNetConnect\n} = require('./mock-symbols')\nconst { buildURL, nop } = require('../core/util')\nconst { STATUS_CODES } = require('http')\nconst {\n types: {\n isPromise\n }\n} = require('util')\n\nfunction matchValue (match, value) {\n if (typeof match === 'string') {\n return match === value\n }\n if (match instanceof RegExp) {\n return match.test(value)\n }\n if (typeof match === 'function') {\n return match(value) === true\n }\n return false\n}\n\nfunction lowerCaseEntries (headers) {\n return Object.fromEntries(\n Object.entries(headers).map(([headerName, headerValue]) => {\n return [headerName.toLocaleLowerCase(), headerValue]\n })\n )\n}\n\n/**\n * @param {import('../../index').Headers|string[]|Record} headers\n * @param {string} key\n */\nfunction getHeaderByName (headers, key) {\n if (Array.isArray(headers)) {\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) {\n return headers[i + 1]\n }\n }\n\n return undefined\n } else if (typeof headers.get === 'function') {\n return headers.get(key)\n } else {\n return lowerCaseEntries(headers)[key.toLocaleLowerCase()]\n }\n}\n\n/** @param {string[]} headers */\nfunction buildHeadersFromArray (headers) { // fetch HeadersList\n const clone = headers.slice()\n const entries = []\n for (let index = 0; index < clone.length; index += 2) {\n entries.push([clone[index], clone[index + 1]])\n }\n return Object.fromEntries(entries)\n}\n\nfunction matchHeaders (mockDispatch, headers) {\n if (typeof mockDispatch.headers === 'function') {\n if (Array.isArray(headers)) { // fetch HeadersList\n headers = buildHeadersFromArray(headers)\n }\n return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {})\n }\n if (typeof mockDispatch.headers === 'undefined') {\n return true\n }\n if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') {\n return false\n }\n\n for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) {\n const headerValue = getHeaderByName(headers, matchHeaderName)\n\n if (!matchValue(matchHeaderValue, headerValue)) {\n return false\n }\n }\n return true\n}\n\nfunction safeUrl (path) {\n if (typeof path !== 'string') {\n return path\n }\n\n const pathSegments = path.split('?')\n\n if (pathSegments.length !== 2) {\n return path\n }\n\n const qp = new URLSearchParams(pathSegments.pop())\n qp.sort()\n return [...pathSegments, qp.toString()].join('?')\n}\n\nfunction matchKey (mockDispatch, { path, method, body, headers }) {\n const pathMatch = matchValue(mockDispatch.path, path)\n const methodMatch = matchValue(mockDispatch.method, method)\n const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true\n const headersMatch = matchHeaders(mockDispatch, headers)\n return pathMatch && methodMatch && bodyMatch && headersMatch\n}\n\nfunction getResponseData (data) {\n if (Buffer.isBuffer(data)) {\n return data\n } else if (typeof data === 'object') {\n return JSON.stringify(data)\n } else {\n return data.toString()\n }\n}\n\nfunction getMockDispatch (mockDispatches, key) {\n const basePath = key.query ? buildURL(key.path, key.query) : key.path\n const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath\n\n // Match path\n let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)\n }\n\n // Match method\n matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`)\n }\n\n // Match body\n matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true)\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`)\n }\n\n // Match headers\n matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers))\n if (matchedMockDispatches.length === 0) {\n throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`)\n }\n\n return matchedMockDispatches[0]\n}\n\nfunction addMockDispatch (mockDispatches, key, data) {\n const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }\n const replyData = typeof data === 'function' ? { callback: data } : { ...data }\n const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }\n mockDispatches.push(newMockDispatch)\n return newMockDispatch\n}\n\nfunction deleteMockDispatch (mockDispatches, key) {\n const index = mockDispatches.findIndex(dispatch => {\n if (!dispatch.consumed) {\n return false\n }\n return matchKey(dispatch, key)\n })\n if (index !== -1) {\n mockDispatches.splice(index, 1)\n }\n}\n\nfunction buildKey (opts) {\n const { path, method, body, headers, query } = opts\n return {\n path,\n method,\n body,\n headers,\n query\n }\n}\n\nfunction generateKeyValues (data) {\n return Object.entries(data).reduce((keyValuePairs, [key, value]) => [\n ...keyValuePairs,\n Buffer.from(`${key}`),\n Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`)\n ], [])\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status\n * @param {number} statusCode\n */\nfunction getStatusText (statusCode) {\n return STATUS_CODES[statusCode] || 'unknown'\n}\n\nasync function getResponse (body) {\n const buffers = []\n for await (const data of body) {\n buffers.push(data)\n }\n return Buffer.concat(buffers).toString('utf8')\n}\n\n/**\n * Mock dispatch function used to simulate undici dispatches\n */\nfunction mockDispatch (opts, handler) {\n // Get mock dispatch from built key\n const key = buildKey(opts)\n const mockDispatch = getMockDispatch(this[kDispatches], key)\n\n mockDispatch.timesInvoked++\n\n // Here's where we resolve a callback if a callback is present for the dispatch data.\n if (mockDispatch.data.callback) {\n mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) }\n }\n\n // Parse mockDispatch data\n const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch\n const { timesInvoked, times } = mockDispatch\n\n // If it's used up and not persistent, mark as consumed\n mockDispatch.consumed = !persist && timesInvoked >= times\n mockDispatch.pending = timesInvoked < times\n\n // If specified, trigger dispatch error\n if (error !== null) {\n deleteMockDispatch(this[kDispatches], key)\n handler.onError(error)\n return true\n }\n\n // Handle the request with a delay if necessary\n if (typeof delay === 'number' && delay > 0) {\n setTimeout(() => {\n handleReply(this[kDispatches])\n }, delay)\n } else {\n handleReply(this[kDispatches])\n }\n\n function handleReply (mockDispatches, _data = data) {\n // fetch's HeadersList is a 1D string array\n const optsHeaders = Array.isArray(opts.headers)\n ? buildHeadersFromArray(opts.headers)\n : opts.headers\n const body = typeof _data === 'function'\n ? _data({ ...opts, headers: optsHeaders })\n : _data\n\n // util.types.isPromise is likely needed for jest.\n if (isPromise(body)) {\n // If handleReply is asynchronous, throwing an error\n // in the callback will reject the promise, rather than\n // synchronously throw the error, which breaks some tests.\n // Rather, we wait for the callback to resolve if it is a\n // promise, and then re-run handleReply with the new body.\n body.then((newData) => handleReply(mockDispatches, newData))\n return\n }\n\n const responseData = getResponseData(body)\n const responseHeaders = generateKeyValues(headers)\n const responseTrailers = generateKeyValues(trailers)\n\n handler.abort = nop\n handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode))\n handler.onData(Buffer.from(responseData))\n handler.onComplete(responseTrailers)\n deleteMockDispatch(mockDispatches, key)\n }\n\n function resume () {}\n\n return true\n}\n\nfunction buildMockDispatch () {\n const agent = this[kMockAgent]\n const origin = this[kOrigin]\n const originalDispatch = this[kOriginalDispatch]\n\n return function dispatch (opts, handler) {\n if (agent.isMockActive) {\n try {\n mockDispatch.call(this, opts, handler)\n } catch (error) {\n if (error instanceof MockNotMatchedError) {\n const netConnect = agent[kGetNetConnect]()\n if (netConnect === false) {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)\n }\n if (checkNetConnect(netConnect, origin)) {\n originalDispatch.call(this, opts, handler)\n } else {\n throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)\n }\n } else {\n throw error\n }\n }\n } else {\n originalDispatch.call(this, opts, handler)\n }\n }\n}\n\nfunction checkNetConnect (netConnect, origin) {\n const url = new URL(origin)\n if (netConnect === true) {\n return true\n } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) {\n return true\n }\n return false\n}\n\nfunction buildMockOptions (opts) {\n if (opts) {\n const { agent, ...mockOptions } = opts\n return mockOptions\n }\n}\n\nmodule.exports = {\n getResponseData,\n getMockDispatch,\n addMockDispatch,\n deleteMockDispatch,\n buildKey,\n generateKeyValues,\n matchValue,\n getResponse,\n getStatusText,\n mockDispatch,\n buildMockDispatch,\n checkNetConnect,\n buildMockOptions,\n getHeaderByName\n}\n","'use strict'\n\nconst { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kDispatchKey,\n kDefaultHeaders,\n kDefaultTrailers,\n kContentLength,\n kMockDispatch\n} = require('./mock-symbols')\nconst { InvalidArgumentError } = require('../core/errors')\nconst { buildURL } = require('../core/util')\n\n/**\n * Defines the scope API for an interceptor reply\n */\nclass MockScope {\n constructor (mockDispatch) {\n this[kMockDispatch] = mockDispatch\n }\n\n /**\n * Delay a reply by a set amount in ms.\n */\n delay (waitInMs) {\n if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {\n throw new InvalidArgumentError('waitInMs must be a valid integer > 0')\n }\n\n this[kMockDispatch].delay = waitInMs\n return this\n }\n\n /**\n * For a defined reply, never mark as consumed.\n */\n persist () {\n this[kMockDispatch].persist = true\n return this\n }\n\n /**\n * Allow one to define a reply for a set amount of matching requests.\n */\n times (repeatTimes) {\n if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {\n throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')\n }\n\n this[kMockDispatch].times = repeatTimes\n return this\n }\n}\n\n/**\n * Defines an interceptor for a Mock\n */\nclass MockInterceptor {\n constructor (opts, mockDispatches) {\n if (typeof opts !== 'object') {\n throw new InvalidArgumentError('opts must be an object')\n }\n if (typeof opts.path === 'undefined') {\n throw new InvalidArgumentError('opts.path must be defined')\n }\n if (typeof opts.method === 'undefined') {\n opts.method = 'GET'\n }\n // See https://github.com/nodejs/undici/issues/1245\n // As per RFC 3986, clients are not supposed to send URI\n // fragments to servers when they retrieve a document,\n if (typeof opts.path === 'string') {\n if (opts.query) {\n opts.path = buildURL(opts.path, opts.query)\n } else {\n // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811\n const parsedURL = new URL(opts.path, 'data://')\n opts.path = parsedURL.pathname + parsedURL.search\n }\n }\n if (typeof opts.method === 'string') {\n opts.method = opts.method.toUpperCase()\n }\n\n this[kDispatchKey] = buildKey(opts)\n this[kDispatches] = mockDispatches\n this[kDefaultHeaders] = {}\n this[kDefaultTrailers] = {}\n this[kContentLength] = false\n }\n\n createMockScopeDispatchData (statusCode, data, responseOptions = {}) {\n const responseData = getResponseData(data)\n const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}\n const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }\n const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }\n\n return { statusCode, data, headers, trailers }\n }\n\n validateReplyParameters (statusCode, data, responseOptions) {\n if (typeof statusCode === 'undefined') {\n throw new InvalidArgumentError('statusCode must be defined')\n }\n if (typeof data === 'undefined') {\n throw new InvalidArgumentError('data must be defined')\n }\n if (typeof responseOptions !== 'object') {\n throw new InvalidArgumentError('responseOptions must be an object')\n }\n }\n\n /**\n * Mock an undici request with a defined reply.\n */\n reply (replyData) {\n // Values of reply aren't available right now as they\n // can only be available when the reply callback is invoked.\n if (typeof replyData === 'function') {\n // We'll first wrap the provided callback in another function,\n // this function will properly resolve the data from the callback\n // when invoked.\n const wrappedDefaultsCallback = (opts) => {\n // Our reply options callback contains the parameter for statusCode, data and options.\n const resolvedData = replyData(opts)\n\n // Check if it is in the right format\n if (typeof resolvedData !== 'object') {\n throw new InvalidArgumentError('reply options callback must return an object')\n }\n\n const { statusCode, data = '', responseOptions = {} } = resolvedData\n this.validateReplyParameters(statusCode, data, responseOptions)\n // Since the values can be obtained immediately we return them\n // from this higher order function that will be resolved later.\n return {\n ...this.createMockScopeDispatchData(statusCode, data, responseOptions)\n }\n }\n\n // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback)\n return new MockScope(newMockDispatch)\n }\n\n // We can have either one or three parameters, if we get here,\n // we should have 1-3 parameters. So we spread the arguments of\n // this function to obtain the parameters, since replyData will always\n // just be the statusCode.\n const [statusCode, data = '', responseOptions = {}] = [...arguments]\n this.validateReplyParameters(statusCode, data, responseOptions)\n\n // Send in-already provided data like usual\n const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions)\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData)\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Mock an undici request with a defined error.\n */\n replyWithError (error) {\n if (typeof error === 'undefined') {\n throw new InvalidArgumentError('error must be defined')\n }\n\n const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error })\n return new MockScope(newMockDispatch)\n }\n\n /**\n * Set default reply headers on the interceptor for subsequent replies\n */\n defaultReplyHeaders (headers) {\n if (typeof headers === 'undefined') {\n throw new InvalidArgumentError('headers must be defined')\n }\n\n this[kDefaultHeaders] = headers\n return this\n }\n\n /**\n * Set default reply trailers on the interceptor for subsequent replies\n */\n defaultReplyTrailers (trailers) {\n if (typeof trailers === 'undefined') {\n throw new InvalidArgumentError('trailers must be defined')\n }\n\n this[kDefaultTrailers] = trailers\n return this\n }\n\n /**\n * Set reply content length header for replies on the interceptor\n */\n replyContentLength () {\n this[kContentLength] = true\n return this\n }\n}\n\nmodule.exports.MockInterceptor = MockInterceptor\nmodule.exports.MockScope = MockScope\n","'use strict'\n\nconst { promisify } = require('util')\nconst Client = require('../client')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockClient provides an API that extends the Client to influence the mockDispatches.\n */\nclass MockClient extends Client {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockClient\n","'use strict'\n\nconst { promisify } = require('util')\nconst Pool = require('../pool')\nconst { buildMockDispatch } = require('./mock-utils')\nconst {\n kDispatches,\n kMockAgent,\n kClose,\n kOriginalClose,\n kOrigin,\n kOriginalDispatch,\n kConnected\n} = require('./mock-symbols')\nconst { MockInterceptor } = require('./mock-interceptor')\nconst Symbols = require('../core/symbols')\nconst { InvalidArgumentError } = require('../core/errors')\n\n/**\n * MockPool provides an API that extends the Pool to influence the mockDispatches.\n */\nclass MockPool extends Pool {\n constructor (origin, opts) {\n super(origin, opts)\n\n if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n\n this[kMockAgent] = opts.agent\n this[kOrigin] = origin\n this[kDispatches] = []\n this[kConnected] = 1\n this[kOriginalDispatch] = this.dispatch\n this[kOriginalClose] = this.close.bind(this)\n\n this.dispatch = buildMockDispatch.call(this)\n this.close = this[kClose]\n }\n\n get [Symbols.kConnected] () {\n return this[kConnected]\n }\n\n /**\n * Sets up the base interceptor for mocking replies from undici.\n */\n intercept (opts) {\n return new MockInterceptor(opts, this[kDispatches])\n }\n\n async [kClose] () {\n await promisify(this[kOriginalClose])()\n this[kConnected] = 0\n this[kMockAgent][Symbols.kClients].delete(this[kOrigin])\n }\n}\n\nmodule.exports = MockPool\n","'use strict'\n\nconst singulars = {\n pronoun: 'it',\n is: 'is',\n was: 'was',\n this: 'this'\n}\n\nconst plurals = {\n pronoun: 'they',\n is: 'are',\n was: 'were',\n this: 'these'\n}\n\nmodule.exports = class Pluralizer {\n constructor (singular, plural) {\n this.singular = singular\n this.plural = plural\n }\n\n pluralize (count) {\n const one = count === 1\n const keys = one ? singulars : plurals\n const noun = one ? this.singular : this.plural\n return { ...keys, count, noun }\n }\n}\n","'use strict'\n\nconst { Transform } = require('stream')\nconst { Console } = require('console')\n\n/**\n * Gets the output of `console.table(…)` as a string.\n */\nmodule.exports = class PendingInterceptorsFormatter {\n constructor ({ disableColors } = {}) {\n this.transform = new Transform({\n transform (chunk, _enc, cb) {\n cb(null, chunk)\n }\n })\n\n this.logger = new Console({\n stdout: this.transform,\n inspectOptions: {\n colors: !disableColors && !process.env.CI\n }\n })\n }\n\n format (pendingInterceptors) {\n const withPrettyHeaders = pendingInterceptors.map(\n ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({\n Method: method,\n Origin: origin,\n Path: path,\n 'Status code': statusCode,\n Persistent: persist ? '✅' : '❌',\n Invocations: timesInvoked,\n Remaining: persist ? Infinity : times - timesInvoked\n }))\n\n this.logger.table(withPrettyHeaders)\n return this.transform.read().toString()\n }\n}\n","'use strict'\n\nconst { kClients } = require('../core/symbols')\nconst Agent = require('../agent')\nconst {\n kAgent,\n kMockAgentSet,\n kMockAgentGet,\n kDispatches,\n kIsMockActive,\n kNetConnect,\n kGetNetConnect,\n kOptions,\n kFactory\n} = require('./mock-symbols')\nconst MockClient = require('./mock-client')\nconst MockPool = require('./mock-pool')\nconst { matchValue, buildMockOptions } = require('./mock-utils')\nconst { InvalidArgumentError, UndiciError } = require('../core/errors')\nconst Dispatcher = require('../dispatcher')\nconst Pluralizer = require('./pluralizer')\nconst PendingInterceptorsFormatter = require('./pending-interceptors-formatter')\n\nclass FakeWeakRef {\n constructor (value) {\n this.value = value\n }\n\n deref () {\n return this.value\n }\n}\n\nclass MockAgent extends Dispatcher {\n constructor (opts) {\n super(opts)\n\n this[kNetConnect] = true\n this[kIsMockActive] = true\n\n // Instantiate Agent and encapsulate\n if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) {\n throw new InvalidArgumentError('Argument opts.agent must implement Agent')\n }\n const agent = opts && opts.agent ? opts.agent : new Agent(opts)\n this[kAgent] = agent\n\n this[kClients] = agent[kClients]\n this[kOptions] = buildMockOptions(opts)\n }\n\n get (origin) {\n let dispatcher = this[kMockAgentGet](origin)\n\n if (!dispatcher) {\n dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n }\n return dispatcher\n }\n\n dispatch (opts, handler) {\n // Call MockAgent.get to perform additional setup before dispatching as normal\n this.get(opts.origin)\n return this[kAgent].dispatch(opts, handler)\n }\n\n async close () {\n await this[kAgent].close()\n this[kClients].clear()\n }\n\n deactivate () {\n this[kIsMockActive] = false\n }\n\n activate () {\n this[kIsMockActive] = true\n }\n\n enableNetConnect (matcher) {\n if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) {\n if (Array.isArray(this[kNetConnect])) {\n this[kNetConnect].push(matcher)\n } else {\n this[kNetConnect] = [matcher]\n }\n } else if (typeof matcher === 'undefined') {\n this[kNetConnect] = true\n } else {\n throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.')\n }\n }\n\n disableNetConnect () {\n this[kNetConnect] = false\n }\n\n // This is required to bypass issues caused by using global symbols - see:\n // https://github.com/nodejs/undici/issues/1447\n get isMockActive () {\n return this[kIsMockActive]\n }\n\n [kMockAgentSet] (origin, dispatcher) {\n this[kClients].set(origin, new FakeWeakRef(dispatcher))\n }\n\n [kFactory] (origin) {\n const mockOptions = Object.assign({ agent: this }, this[kOptions])\n return this[kOptions] && this[kOptions].connections === 1\n ? new MockClient(origin, mockOptions)\n : new MockPool(origin, mockOptions)\n }\n\n [kMockAgentGet] (origin) {\n // First check if we can immediately find it\n const ref = this[kClients].get(origin)\n if (ref) {\n return ref.deref()\n }\n\n // If the origin is not a string create a dummy parent pool and return to user\n if (typeof origin !== 'string') {\n const dispatcher = this[kFactory]('http://localhost:9999')\n this[kMockAgentSet](origin, dispatcher)\n return dispatcher\n }\n\n // If we match, create a pool and assign the same dispatches\n for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) {\n const nonExplicitDispatcher = nonExplicitRef.deref()\n if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) {\n const dispatcher = this[kFactory](origin)\n this[kMockAgentSet](origin, dispatcher)\n dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]\n return dispatcher\n }\n }\n }\n\n [kGetNetConnect] () {\n return this[kNetConnect]\n }\n\n pendingInterceptors () {\n const mockAgentClients = this[kClients]\n\n return Array.from(mockAgentClients.entries())\n .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin })))\n .filter(({ pending }) => pending)\n }\n\n assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) {\n const pending = this.pendingInterceptors()\n\n if (pending.length === 0) {\n return\n }\n\n const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length)\n\n throw new UndiciError(`\n${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending:\n\n${pendingInterceptorsFormatter.format(pending)}\n`.trim())\n }\n}\n\nmodule.exports = MockAgent\n","'use strict'\n\nconst { kProxy, kClose, kDestroy, kInterceptors } = require('./core/symbols')\nconst { URL } = require('url')\nconst Agent = require('./agent')\nconst Pool = require('./pool')\nconst DispatcherBase = require('./dispatcher-base')\nconst { InvalidArgumentError, RequestAbortedError } = require('./core/errors')\nconst buildConnector = require('./core/connect')\n\nconst kAgent = Symbol('proxy agent')\nconst kClient = Symbol('proxy client')\nconst kProxyHeaders = Symbol('proxy headers')\nconst kRequestTls = Symbol('request tls settings')\nconst kProxyTls = Symbol('proxy tls settings')\nconst kConnectEndpoint = Symbol('connect endpoint function')\n\nfunction defaultProtocolPort (protocol) {\n return protocol === 'https:' ? 443 : 80\n}\n\nfunction buildProxyOptions (opts) {\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n return {\n uri: opts.uri,\n protocol: opts.protocol || 'https'\n }\n}\n\nfunction defaultFactory (origin, opts) {\n return new Pool(origin, opts)\n}\n\nclass ProxyAgent extends DispatcherBase {\n constructor (opts) {\n super(opts)\n this[kProxy] = buildProxyOptions(opts)\n this[kAgent] = new Agent(opts)\n this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent)\n ? opts.interceptors.ProxyAgent\n : []\n\n if (typeof opts === 'string') {\n opts = { uri: opts }\n }\n\n if (!opts || !opts.uri) {\n throw new InvalidArgumentError('Proxy opts.uri is mandatory')\n }\n\n const { clientFactory = defaultFactory } = opts\n\n if (typeof clientFactory !== 'function') {\n throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.')\n }\n\n this[kRequestTls] = opts.requestTls\n this[kProxyTls] = opts.proxyTls\n this[kProxyHeaders] = opts.headers || {}\n\n const resolvedUrl = new URL(opts.uri)\n const { origin, port, host, username, password } = resolvedUrl\n\n if (opts.auth && opts.token) {\n throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token')\n } else if (opts.auth) {\n /* @deprecated in favour of opts.token */\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}`\n } else if (opts.token) {\n this[kProxyHeaders]['proxy-authorization'] = opts.token\n } else if (username && password) {\n this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}`\n }\n\n const connect = buildConnector({ ...opts.proxyTls })\n this[kConnectEndpoint] = buildConnector({ ...opts.requestTls })\n this[kClient] = clientFactory(resolvedUrl, { connect })\n this[kAgent] = new Agent({\n ...opts,\n connect: async (opts, callback) => {\n let requestedHost = opts.host\n if (!opts.port) {\n requestedHost += `:${defaultProtocolPort(opts.protocol)}`\n }\n try {\n const { socket, statusCode } = await this[kClient].connect({\n origin,\n port,\n path: requestedHost,\n signal: opts.signal,\n headers: {\n ...this[kProxyHeaders],\n host\n }\n })\n if (statusCode !== 200) {\n socket.on('error', () => {}).destroy()\n callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`))\n }\n if (opts.protocol !== 'https:') {\n callback(null, socket)\n return\n }\n let servername\n if (this[kRequestTls]) {\n servername = this[kRequestTls].servername\n } else {\n servername = opts.servername\n }\n this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback)\n } catch (err) {\n callback(err)\n }\n }\n })\n }\n\n dispatch (opts, handler) {\n const { host } = new URL(opts.origin)\n const headers = buildHeaders(opts.headers)\n throwIfProxyAuthIsSent(headers)\n return this[kAgent].dispatch(\n {\n ...opts,\n headers: {\n ...headers,\n host\n }\n },\n handler\n )\n }\n\n async [kClose] () {\n await this[kAgent].close()\n await this[kClient].close()\n }\n\n async [kDestroy] () {\n await this[kAgent].destroy()\n await this[kClient].destroy()\n }\n}\n\n/**\n * @param {string[] | Record} headers\n * @returns {Record}\n */\nfunction buildHeaders (headers) {\n // When using undici.fetch, the headers list is stored\n // as an array.\n if (Array.isArray(headers)) {\n /** @type {Record} */\n const headersPair = {}\n\n for (let i = 0; i < headers.length; i += 2) {\n headersPair[headers[i]] = headers[i + 1]\n }\n\n return headersPair\n }\n\n return headers\n}\n\n/**\n * @param {Record} headers\n *\n * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers\n * Nevertheless, it was changed and to avoid a security vulnerability by end users\n * this check was created.\n * It should be removed in the next major version for performance reasons\n */\nfunction throwIfProxyAuthIsSent (headers) {\n const existProxyAuth = headers && Object.keys(headers)\n .find((key) => key.toLowerCase() === 'proxy-authorization')\n if (existProxyAuth) {\n throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor')\n }\n}\n\nmodule.exports = ProxyAgent\n","const assert = require('assert')\n\nconst { kRetryHandlerDefaultRetry } = require('../core/symbols')\nconst { RequestRetryError } = require('../core/errors')\nconst { isDisturbed, parseHeaders, parseRangeHeader } = require('../core/util')\n\nfunction calculateRetryAfterHeader (retryAfter) {\n const current = Date.now()\n const diff = new Date(retryAfter).getTime() - current\n\n return diff\n}\n\nclass RetryHandler {\n constructor (opts, handlers) {\n const { retryOptions, ...dispatchOpts } = opts\n const {\n // Retry scoped\n retry: retryFn,\n maxRetries,\n maxTimeout,\n minTimeout,\n timeoutFactor,\n // Response scoped\n methods,\n errorCodes,\n retryAfter,\n statusCodes\n } = retryOptions ?? {}\n\n this.dispatch = handlers.dispatch\n this.handler = handlers.handler\n this.opts = dispatchOpts\n this.abort = null\n this.aborted = false\n this.retryOpts = {\n retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry],\n retryAfter: retryAfter ?? true,\n maxTimeout: maxTimeout ?? 30 * 1000, // 30s,\n timeout: minTimeout ?? 500, // .5s\n timeoutFactor: timeoutFactor ?? 2,\n maxRetries: maxRetries ?? 5,\n // What errors we should retry\n methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'],\n // Indicates which errors to retry\n statusCodes: statusCodes ?? [500, 502, 503, 504, 429],\n // List of errors to retry\n errorCodes: errorCodes ?? [\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ENOTFOUND',\n 'ENETDOWN',\n 'ENETUNREACH',\n 'EHOSTDOWN',\n 'EHOSTUNREACH',\n 'EPIPE'\n ]\n }\n\n this.retryCount = 0\n this.start = 0\n this.end = null\n this.etag = null\n this.resume = null\n\n // Handle possible onConnect duplication\n this.handler.onConnect(reason => {\n this.aborted = true\n if (this.abort) {\n this.abort(reason)\n } else {\n this.reason = reason\n }\n })\n }\n\n onRequestSent () {\n if (this.handler.onRequestSent) {\n this.handler.onRequestSent()\n }\n }\n\n onUpgrade (statusCode, headers, socket) {\n if (this.handler.onUpgrade) {\n this.handler.onUpgrade(statusCode, headers, socket)\n }\n }\n\n onConnect (abort) {\n if (this.aborted) {\n abort(this.reason)\n } else {\n this.abort = abort\n }\n }\n\n onBodySent (chunk) {\n if (this.handler.onBodySent) return this.handler.onBodySent(chunk)\n }\n\n static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) {\n const { statusCode, code, headers } = err\n const { method, retryOptions } = opts\n const {\n maxRetries,\n timeout,\n maxTimeout,\n timeoutFactor,\n statusCodes,\n errorCodes,\n methods\n } = retryOptions\n let { counter, currentTimeout } = state\n\n currentTimeout =\n currentTimeout != null && currentTimeout > 0 ? currentTimeout : timeout\n\n // Any code that is not a Undici's originated and allowed to retry\n if (\n code &&\n code !== 'UND_ERR_REQ_RETRY' &&\n code !== 'UND_ERR_SOCKET' &&\n !errorCodes.includes(code)\n ) {\n cb(err)\n return\n }\n\n // If a set of method are provided and the current method is not in the list\n if (Array.isArray(methods) && !methods.includes(method)) {\n cb(err)\n return\n }\n\n // If a set of status code are provided and the current status code is not in the list\n if (\n statusCode != null &&\n Array.isArray(statusCodes) &&\n !statusCodes.includes(statusCode)\n ) {\n cb(err)\n return\n }\n\n // If we reached the max number of retries\n if (counter > maxRetries) {\n cb(err)\n return\n }\n\n let retryAfterHeader = headers != null && headers['retry-after']\n if (retryAfterHeader) {\n retryAfterHeader = Number(retryAfterHeader)\n retryAfterHeader = isNaN(retryAfterHeader)\n ? calculateRetryAfterHeader(retryAfterHeader)\n : retryAfterHeader * 1e3 // Retry-After is in seconds\n }\n\n const retryTimeout =\n retryAfterHeader > 0\n ? Math.min(retryAfterHeader, maxTimeout)\n : Math.min(currentTimeout * timeoutFactor ** counter, maxTimeout)\n\n state.currentTimeout = retryTimeout\n\n setTimeout(() => cb(null), retryTimeout)\n }\n\n onHeaders (statusCode, rawHeaders, resume, statusMessage) {\n const headers = parseHeaders(rawHeaders)\n\n this.retryCount += 1\n\n if (statusCode >= 300) {\n this.abort(\n new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Checkpoint for resume from where we left it\n if (this.resume != null) {\n this.resume = null\n\n if (statusCode !== 206) {\n return true\n }\n\n const contentRange = parseRangeHeader(headers['content-range'])\n // If no content range\n if (!contentRange) {\n this.abort(\n new RequestRetryError('Content-Range mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n // Let's start with a weak etag check\n if (this.etag != null && this.etag !== headers.etag) {\n this.abort(\n new RequestRetryError('ETag mismatch', statusCode, {\n headers,\n count: this.retryCount\n })\n )\n return false\n }\n\n const { start, size, end = size } = contentRange\n\n assert(this.start === start, 'content-range mismatch')\n assert(this.end == null || this.end === end, 'content-range mismatch')\n\n this.resume = resume\n return true\n }\n\n if (this.end == null) {\n if (statusCode === 206) {\n // First time we receive 206\n const range = parseRangeHeader(headers['content-range'])\n\n if (range == null) {\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const { start, size, end = size } = range\n\n assert(\n start != null && Number.isFinite(start) && this.start !== start,\n 'content-range mismatch'\n )\n assert(Number.isFinite(start))\n assert(\n end != null && Number.isFinite(end) && this.end !== end,\n 'invalid content-length'\n )\n\n this.start = start\n this.end = end\n }\n\n // We make our best to checkpoint the body for further range headers\n if (this.end == null) {\n const contentLength = headers['content-length']\n this.end = contentLength != null ? Number(contentLength) : null\n }\n\n assert(Number.isFinite(this.start))\n assert(\n this.end == null || Number.isFinite(this.end),\n 'invalid content-length'\n )\n\n this.resume = resume\n this.etag = headers.etag != null ? headers.etag : null\n\n return this.handler.onHeaders(\n statusCode,\n rawHeaders,\n resume,\n statusMessage\n )\n }\n\n const err = new RequestRetryError('Request failed', statusCode, {\n headers,\n count: this.retryCount\n })\n\n this.abort(err)\n\n return false\n }\n\n onData (chunk) {\n this.start += chunk.length\n\n return this.handler.onData(chunk)\n }\n\n onComplete (rawTrailers) {\n this.retryCount = 0\n return this.handler.onComplete(rawTrailers)\n }\n\n onError (err) {\n if (this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n this.retryOpts.retry(\n err,\n {\n state: { counter: this.retryCount++, currentTimeout: this.retryAfter },\n opts: { retryOptions: this.retryOpts, ...this.opts }\n },\n onRetry.bind(this)\n )\n\n function onRetry (err) {\n if (err != null || this.aborted || isDisturbed(this.opts.body)) {\n return this.handler.onError(err)\n }\n\n if (this.start !== 0) {\n this.opts = {\n ...this.opts,\n headers: {\n ...this.opts.headers,\n range: `bytes=${this.start}-${this.end ?? ''}`\n }\n }\n }\n\n try {\n this.dispatch(this.opts, this)\n } catch (err) {\n this.handler.onError(err)\n }\n }\n }\n}\n\nmodule.exports = RetryHandler\n","'use strict'\n\n// We include a version number for the Dispatcher API. In case of breaking changes,\n// this version number must be increased to avoid conflicts.\nconst globalDispatcher = Symbol.for('undici.globalDispatcher.1')\nconst { InvalidArgumentError } = require('./core/errors')\nconst Agent = require('./agent')\n\nif (getGlobalDispatcher() === undefined) {\n setGlobalDispatcher(new Agent())\n}\n\nfunction setGlobalDispatcher (agent) {\n if (!agent || typeof agent.dispatch !== 'function') {\n throw new InvalidArgumentError('Argument agent must implement Agent')\n }\n Object.defineProperty(globalThis, globalDispatcher, {\n value: agent,\n writable: true,\n enumerable: false,\n configurable: false\n })\n}\n\nfunction getGlobalDispatcher () {\n return globalThis[globalDispatcher]\n}\n\nmodule.exports = {\n setGlobalDispatcher,\n getGlobalDispatcher\n}\n","'use strict'\n\nmodule.exports = class DecoratorHandler {\n constructor (handler) {\n this.handler = handler\n }\n\n onConnect (...args) {\n return this.handler.onConnect(...args)\n }\n\n onError (...args) {\n return this.handler.onError(...args)\n }\n\n onUpgrade (...args) {\n return this.handler.onUpgrade(...args)\n }\n\n onHeaders (...args) {\n return this.handler.onHeaders(...args)\n }\n\n onData (...args) {\n return this.handler.onData(...args)\n }\n\n onComplete (...args) {\n return this.handler.onComplete(...args)\n }\n\n onBodySent (...args) {\n return this.handler.onBodySent(...args)\n }\n}\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst { kGuard } = require('./symbols')\nconst { kEnumerableProperty } = require('../core/util')\nconst {\n makeIterator,\n isValidHeaderName,\n isValidHeaderValue\n} = require('./util')\nconst util = require('util')\nconst { webidl } = require('./webidl')\nconst assert = require('assert')\n\nconst kHeadersMap = Symbol('headers map')\nconst kHeadersSortedMap = Symbol('headers map sorted')\n\n/**\n * @param {number} code\n */\nfunction isHTTPWhiteSpaceCharCode (code) {\n return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize\n * @param {string} potentialValue\n */\nfunction headerValueNormalize (potentialValue) {\n // To normalize a byte sequence potentialValue, remove\n // any leading and trailing HTTP whitespace bytes from\n // potentialValue.\n let i = 0; let j = potentialValue.length\n\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j\n while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i\n\n return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j)\n}\n\nfunction fill (headers, object) {\n // To fill a Headers object headers with a given object object, run these steps:\n\n // 1. If object is a sequence, then for each header in object:\n // Note: webidl conversion to array has already been done.\n if (Array.isArray(object)) {\n for (let i = 0; i < object.length; ++i) {\n const header = object[i]\n // 1. If header does not contain exactly two items, then throw a TypeError.\n if (header.length !== 2) {\n throw webidl.errors.exception({\n header: 'Headers constructor',\n message: `expected name/value pair to be length 2, found ${header.length}.`\n })\n }\n\n // 2. Append (header’s first item, header’s second item) to headers.\n appendHeader(headers, header[0], header[1])\n }\n } else if (typeof object === 'object' && object !== null) {\n // Note: null should throw\n\n // 2. Otherwise, object is a record, then for each key → value in object,\n // append (key, value) to headers\n const keys = Object.keys(object)\n for (let i = 0; i < keys.length; ++i) {\n appendHeader(headers, keys[i], object[keys[i]])\n }\n } else {\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n }\n}\n\n/**\n * @see https://fetch.spec.whatwg.org/#concept-headers-append\n */\nfunction appendHeader (headers, name, value) {\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.append',\n value,\n type: 'header value'\n })\n }\n\n // 3. If headers’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if headers’s guard is \"request\" and name is a\n // forbidden header name, return.\n // Note: undici does not implement forbidden header names\n if (headers[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (headers[kGuard] === 'request-no-cors') {\n // 5. Otherwise, if headers’s guard is \"request-no-cors\":\n // TODO\n }\n\n // 6. Otherwise, if headers’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n\n // 7. Append (name, value) to headers’s header list.\n return headers[kHeadersList].append(name, value)\n\n // 8. If headers’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from headers\n}\n\nclass HeadersList {\n /** @type {[string, string][]|null} */\n cookies = null\n\n constructor (init) {\n if (init instanceof HeadersList) {\n this[kHeadersMap] = new Map(init[kHeadersMap])\n this[kHeadersSortedMap] = init[kHeadersSortedMap]\n this.cookies = init.cookies === null ? null : [...init.cookies]\n } else {\n this[kHeadersMap] = new Map(init)\n this[kHeadersSortedMap] = null\n }\n }\n\n // https://fetch.spec.whatwg.org/#header-list-contains\n contains (name) {\n // A header list list contains a header name name if list\n // contains a header whose name is a byte-case-insensitive\n // match for name.\n name = name.toLowerCase()\n\n return this[kHeadersMap].has(name)\n }\n\n clear () {\n this[kHeadersMap].clear()\n this[kHeadersSortedMap] = null\n this.cookies = null\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-append\n append (name, value) {\n this[kHeadersSortedMap] = null\n\n // 1. If list contains name, then set name to the first such\n // header’s name.\n const lowercaseName = name.toLowerCase()\n const exists = this[kHeadersMap].get(lowercaseName)\n\n // 2. Append (name, value) to list.\n if (exists) {\n const delimiter = lowercaseName === 'cookie' ? '; ' : ', '\n this[kHeadersMap].set(lowercaseName, {\n name: exists.name,\n value: `${exists.value}${delimiter}${value}`\n })\n } else {\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n if (lowercaseName === 'set-cookie') {\n this.cookies ??= []\n this.cookies.push(value)\n }\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-set\n set (name, value) {\n this[kHeadersSortedMap] = null\n const lowercaseName = name.toLowerCase()\n\n if (lowercaseName === 'set-cookie') {\n this.cookies = [value]\n }\n\n // 1. If list contains name, then set the value of\n // the first such header to value and remove the\n // others.\n // 2. Otherwise, append header (name, value) to list.\n this[kHeadersMap].set(lowercaseName, { name, value })\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-delete\n delete (name) {\n this[kHeadersSortedMap] = null\n\n name = name.toLowerCase()\n\n if (name === 'set-cookie') {\n this.cookies = null\n }\n\n this[kHeadersMap].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-get\n get (name) {\n const value = this[kHeadersMap].get(name.toLowerCase())\n\n // 1. If list does not contain name, then return null.\n // 2. Return the values of all headers in list whose name\n // is a byte-case-insensitive match for name,\n // separated from each other by 0x2C 0x20, in order.\n return value === undefined ? null : value.value\n }\n\n * [Symbol.iterator] () {\n // use the lowercased name\n for (const [name, { value }] of this[kHeadersMap]) {\n yield [name, value]\n }\n }\n\n get entries () {\n const headers = {}\n\n if (this[kHeadersMap].size) {\n for (const { name, value } of this[kHeadersMap].values()) {\n headers[name] = value\n }\n }\n\n return headers\n }\n}\n\n// https://fetch.spec.whatwg.org/#headers-class\nclass Headers {\n constructor (init = undefined) {\n if (init === kConstruct) {\n return\n }\n this[kHeadersList] = new HeadersList()\n\n // The new Headers(init) constructor steps are:\n\n // 1. Set this’s guard to \"none\".\n this[kGuard] = 'none'\n\n // 2. If init is given, then fill this with init.\n if (init !== undefined) {\n init = webidl.converters.HeadersInit(init)\n fill(this, init)\n }\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-append\n append (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n return appendHeader(this, name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-delete\n delete (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.delete',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. If this’s guard is \"immutable\", then throw a TypeError.\n // 3. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 4. Otherwise, if this’s guard is \"request-no-cors\", name\n // is not a no-CORS-safelisted request-header name, and\n // name is not a privileged no-CORS request-header name,\n // return.\n // 5. Otherwise, if this’s guard is \"response\" and name is\n // a forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 6. If this’s header list does not contain name, then\n // return.\n if (!this[kHeadersList].contains(name)) {\n return\n }\n\n // 7. Delete name from this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this.\n this[kHeadersList].delete(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-get\n get (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.get',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return the result of getting name from this’s header\n // list.\n return this[kHeadersList].get(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-has\n has (name) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' })\n\n name = webidl.converters.ByteString(name)\n\n // 1. If name is not a header name, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.has',\n value: name,\n type: 'header name'\n })\n }\n\n // 2. Return true if this’s header list contains name;\n // otherwise false.\n return this[kHeadersList].contains(name)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-set\n set (name, value) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' })\n\n name = webidl.converters.ByteString(name)\n value = webidl.converters.ByteString(value)\n\n // 1. Normalize value.\n value = headerValueNormalize(value)\n\n // 2. If name is not a header name or value is not a\n // header value, then throw a TypeError.\n if (!isValidHeaderName(name)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value: name,\n type: 'header name'\n })\n } else if (!isValidHeaderValue(value)) {\n throw webidl.errors.invalidArgument({\n prefix: 'Headers.set',\n value,\n type: 'header value'\n })\n }\n\n // 3. If this’s guard is \"immutable\", then throw a TypeError.\n // 4. Otherwise, if this’s guard is \"request\" and name is a\n // forbidden header name, return.\n // 5. Otherwise, if this’s guard is \"request-no-cors\" and\n // name/value is not a no-CORS-safelisted request-header,\n // return.\n // 6. Otherwise, if this’s guard is \"response\" and name is a\n // forbidden response-header name, return.\n // Note: undici does not implement forbidden header names\n if (this[kGuard] === 'immutable') {\n throw new TypeError('immutable')\n } else if (this[kGuard] === 'request-no-cors') {\n // TODO\n }\n\n // 7. Set (name, value) in this’s header list.\n // 8. If this’s guard is \"request-no-cors\", then remove\n // privileged no-CORS request headers from this\n this[kHeadersList].set(name, value)\n }\n\n // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie\n getSetCookie () {\n webidl.brandCheck(this, Headers)\n\n // 1. If this’s header list does not contain `Set-Cookie`, then return « ».\n // 2. Return the values of all headers in this’s header list whose name is\n // a byte-case-insensitive match for `Set-Cookie`, in order.\n\n const list = this[kHeadersList].cookies\n\n if (list) {\n return [...list]\n }\n\n return []\n }\n\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n get [kHeadersSortedMap] () {\n if (this[kHeadersList][kHeadersSortedMap]) {\n return this[kHeadersList][kHeadersSortedMap]\n }\n\n // 1. Let headers be an empty list of headers with the key being the name\n // and value the value.\n const headers = []\n\n // 2. Let names be the result of convert header names to a sorted-lowercase\n // set with all the names of the headers in list.\n const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1)\n const cookies = this[kHeadersList].cookies\n\n // 3. For each name of names:\n for (let i = 0; i < names.length; ++i) {\n const [name, value] = names[i]\n // 1. If name is `set-cookie`, then:\n if (name === 'set-cookie') {\n // 1. Let values be a list of all values of headers in list whose name\n // is a byte-case-insensitive match for name, in order.\n\n // 2. For each value of values:\n // 1. Append (name, value) to headers.\n for (let j = 0; j < cookies.length; ++j) {\n headers.push([name, cookies[j]])\n }\n } else {\n // 2. Otherwise:\n\n // 1. Let value be the result of getting name from list.\n\n // 2. Assert: value is non-null.\n assert(value !== null)\n\n // 3. Append (name, value) to headers.\n headers.push([name, value])\n }\n }\n\n this[kHeadersList][kHeadersSortedMap] = headers\n\n // 4. Return headers.\n return headers\n }\n\n keys () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key'\n )\n }\n\n values () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'value'\n )\n }\n\n entries () {\n webidl.brandCheck(this, Headers)\n\n if (this[kGuard] === 'immutable') {\n const value = this[kHeadersSortedMap]\n return makeIterator(() => value, 'Headers',\n 'key+value')\n }\n\n return makeIterator(\n () => [...this[kHeadersSortedMap].values()],\n 'Headers',\n 'key+value'\n )\n }\n\n /**\n * @param {(value: string, key: string, self: Headers) => void} callbackFn\n * @param {unknown} thisArg\n */\n forEach (callbackFn, thisArg = globalThis) {\n webidl.brandCheck(this, Headers)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' })\n\n if (typeof callbackFn !== 'function') {\n throw new TypeError(\n \"Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.\"\n )\n }\n\n for (const [key, value] of this) {\n callbackFn.apply(thisArg, [value, key, this])\n }\n }\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n webidl.brandCheck(this, Headers)\n\n return this[kHeadersList]\n }\n}\n\nHeaders.prototype[Symbol.iterator] = Headers.prototype.entries\n\nObject.defineProperties(Headers.prototype, {\n append: kEnumerableProperty,\n delete: kEnumerableProperty,\n get: kEnumerableProperty,\n has: kEnumerableProperty,\n set: kEnumerableProperty,\n getSetCookie: kEnumerableProperty,\n keys: kEnumerableProperty,\n values: kEnumerableProperty,\n entries: kEnumerableProperty,\n forEach: kEnumerableProperty,\n [Symbol.iterator]: { enumerable: false },\n [Symbol.toStringTag]: {\n value: 'Headers',\n configurable: true\n },\n [util.inspect.custom]: {\n enumerable: false\n }\n})\n\nwebidl.converters.HeadersInit = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (V[Symbol.iterator]) {\n return webidl.converters['sequence>'](V)\n }\n\n return webidl.converters['record'](V)\n }\n\n throw webidl.errors.conversionFailed({\n prefix: 'Headers constructor',\n argument: 'Argument 1',\n types: ['sequence>', 'record']\n })\n}\n\nmodule.exports = {\n fill,\n Headers,\n HeadersList\n}\n","'use strict'\n\nconst { Headers, HeadersList, fill } = require('./headers')\nconst { extractBody, cloneBody, mixinBody } = require('./body')\nconst util = require('../core/util')\nconst { kEnumerableProperty } = util\nconst {\n isValidReasonPhrase,\n isCancelled,\n isAborted,\n isBlobLike,\n serializeJavascriptValueToJSONString,\n isErrorLike,\n isomorphicEncode\n} = require('./util')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n DOMException\n} = require('./constants')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { FormData } = require('./formdata')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { types } = require('util')\n\nconst ReadableStream = globalThis.ReadableStream || require('stream/web').ReadableStream\nconst textEncoder = new TextEncoder('utf-8')\n\n// https://fetch.spec.whatwg.org/#response-class\nclass Response {\n // Creates network error Response.\n static error () {\n // TODO\n const relevantRealm = { settingsObject: {} }\n\n // The static error() method steps are to return the result of creating a\n // Response object, given a new network error, \"immutable\", and this’s\n // relevant Realm.\n const responseObject = new Response()\n responseObject[kState] = makeNetworkError()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response-json\n static json (data, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' })\n\n if (init !== null) {\n init = webidl.converters.ResponseInit(init)\n }\n\n // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data.\n const bytes = textEncoder.encode(\n serializeJavascriptValueToJSONString(data)\n )\n\n // 2. Let body be the result of extracting bytes.\n const body = extractBody(bytes)\n\n // 3. Let responseObject be the result of creating a Response object, given a new response,\n // \"response\", and this’s relevant Realm.\n const relevantRealm = { settingsObject: {} }\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'response'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 4. Perform initialize a response given responseObject, init, and (body, \"application/json\").\n initializeResponse(responseObject, init, { body: body[0], type: 'application/json' })\n\n // 5. Return responseObject.\n return responseObject\n }\n\n // Creates a redirect Response that redirects to url with status status.\n static redirect (url, status = 302) {\n const relevantRealm = { settingsObject: {} }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' })\n\n url = webidl.converters.USVString(url)\n status = webidl.converters['unsigned short'](status)\n\n // 1. Let parsedURL be the result of parsing url with current settings\n // object’s API base URL.\n // 2. If parsedURL is failure, then throw a TypeError.\n // TODO: base-URL?\n let parsedURL\n try {\n parsedURL = new URL(url, getGlobalOrigin())\n } catch (err) {\n throw Object.assign(new TypeError('Failed to parse URL from ' + url), {\n cause: err\n })\n }\n\n // 3. If status is not a redirect status, then throw a RangeError.\n if (!redirectStatusSet.has(status)) {\n throw new RangeError('Invalid status code ' + status)\n }\n\n // 4. Let responseObject be the result of creating a Response object,\n // given a new response, \"immutable\", and this’s relevant Realm.\n const responseObject = new Response()\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Set responseObject’s response’s status to status.\n responseObject[kState].status = status\n\n // 6. Let value be parsedURL, serialized and isomorphic encoded.\n const value = isomorphicEncode(URLSerializer(parsedURL))\n\n // 7. Append `Location`/value to responseObject’s response’s header list.\n responseObject[kState].headersList.append('location', value)\n\n // 8. Return responseObject.\n return responseObject\n }\n\n // https://fetch.spec.whatwg.org/#dom-response\n constructor (body = null, init = {}) {\n if (body !== null) {\n body = webidl.converters.BodyInit(body)\n }\n\n init = webidl.converters.ResponseInit(init)\n\n // TODO\n this[kRealm] = { settingsObject: {} }\n\n // 1. Set this’s response to a new response.\n this[kState] = makeResponse({})\n\n // 2. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is this’s response’s header list and guard\n // is \"response\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kGuard] = 'response'\n this[kHeaders][kHeadersList] = this[kState].headersList\n this[kHeaders][kRealm] = this[kRealm]\n\n // 3. Let bodyWithType be null.\n let bodyWithType = null\n\n // 4. If body is non-null, then set bodyWithType to the result of extracting body.\n if (body != null) {\n const [extractedBody, type] = extractBody(body)\n bodyWithType = { body: extractedBody, type }\n }\n\n // 5. Perform initialize a response given this, init, and bodyWithType.\n initializeResponse(this, init, bodyWithType)\n }\n\n // Returns response’s type, e.g., \"cors\".\n get type () {\n webidl.brandCheck(this, Response)\n\n // The type getter steps are to return this’s response’s type.\n return this[kState].type\n }\n\n // Returns response’s URL, if it has one; otherwise the empty string.\n get url () {\n webidl.brandCheck(this, Response)\n\n const urlList = this[kState].urlList\n\n // The url getter steps are to return the empty string if this’s\n // response’s URL is null; otherwise this’s response’s URL,\n // serialized with exclude fragment set to true.\n const url = urlList[urlList.length - 1] ?? null\n\n if (url === null) {\n return ''\n }\n\n return URLSerializer(url, true)\n }\n\n // Returns whether response was obtained through a redirect.\n get redirected () {\n webidl.brandCheck(this, Response)\n\n // The redirected getter steps are to return true if this’s response’s URL\n // list has more than one item; otherwise false.\n return this[kState].urlList.length > 1\n }\n\n // Returns response’s status.\n get status () {\n webidl.brandCheck(this, Response)\n\n // The status getter steps are to return this’s response’s status.\n return this[kState].status\n }\n\n // Returns whether response’s status is an ok status.\n get ok () {\n webidl.brandCheck(this, Response)\n\n // The ok getter steps are to return true if this’s response’s status is an\n // ok status; otherwise false.\n return this[kState].status >= 200 && this[kState].status <= 299\n }\n\n // Returns response’s status message.\n get statusText () {\n webidl.brandCheck(this, Response)\n\n // The statusText getter steps are to return this’s response’s status\n // message.\n return this[kState].statusText\n }\n\n // Returns response’s headers as Headers.\n get headers () {\n webidl.brandCheck(this, Response)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n get body () {\n webidl.brandCheck(this, Response)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Response)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n // Returns a clone of response.\n clone () {\n webidl.brandCheck(this, Response)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || (this.body && this.body.locked)) {\n throw webidl.errors.exception({\n header: 'Response.clone',\n message: 'Body has already been consumed.'\n })\n }\n\n // 2. Let clonedResponse be the result of cloning this’s response.\n const clonedResponse = cloneResponse(this[kState])\n\n // 3. Return the result of creating a Response object, given\n // clonedResponse, this’s headers’s guard, and this’s relevant Realm.\n const clonedResponseObject = new Response()\n clonedResponseObject[kState] = clonedResponse\n clonedResponseObject[kRealm] = this[kRealm]\n clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList\n clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n return clonedResponseObject\n }\n}\n\nmixinBody(Response)\n\nObject.defineProperties(Response.prototype, {\n type: kEnumerableProperty,\n url: kEnumerableProperty,\n status: kEnumerableProperty,\n ok: kEnumerableProperty,\n redirected: kEnumerableProperty,\n statusText: kEnumerableProperty,\n headers: kEnumerableProperty,\n clone: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Response',\n configurable: true\n }\n})\n\nObject.defineProperties(Response, {\n json: kEnumerableProperty,\n redirect: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\n// https://fetch.spec.whatwg.org/#concept-response-clone\nfunction cloneResponse (response) {\n // To clone a response response, run these steps:\n\n // 1. If response is a filtered response, then return a new identical\n // filtered response whose internal response is a clone of response’s\n // internal response.\n if (response.internalResponse) {\n return filterResponse(\n cloneResponse(response.internalResponse),\n response.type\n )\n }\n\n // 2. Let newResponse be a copy of response, except for its body.\n const newResponse = makeResponse({ ...response, body: null })\n\n // 3. If response’s body is non-null, then set newResponse’s body to the\n // result of cloning response’s body.\n if (response.body != null) {\n newResponse.body = cloneBody(response.body)\n }\n\n // 4. Return newResponse.\n return newResponse\n}\n\nfunction makeResponse (init) {\n return {\n aborted: false,\n rangeRequested: false,\n timingAllowPassed: false,\n requestIncludesCredentials: false,\n type: 'default',\n status: 200,\n timingInfo: null,\n cacheState: '',\n statusText: '',\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList(),\n urlList: init.urlList ? [...init.urlList] : []\n }\n}\n\nfunction makeNetworkError (reason) {\n const isError = isErrorLike(reason)\n return makeResponse({\n type: 'error',\n status: 0,\n error: isError\n ? reason\n : new Error(reason ? String(reason) : reason),\n aborted: reason && reason.name === 'AbortError'\n })\n}\n\nfunction makeFilteredResponse (response, state) {\n state = {\n internalResponse: response,\n ...state\n }\n\n return new Proxy(response, {\n get (target, p) {\n return p in state ? state[p] : target[p]\n },\n set (target, p, value) {\n assert(!(p in state))\n target[p] = value\n return true\n }\n })\n}\n\n// https://fetch.spec.whatwg.org/#concept-filtered-response\nfunction filterResponse (response, type) {\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (type === 'basic') {\n // A basic filtered response is a filtered response whose type is \"basic\"\n // and header list excludes any headers in internal response’s header list\n // whose name is a forbidden response-header name.\n\n // Note: undici does not implement forbidden response-header names\n return makeFilteredResponse(response, {\n type: 'basic',\n headersList: response.headersList\n })\n } else if (type === 'cors') {\n // A CORS filtered response is a filtered response whose type is \"cors\"\n // and header list excludes any headers in internal response’s header\n // list whose name is not a CORS-safelisted response-header name, given\n // internal response’s CORS-exposed header-name list.\n\n // Note: undici does not implement CORS-safelisted response-header names\n return makeFilteredResponse(response, {\n type: 'cors',\n headersList: response.headersList\n })\n } else if (type === 'opaque') {\n // An opaque filtered response is a filtered response whose type is\n // \"opaque\", URL list is the empty list, status is 0, status message\n // is the empty byte sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaque',\n urlList: Object.freeze([]),\n status: 0,\n statusText: '',\n body: null\n })\n } else if (type === 'opaqueredirect') {\n // An opaque-redirect filtered response is a filtered response whose type\n // is \"opaqueredirect\", status is 0, status message is the empty byte\n // sequence, header list is empty, and body is null.\n\n return makeFilteredResponse(response, {\n type: 'opaqueredirect',\n status: 0,\n statusText: '',\n headersList: [],\n body: null\n })\n } else {\n assert(false)\n }\n}\n\n// https://fetch.spec.whatwg.org/#appropriate-network-error\nfunction makeAppropriateNetworkError (fetchParams, err = null) {\n // 1. Assert: fetchParams is canceled.\n assert(isCancelled(fetchParams))\n\n // 2. Return an aborted network error if fetchParams is aborted;\n // otherwise return a network error.\n return isAborted(fetchParams)\n ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err }))\n : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err }))\n}\n\n// https://whatpr.org/fetch/1392.html#initialize-a-response\nfunction initializeResponse (response, init, body) {\n // 1. If init[\"status\"] is not in the range 200 to 599, inclusive, then\n // throw a RangeError.\n if (init.status !== null && (init.status < 200 || init.status > 599)) {\n throw new RangeError('init[\"status\"] must be in the range of 200 to 599, inclusive.')\n }\n\n // 2. If init[\"statusText\"] does not match the reason-phrase token production,\n // then throw a TypeError.\n if ('statusText' in init && init.statusText != null) {\n // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2:\n // reason-phrase = *( HTAB / SP / VCHAR / obs-text )\n if (!isValidReasonPhrase(String(init.statusText))) {\n throw new TypeError('Invalid statusText')\n }\n }\n\n // 3. Set response’s response’s status to init[\"status\"].\n if ('status' in init && init.status != null) {\n response[kState].status = init.status\n }\n\n // 4. Set response’s response’s status message to init[\"statusText\"].\n if ('statusText' in init && init.statusText != null) {\n response[kState].statusText = init.statusText\n }\n\n // 5. If init[\"headers\"] exists, then fill response’s headers with init[\"headers\"].\n if ('headers' in init && init.headers != null) {\n fill(response[kHeaders], init.headers)\n }\n\n // 6. If body was given, then:\n if (body) {\n // 1. If response's status is a null body status, then throw a TypeError.\n if (nullBodyStatus.includes(response.status)) {\n throw webidl.errors.exception({\n header: 'Response constructor',\n message: 'Invalid response status code ' + response.status\n })\n }\n\n // 2. Set response's body to body's body.\n response[kState].body = body.body\n\n // 3. If body's type is non-null and response's header list does not contain\n // `Content-Type`, then append (`Content-Type`, body's type) to response's header list.\n if (body.type != null && !response[kState].headersList.contains('Content-Type')) {\n response[kState].headersList.append('content-type', body.type)\n }\n }\n}\n\nwebidl.converters.ReadableStream = webidl.interfaceConverter(\n ReadableStream\n)\n\nwebidl.converters.FormData = webidl.interfaceConverter(\n FormData\n)\n\nwebidl.converters.URLSearchParams = webidl.interfaceConverter(\n URLSearchParams\n)\n\n// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit\nwebidl.converters.XMLHttpRequestBodyInit = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (types.isArrayBuffer(V) || types.isTypedArray(V) || types.isDataView(V)) {\n return webidl.converters.BufferSource(V)\n }\n\n if (util.isFormDataLike(V)) {\n return webidl.converters.FormData(V, { strict: false })\n }\n\n if (V instanceof URLSearchParams) {\n return webidl.converters.URLSearchParams(V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// https://fetch.spec.whatwg.org/#bodyinit\nwebidl.converters.BodyInit = function (V) {\n if (V instanceof ReadableStream) {\n return webidl.converters.ReadableStream(V)\n }\n\n // Note: the spec doesn't include async iterables,\n // this is an undici extension.\n if (V?.[Symbol.asyncIterator]) {\n return V\n }\n\n return webidl.converters.XMLHttpRequestBodyInit(V)\n}\n\nwebidl.converters.ResponseInit = webidl.dictionaryConverter([\n {\n key: 'status',\n converter: webidl.converters['unsigned short'],\n defaultValue: 200\n },\n {\n key: 'statusText',\n converter: webidl.converters.ByteString,\n defaultValue: ''\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n }\n])\n\nmodule.exports = {\n makeNetworkError,\n makeResponse,\n makeAppropriateNetworkError,\n filterResponse,\n Response,\n cloneResponse\n}\n","/* globals AbortController */\n\n'use strict'\n\nconst { extractBody, mixinBody, cloneBody } = require('./body')\nconst { Headers, fill: fillHeaders, HeadersList } = require('./headers')\nconst { FinalizationRegistry } = require('../compat/dispatcher-weakref')()\nconst util = require('../core/util')\nconst {\n isValidHTTPToken,\n sameOrigin,\n normalizeMethod,\n makePolicyContainer,\n normalizeMethodRecord\n} = require('./util')\nconst {\n forbiddenMethodsSet,\n corsSafeListedMethodsSet,\n referrerPolicy,\n requestRedirect,\n requestMode,\n requestCredentials,\n requestCache,\n requestDuplex\n} = require('./constants')\nconst { kEnumerableProperty } = util\nconst { kHeaders, kSignal, kState, kGuard, kRealm } = require('./symbols')\nconst { webidl } = require('./webidl')\nconst { getGlobalOrigin } = require('./global')\nconst { URLSerializer } = require('./dataURL')\nconst { kHeadersList, kConstruct } = require('../core/symbols')\nconst assert = require('assert')\nconst { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require('events')\n\nlet TransformStream = globalThis.TransformStream\n\nconst kAbortController = Symbol('abortController')\n\nconst requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {\n signal.removeEventListener('abort', abort)\n})\n\n// https://fetch.spec.whatwg.org/#request-class\nclass Request {\n // https://fetch.spec.whatwg.org/#dom-request\n constructor (input, init = {}) {\n if (input === kConstruct) {\n return\n }\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' })\n\n input = webidl.converters.RequestInfo(input)\n init = webidl.converters.RequestInit(init)\n\n // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object\n this[kRealm] = {\n settingsObject: {\n baseUrl: getGlobalOrigin(),\n get origin () {\n return this.baseUrl?.origin\n },\n policyContainer: makePolicyContainer()\n }\n }\n\n // 1. Let request be null.\n let request = null\n\n // 2. Let fallbackMode be null.\n let fallbackMode = null\n\n // 3. Let baseURL be this’s relevant settings object’s API base URL.\n const baseUrl = this[kRealm].settingsObject.baseUrl\n\n // 4. Let signal be null.\n let signal = null\n\n // 5. If input is a string, then:\n if (typeof input === 'string') {\n // 1. Let parsedURL be the result of parsing input with baseURL.\n // 2. If parsedURL is failure, then throw a TypeError.\n let parsedURL\n try {\n parsedURL = new URL(input, baseUrl)\n } catch (err) {\n throw new TypeError('Failed to parse URL from ' + input, { cause: err })\n }\n\n // 3. If parsedURL includes credentials, then throw a TypeError.\n if (parsedURL.username || parsedURL.password) {\n throw new TypeError(\n 'Request cannot be constructed from a URL that includes credentials: ' +\n input\n )\n }\n\n // 4. Set request to a new request whose URL is parsedURL.\n request = makeRequest({ urlList: [parsedURL] })\n\n // 5. Set fallbackMode to \"cors\".\n fallbackMode = 'cors'\n } else {\n // 6. Otherwise:\n\n // 7. Assert: input is a Request object.\n assert(input instanceof Request)\n\n // 8. Set request to input’s request.\n request = input[kState]\n\n // 9. Set signal to input’s signal.\n signal = input[kSignal]\n }\n\n // 7. Let origin be this’s relevant settings object’s origin.\n const origin = this[kRealm].settingsObject.origin\n\n // 8. Let window be \"client\".\n let window = 'client'\n\n // 9. If request’s window is an environment settings object and its origin\n // is same origin with origin, then set window to request’s window.\n if (\n request.window?.constructor?.name === 'EnvironmentSettingsObject' &&\n sameOrigin(request.window, origin)\n ) {\n window = request.window\n }\n\n // 10. If init[\"window\"] exists and is non-null, then throw a TypeError.\n if (init.window != null) {\n throw new TypeError(`'window' option '${window}' must be null`)\n }\n\n // 11. If init[\"window\"] exists, then set window to \"no-window\".\n if ('window' in init) {\n window = 'no-window'\n }\n\n // 12. Set request to a new request with the following properties:\n request = makeRequest({\n // URL request’s URL.\n // undici implementation note: this is set as the first item in request's urlList in makeRequest\n // method request’s method.\n method: request.method,\n // header list A copy of request’s header list.\n // undici implementation note: headersList is cloned in makeRequest\n headersList: request.headersList,\n // unsafe-request flag Set.\n unsafeRequest: request.unsafeRequest,\n // client This’s relevant settings object.\n client: this[kRealm].settingsObject,\n // window window.\n window,\n // priority request’s priority.\n priority: request.priority,\n // origin request’s origin. The propagation of the origin is only significant for navigation requests\n // being handled by a service worker. In this scenario a request can have an origin that is different\n // from the current client.\n origin: request.origin,\n // referrer request’s referrer.\n referrer: request.referrer,\n // referrer policy request’s referrer policy.\n referrerPolicy: request.referrerPolicy,\n // mode request’s mode.\n mode: request.mode,\n // credentials mode request’s credentials mode.\n credentials: request.credentials,\n // cache mode request’s cache mode.\n cache: request.cache,\n // redirect mode request’s redirect mode.\n redirect: request.redirect,\n // integrity metadata request’s integrity metadata.\n integrity: request.integrity,\n // keepalive request’s keepalive.\n keepalive: request.keepalive,\n // reload-navigation flag request’s reload-navigation flag.\n reloadNavigation: request.reloadNavigation,\n // history-navigation flag request’s history-navigation flag.\n historyNavigation: request.historyNavigation,\n // URL list A clone of request’s URL list.\n urlList: [...request.urlList]\n })\n\n const initHasKey = Object.keys(init).length !== 0\n\n // 13. If init is not empty, then:\n if (initHasKey) {\n // 1. If request’s mode is \"navigate\", then set it to \"same-origin\".\n if (request.mode === 'navigate') {\n request.mode = 'same-origin'\n }\n\n // 2. Unset request’s reload-navigation flag.\n request.reloadNavigation = false\n\n // 3. Unset request’s history-navigation flag.\n request.historyNavigation = false\n\n // 4. Set request’s origin to \"client\".\n request.origin = 'client'\n\n // 5. Set request’s referrer to \"client\"\n request.referrer = 'client'\n\n // 6. Set request’s referrer policy to the empty string.\n request.referrerPolicy = ''\n\n // 7. Set request’s URL to request’s current URL.\n request.url = request.urlList[request.urlList.length - 1]\n\n // 8. Set request’s URL list to « request’s URL ».\n request.urlList = [request.url]\n }\n\n // 14. If init[\"referrer\"] exists, then:\n if (init.referrer !== undefined) {\n // 1. Let referrer be init[\"referrer\"].\n const referrer = init.referrer\n\n // 2. If referrer is the empty string, then set request’s referrer to \"no-referrer\".\n if (referrer === '') {\n request.referrer = 'no-referrer'\n } else {\n // 1. Let parsedReferrer be the result of parsing referrer with\n // baseURL.\n // 2. If parsedReferrer is failure, then throw a TypeError.\n let parsedReferrer\n try {\n parsedReferrer = new URL(referrer, baseUrl)\n } catch (err) {\n throw new TypeError(`Referrer \"${referrer}\" is not a valid URL.`, { cause: err })\n }\n\n // 3. If one of the following is true\n // - parsedReferrer’s scheme is \"about\" and path is the string \"client\"\n // - parsedReferrer’s origin is not same origin with origin\n // then set request’s referrer to \"client\".\n if (\n (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') ||\n (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl))\n ) {\n request.referrer = 'client'\n } else {\n // 4. Otherwise, set request’s referrer to parsedReferrer.\n request.referrer = parsedReferrer\n }\n }\n }\n\n // 15. If init[\"referrerPolicy\"] exists, then set request’s referrer policy\n // to it.\n if (init.referrerPolicy !== undefined) {\n request.referrerPolicy = init.referrerPolicy\n }\n\n // 16. Let mode be init[\"mode\"] if it exists, and fallbackMode otherwise.\n let mode\n if (init.mode !== undefined) {\n mode = init.mode\n } else {\n mode = fallbackMode\n }\n\n // 17. If mode is \"navigate\", then throw a TypeError.\n if (mode === 'navigate') {\n throw webidl.errors.exception({\n header: 'Request constructor',\n message: 'invalid request mode navigate.'\n })\n }\n\n // 18. If mode is non-null, set request’s mode to mode.\n if (mode != null) {\n request.mode = mode\n }\n\n // 19. If init[\"credentials\"] exists, then set request’s credentials mode\n // to it.\n if (init.credentials !== undefined) {\n request.credentials = init.credentials\n }\n\n // 18. If init[\"cache\"] exists, then set request’s cache mode to it.\n if (init.cache !== undefined) {\n request.cache = init.cache\n }\n\n // 21. If request’s cache mode is \"only-if-cached\" and request’s mode is\n // not \"same-origin\", then throw a TypeError.\n if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') {\n throw new TypeError(\n \"'only-if-cached' can be set only with 'same-origin' mode\"\n )\n }\n\n // 22. If init[\"redirect\"] exists, then set request’s redirect mode to it.\n if (init.redirect !== undefined) {\n request.redirect = init.redirect\n }\n\n // 23. If init[\"integrity\"] exists, then set request’s integrity metadata to it.\n if (init.integrity != null) {\n request.integrity = String(init.integrity)\n }\n\n // 24. If init[\"keepalive\"] exists, then set request’s keepalive to it.\n if (init.keepalive !== undefined) {\n request.keepalive = Boolean(init.keepalive)\n }\n\n // 25. If init[\"method\"] exists, then:\n if (init.method !== undefined) {\n // 1. Let method be init[\"method\"].\n let method = init.method\n\n // 2. If method is not a method or method is a forbidden method, then\n // throw a TypeError.\n if (!isValidHTTPToken(method)) {\n throw new TypeError(`'${method}' is not a valid HTTP method.`)\n }\n\n if (forbiddenMethodsSet.has(method.toUpperCase())) {\n throw new TypeError(`'${method}' HTTP method is unsupported.`)\n }\n\n // 3. Normalize method.\n method = normalizeMethodRecord[method] ?? normalizeMethod(method)\n\n // 4. Set request’s method to method.\n request.method = method\n }\n\n // 26. If init[\"signal\"] exists, then set signal to it.\n if (init.signal !== undefined) {\n signal = init.signal\n }\n\n // 27. Set this’s request to request.\n this[kState] = request\n\n // 28. Set this’s signal to a new AbortSignal object with this’s relevant\n // Realm.\n // TODO: could this be simplified with AbortSignal.any\n // (https://dom.spec.whatwg.org/#dom-abortsignal-any)\n const ac = new AbortController()\n this[kSignal] = ac.signal\n this[kSignal][kRealm] = this[kRealm]\n\n // 29. If signal is not null, then make this’s signal follow signal.\n if (signal != null) {\n if (\n !signal ||\n typeof signal.aborted !== 'boolean' ||\n typeof signal.addEventListener !== 'function'\n ) {\n throw new TypeError(\n \"Failed to construct 'Request': member signal is not of type AbortSignal.\"\n )\n }\n\n if (signal.aborted) {\n ac.abort(signal.reason)\n } else {\n // Keep a strong ref to ac while request object\n // is alive. This is needed to prevent AbortController\n // from being prematurely garbage collected.\n // See, https://github.com/nodejs/undici/issues/1926.\n this[kAbortController] = ac\n\n const acRef = new WeakRef(ac)\n const abort = function () {\n const ac = acRef.deref()\n if (ac !== undefined) {\n ac.abort(this.reason)\n }\n }\n\n // Third-party AbortControllers may not work with these.\n // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619.\n try {\n // If the max amount of listeners is equal to the default, increase it\n // This is only available in node >= v19.9.0\n if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) {\n setMaxListeners(100, signal)\n } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) {\n setMaxListeners(100, signal)\n }\n } catch {}\n\n util.addAbortListener(signal, abort)\n requestFinalizer.register(ac, { signal, abort })\n }\n }\n\n // 30. Set this’s headers to a new Headers object with this’s relevant\n // Realm, whose header list is request’s header list and guard is\n // \"request\".\n this[kHeaders] = new Headers(kConstruct)\n this[kHeaders][kHeadersList] = request.headersList\n this[kHeaders][kGuard] = 'request'\n this[kHeaders][kRealm] = this[kRealm]\n\n // 31. If this’s request’s mode is \"no-cors\", then:\n if (mode === 'no-cors') {\n // 1. If this’s request’s method is not a CORS-safelisted method,\n // then throw a TypeError.\n if (!corsSafeListedMethodsSet.has(request.method)) {\n throw new TypeError(\n `'${request.method} is unsupported in no-cors mode.`\n )\n }\n\n // 2. Set this’s headers’s guard to \"request-no-cors\".\n this[kHeaders][kGuard] = 'request-no-cors'\n }\n\n // 32. If init is not empty, then:\n if (initHasKey) {\n /** @type {HeadersList} */\n const headersList = this[kHeaders][kHeadersList]\n // 1. Let headers be a copy of this’s headers and its associated header\n // list.\n // 2. If init[\"headers\"] exists, then set headers to init[\"headers\"].\n const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList)\n\n // 3. Empty this’s headers’s header list.\n headersList.clear()\n\n // 4. If headers is a Headers object, then for each header in its header\n // list, append header’s name/header’s value to this’s headers.\n if (headers instanceof HeadersList) {\n for (const [key, val] of headers) {\n headersList.append(key, val)\n }\n // Note: Copy the `set-cookie` meta-data.\n headersList.cookies = headers.cookies\n } else {\n // 5. Otherwise, fill this’s headers with headers.\n fillHeaders(this[kHeaders], headers)\n }\n }\n\n // 33. Let inputBody be input’s request’s body if input is a Request\n // object; otherwise null.\n const inputBody = input instanceof Request ? input[kState].body : null\n\n // 34. If either init[\"body\"] exists and is non-null or inputBody is\n // non-null, and request’s method is `GET` or `HEAD`, then throw a\n // TypeError.\n if (\n (init.body != null || inputBody != null) &&\n (request.method === 'GET' || request.method === 'HEAD')\n ) {\n throw new TypeError('Request with GET/HEAD method cannot have body.')\n }\n\n // 35. Let initBody be null.\n let initBody = null\n\n // 36. If init[\"body\"] exists and is non-null, then:\n if (init.body != null) {\n // 1. Let Content-Type be null.\n // 2. Set initBody and Content-Type to the result of extracting\n // init[\"body\"], with keepalive set to request’s keepalive.\n const [extractedBody, contentType] = extractBody(\n init.body,\n request.keepalive\n )\n initBody = extractedBody\n\n // 3, If Content-Type is non-null and this’s headers’s header list does\n // not contain `Content-Type`, then append `Content-Type`/Content-Type to\n // this’s headers.\n if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) {\n this[kHeaders].append('content-type', contentType)\n }\n }\n\n // 37. Let inputOrInitBody be initBody if it is non-null; otherwise\n // inputBody.\n const inputOrInitBody = initBody ?? inputBody\n\n // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is\n // null, then:\n if (inputOrInitBody != null && inputOrInitBody.source == null) {\n // 1. If initBody is non-null and init[\"duplex\"] does not exist,\n // then throw a TypeError.\n if (initBody != null && init.duplex == null) {\n throw new TypeError('RequestInit: duplex option is required when sending a body.')\n }\n\n // 2. If this’s request’s mode is neither \"same-origin\" nor \"cors\",\n // then throw a TypeError.\n if (request.mode !== 'same-origin' && request.mode !== 'cors') {\n throw new TypeError(\n 'If request is made from ReadableStream, mode should be \"same-origin\" or \"cors\"'\n )\n }\n\n // 3. Set this’s request’s use-CORS-preflight flag.\n request.useCORSPreflightFlag = true\n }\n\n // 39. Let finalBody be inputOrInitBody.\n let finalBody = inputOrInitBody\n\n // 40. If initBody is null and inputBody is non-null, then:\n if (initBody == null && inputBody != null) {\n // 1. If input is unusable, then throw a TypeError.\n if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) {\n throw new TypeError(\n 'Cannot construct a Request with a Request object that has already been used.'\n )\n }\n\n // 2. Set finalBody to the result of creating a proxy for inputBody.\n if (!TransformStream) {\n TransformStream = require('stream/web').TransformStream\n }\n\n // https://streams.spec.whatwg.org/#readablestream-create-a-proxy\n const identityTransform = new TransformStream()\n inputBody.stream.pipeThrough(identityTransform)\n finalBody = {\n source: inputBody.source,\n length: inputBody.length,\n stream: identityTransform.readable\n }\n }\n\n // 41. Set this’s request’s body to finalBody.\n this[kState].body = finalBody\n }\n\n // Returns request’s HTTP method, which is \"GET\" by default.\n get method () {\n webidl.brandCheck(this, Request)\n\n // The method getter steps are to return this’s request’s method.\n return this[kState].method\n }\n\n // Returns the URL of request as a string.\n get url () {\n webidl.brandCheck(this, Request)\n\n // The url getter steps are to return this’s request’s URL, serialized.\n return URLSerializer(this[kState].url)\n }\n\n // Returns a Headers object consisting of the headers associated with request.\n // Note that headers added in the network layer by the user agent will not\n // be accounted for in this object, e.g., the \"Host\" header.\n get headers () {\n webidl.brandCheck(this, Request)\n\n // The headers getter steps are to return this’s headers.\n return this[kHeaders]\n }\n\n // Returns the kind of resource requested by request, e.g., \"document\"\n // or \"script\".\n get destination () {\n webidl.brandCheck(this, Request)\n\n // The destination getter are to return this’s request’s destination.\n return this[kState].destination\n }\n\n // Returns the referrer of request. Its value can be a same-origin URL if\n // explicitly set in init, the empty string to indicate no referrer, and\n // \"about:client\" when defaulting to the global’s default. This is used\n // during fetching to determine the value of the `Referer` header of the\n // request being made.\n get referrer () {\n webidl.brandCheck(this, Request)\n\n // 1. If this’s request’s referrer is \"no-referrer\", then return the\n // empty string.\n if (this[kState].referrer === 'no-referrer') {\n return ''\n }\n\n // 2. If this’s request’s referrer is \"client\", then return\n // \"about:client\".\n if (this[kState].referrer === 'client') {\n return 'about:client'\n }\n\n // Return this’s request’s referrer, serialized.\n return this[kState].referrer.toString()\n }\n\n // Returns the referrer policy associated with request.\n // This is used during fetching to compute the value of the request’s\n // referrer.\n get referrerPolicy () {\n webidl.brandCheck(this, Request)\n\n // The referrerPolicy getter steps are to return this’s request’s referrer policy.\n return this[kState].referrerPolicy\n }\n\n // Returns the mode associated with request, which is a string indicating\n // whether the request will use CORS, or will be restricted to same-origin\n // URLs.\n get mode () {\n webidl.brandCheck(this, Request)\n\n // The mode getter steps are to return this’s request’s mode.\n return this[kState].mode\n }\n\n // Returns the credentials mode associated with request,\n // which is a string indicating whether credentials will be sent with the\n // request always, never, or only when sent to a same-origin URL.\n get credentials () {\n // The credentials getter steps are to return this’s request’s credentials mode.\n return this[kState].credentials\n }\n\n // Returns the cache mode associated with request,\n // which is a string indicating how the request will\n // interact with the browser’s cache when fetching.\n get cache () {\n webidl.brandCheck(this, Request)\n\n // The cache getter steps are to return this’s request’s cache mode.\n return this[kState].cache\n }\n\n // Returns the redirect mode associated with request,\n // which is a string indicating how redirects for the\n // request will be handled during fetching. A request\n // will follow redirects by default.\n get redirect () {\n webidl.brandCheck(this, Request)\n\n // The redirect getter steps are to return this’s request’s redirect mode.\n return this[kState].redirect\n }\n\n // Returns request’s subresource integrity metadata, which is a\n // cryptographic hash of the resource being fetched. Its value\n // consists of multiple hashes separated by whitespace. [SRI]\n get integrity () {\n webidl.brandCheck(this, Request)\n\n // The integrity getter steps are to return this’s request’s integrity\n // metadata.\n return this[kState].integrity\n }\n\n // Returns a boolean indicating whether or not request can outlive the\n // global in which it was created.\n get keepalive () {\n webidl.brandCheck(this, Request)\n\n // The keepalive getter steps are to return this’s request’s keepalive.\n return this[kState].keepalive\n }\n\n // Returns a boolean indicating whether or not request is for a reload\n // navigation.\n get isReloadNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isReloadNavigation getter steps are to return true if this’s\n // request’s reload-navigation flag is set; otherwise false.\n return this[kState].reloadNavigation\n }\n\n // Returns a boolean indicating whether or not request is for a history\n // navigation (a.k.a. back-foward navigation).\n get isHistoryNavigation () {\n webidl.brandCheck(this, Request)\n\n // The isHistoryNavigation getter steps are to return true if this’s request’s\n // history-navigation flag is set; otherwise false.\n return this[kState].historyNavigation\n }\n\n // Returns the signal associated with request, which is an AbortSignal\n // object indicating whether or not request has been aborted, and its\n // abort event handler.\n get signal () {\n webidl.brandCheck(this, Request)\n\n // The signal getter steps are to return this’s signal.\n return this[kSignal]\n }\n\n get body () {\n webidl.brandCheck(this, Request)\n\n return this[kState].body ? this[kState].body.stream : null\n }\n\n get bodyUsed () {\n webidl.brandCheck(this, Request)\n\n return !!this[kState].body && util.isDisturbed(this[kState].body.stream)\n }\n\n get duplex () {\n webidl.brandCheck(this, Request)\n\n return 'half'\n }\n\n // Returns a clone of request.\n clone () {\n webidl.brandCheck(this, Request)\n\n // 1. If this is unusable, then throw a TypeError.\n if (this.bodyUsed || this.body?.locked) {\n throw new TypeError('unusable')\n }\n\n // 2. Let clonedRequest be the result of cloning this’s request.\n const clonedRequest = cloneRequest(this[kState])\n\n // 3. Let clonedRequestObject be the result of creating a Request object,\n // given clonedRequest, this’s headers’s guard, and this’s relevant Realm.\n const clonedRequestObject = new Request(kConstruct)\n clonedRequestObject[kState] = clonedRequest\n clonedRequestObject[kRealm] = this[kRealm]\n clonedRequestObject[kHeaders] = new Headers(kConstruct)\n clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList\n clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard]\n clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm]\n\n // 4. Make clonedRequestObject’s signal follow this’s signal.\n const ac = new AbortController()\n if (this.signal.aborted) {\n ac.abort(this.signal.reason)\n } else {\n util.addAbortListener(\n this.signal,\n () => {\n ac.abort(this.signal.reason)\n }\n )\n }\n clonedRequestObject[kSignal] = ac.signal\n\n // 4. Return clonedRequestObject.\n return clonedRequestObject\n }\n}\n\nmixinBody(Request)\n\nfunction makeRequest (init) {\n // https://fetch.spec.whatwg.org/#requests\n const request = {\n method: 'GET',\n localURLsOnly: false,\n unsafeRequest: false,\n body: null,\n client: null,\n reservedClient: null,\n replacesClientId: '',\n window: 'client',\n keepalive: false,\n serviceWorkers: 'all',\n initiator: '',\n destination: '',\n priority: null,\n origin: 'client',\n policyContainer: 'client',\n referrer: 'client',\n referrerPolicy: '',\n mode: 'no-cors',\n useCORSPreflightFlag: false,\n credentials: 'same-origin',\n useCredentials: false,\n cache: 'default',\n redirect: 'follow',\n integrity: '',\n cryptoGraphicsNonceMetadata: '',\n parserMetadata: '',\n reloadNavigation: false,\n historyNavigation: false,\n userActivation: false,\n taintedOrigin: false,\n redirectCount: 0,\n responseTainting: 'basic',\n preventNoCacheCacheControlHeaderModification: false,\n done: false,\n timingAllowFailed: false,\n ...init,\n headersList: init.headersList\n ? new HeadersList(init.headersList)\n : new HeadersList()\n }\n request.url = request.urlList[0]\n return request\n}\n\n// https://fetch.spec.whatwg.org/#concept-request-clone\nfunction cloneRequest (request) {\n // To clone a request request, run these steps:\n\n // 1. Let newRequest be a copy of request, except for its body.\n const newRequest = makeRequest({ ...request, body: null })\n\n // 2. If request’s body is non-null, set newRequest’s body to the\n // result of cloning request’s body.\n if (request.body != null) {\n newRequest.body = cloneBody(request.body)\n }\n\n // 3. Return newRequest.\n return newRequest\n}\n\nObject.defineProperties(Request.prototype, {\n method: kEnumerableProperty,\n url: kEnumerableProperty,\n headers: kEnumerableProperty,\n redirect: kEnumerableProperty,\n clone: kEnumerableProperty,\n signal: kEnumerableProperty,\n duplex: kEnumerableProperty,\n destination: kEnumerableProperty,\n body: kEnumerableProperty,\n bodyUsed: kEnumerableProperty,\n isHistoryNavigation: kEnumerableProperty,\n isReloadNavigation: kEnumerableProperty,\n keepalive: kEnumerableProperty,\n integrity: kEnumerableProperty,\n cache: kEnumerableProperty,\n credentials: kEnumerableProperty,\n attribute: kEnumerableProperty,\n referrerPolicy: kEnumerableProperty,\n referrer: kEnumerableProperty,\n mode: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'Request',\n configurable: true\n }\n})\n\nwebidl.converters.Request = webidl.interfaceConverter(\n Request\n)\n\n// https://fetch.spec.whatwg.org/#requestinfo\nwebidl.converters.RequestInfo = function (V) {\n if (typeof V === 'string') {\n return webidl.converters.USVString(V)\n }\n\n if (V instanceof Request) {\n return webidl.converters.Request(V)\n }\n\n return webidl.converters.USVString(V)\n}\n\nwebidl.converters.AbortSignal = webidl.interfaceConverter(\n AbortSignal\n)\n\n// https://fetch.spec.whatwg.org/#requestinit\nwebidl.converters.RequestInit = webidl.dictionaryConverter([\n {\n key: 'method',\n converter: webidl.converters.ByteString\n },\n {\n key: 'headers',\n converter: webidl.converters.HeadersInit\n },\n {\n key: 'body',\n converter: webidl.nullableConverter(\n webidl.converters.BodyInit\n )\n },\n {\n key: 'referrer',\n converter: webidl.converters.USVString\n },\n {\n key: 'referrerPolicy',\n converter: webidl.converters.DOMString,\n // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy\n allowedValues: referrerPolicy\n },\n {\n key: 'mode',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#concept-request-mode\n allowedValues: requestMode\n },\n {\n key: 'credentials',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcredentials\n allowedValues: requestCredentials\n },\n {\n key: 'cache',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestcache\n allowedValues: requestCache\n },\n {\n key: 'redirect',\n converter: webidl.converters.DOMString,\n // https://fetch.spec.whatwg.org/#requestredirect\n allowedValues: requestRedirect\n },\n {\n key: 'integrity',\n converter: webidl.converters.DOMString\n },\n {\n key: 'keepalive',\n converter: webidl.converters.boolean\n },\n {\n key: 'signal',\n converter: webidl.nullableConverter(\n (signal) => webidl.converters.AbortSignal(\n signal,\n { strict: false }\n )\n )\n },\n {\n key: 'window',\n converter: webidl.converters.any\n },\n {\n key: 'duplex',\n converter: webidl.converters.DOMString,\n allowedValues: requestDuplex\n }\n])\n\nmodule.exports = { Request, makeRequest }\n","// https://github.com/Ethan-Arrowood/undici-fetch\n\n'use strict'\n\nconst {\n Response,\n makeNetworkError,\n makeAppropriateNetworkError,\n filterResponse,\n makeResponse\n} = require('./response')\nconst { Headers } = require('./headers')\nconst { Request, makeRequest } = require('./request')\nconst zlib = require('zlib')\nconst {\n bytesMatch,\n makePolicyContainer,\n clonePolicyContainer,\n requestBadPort,\n TAOCheck,\n appendRequestOriginHeader,\n responseLocationURL,\n requestCurrentURL,\n setRequestReferrerPolicyOnRedirect,\n tryUpgradeRequestToAPotentiallyTrustworthyURL,\n createOpaqueTimingInfo,\n appendFetchMetadata,\n corsCheck,\n crossOriginResourcePolicyCheck,\n determineRequestsReferrer,\n coarsenedSharedCurrentTime,\n createDeferredPromise,\n isBlobLike,\n sameOrigin,\n isCancelled,\n isAborted,\n isErrorLike,\n fullyReadBody,\n readableStreamClose,\n isomorphicEncode,\n urlIsLocal,\n urlIsHttpHttpsScheme,\n urlHasHttpsScheme\n} = require('./util')\nconst { kState, kHeaders, kGuard, kRealm } = require('./symbols')\nconst assert = require('assert')\nconst { safelyExtractBody } = require('./body')\nconst {\n redirectStatusSet,\n nullBodyStatus,\n safeMethodsSet,\n requestBodyHeader,\n subresourceSet,\n DOMException\n} = require('./constants')\nconst { kHeadersList } = require('../core/symbols')\nconst EE = require('events')\nconst { Readable, pipeline } = require('stream')\nconst { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = require('../core/util')\nconst { dataURLProcessor, serializeAMimeType } = require('./dataURL')\nconst { TransformStream } = require('stream/web')\nconst { getGlobalDispatcher } = require('../global')\nconst { webidl } = require('./webidl')\nconst { STATUS_CODES } = require('http')\nconst GET_OR_HEAD = ['GET', 'HEAD']\n\n/** @type {import('buffer').resolveObjectURL} */\nlet resolveObjectURL\nlet ReadableStream = globalThis.ReadableStream\n\nclass Fetch extends EE {\n constructor (dispatcher) {\n super()\n\n this.dispatcher = dispatcher\n this.connection = null\n this.dump = false\n this.state = 'ongoing'\n // 2 terminated listeners get added per request,\n // but only 1 gets removed. If there are 20 redirects,\n // 21 listeners will be added.\n // See https://github.com/nodejs/undici/issues/1711\n // TODO (fix): Find and fix root cause for leaked listener.\n this.setMaxListeners(21)\n }\n\n terminate (reason) {\n if (this.state !== 'ongoing') {\n return\n }\n\n this.state = 'terminated'\n this.connection?.destroy(reason)\n this.emit('terminated', reason)\n }\n\n // https://fetch.spec.whatwg.org/#fetch-controller-abort\n abort (error) {\n if (this.state !== 'ongoing') {\n return\n }\n\n // 1. Set controller’s state to \"aborted\".\n this.state = 'aborted'\n\n // 2. Let fallbackError be an \"AbortError\" DOMException.\n // 3. Set error to fallbackError if it is not given.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 4. Let serializedError be StructuredSerialize(error).\n // If that threw an exception, catch it, and let\n // serializedError be StructuredSerialize(fallbackError).\n\n // 5. Set controller’s serialized abort reason to serializedError.\n this.serializedAbortReason = error\n\n this.connection?.destroy(error)\n this.emit('terminated', error)\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-method\nfunction fetch (input, init = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' })\n\n // 1. Let p be a new promise.\n const p = createDeferredPromise()\n\n // 2. Let requestObject be the result of invoking the initial value of\n // Request as constructor with input and init as arguments. If this throws\n // an exception, reject p with it and return p.\n let requestObject\n\n try {\n requestObject = new Request(input, init)\n } catch (e) {\n p.reject(e)\n return p.promise\n }\n\n // 3. Let request be requestObject’s request.\n const request = requestObject[kState]\n\n // 4. If requestObject’s signal’s aborted flag is set, then:\n if (requestObject.signal.aborted) {\n // 1. Abort the fetch() call with p, request, null, and\n // requestObject’s signal’s abort reason.\n abortFetch(p, request, null, requestObject.signal.reason)\n\n // 2. Return p.\n return p.promise\n }\n\n // 5. Let globalObject be request’s client’s global object.\n const globalObject = request.client.globalObject\n\n // 6. If globalObject is a ServiceWorkerGlobalScope object, then set\n // request’s service-workers mode to \"none\".\n if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') {\n request.serviceWorkers = 'none'\n }\n\n // 7. Let responseObject be null.\n let responseObject = null\n\n // 8. Let relevantRealm be this’s relevant Realm.\n const relevantRealm = null\n\n // 9. Let locallyAborted be false.\n let locallyAborted = false\n\n // 10. Let controller be null.\n let controller = null\n\n // 11. Add the following abort steps to requestObject’s signal:\n addAbortListener(\n requestObject.signal,\n () => {\n // 1. Set locallyAborted to true.\n locallyAborted = true\n\n // 2. Assert: controller is non-null.\n assert(controller != null)\n\n // 3. Abort controller with requestObject’s signal’s abort reason.\n controller.abort(requestObject.signal.reason)\n\n // 4. Abort the fetch() call with p, request, responseObject,\n // and requestObject’s signal’s abort reason.\n abortFetch(p, request, responseObject, requestObject.signal.reason)\n }\n )\n\n // 12. Let handleFetchDone given response response be to finalize and\n // report timing with response, globalObject, and \"fetch\".\n const handleFetchDone = (response) =>\n finalizeAndReportTiming(response, 'fetch')\n\n // 13. Set controller to the result of calling fetch given request,\n // with processResponseEndOfBody set to handleFetchDone, and processResponse\n // given response being these substeps:\n\n const processResponse = (response) => {\n // 1. If locallyAborted is true, terminate these substeps.\n if (locallyAborted) {\n return Promise.resolve()\n }\n\n // 2. If response’s aborted flag is set, then:\n if (response.aborted) {\n // 1. Let deserializedError be the result of deserialize a serialized\n // abort reason given controller’s serialized abort reason and\n // relevantRealm.\n\n // 2. Abort the fetch() call with p, request, responseObject, and\n // deserializedError.\n\n abortFetch(p, request, responseObject, controller.serializedAbortReason)\n return Promise.resolve()\n }\n\n // 3. If response is a network error, then reject p with a TypeError\n // and terminate these substeps.\n if (response.type === 'error') {\n p.reject(\n Object.assign(new TypeError('fetch failed'), { cause: response.error })\n )\n return Promise.resolve()\n }\n\n // 4. Set responseObject to the result of creating a Response object,\n // given response, \"immutable\", and relevantRealm.\n responseObject = new Response()\n responseObject[kState] = response\n responseObject[kRealm] = relevantRealm\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n responseObject[kHeaders][kRealm] = relevantRealm\n\n // 5. Resolve p with responseObject.\n p.resolve(responseObject)\n }\n\n controller = fetching({\n request,\n processResponseEndOfBody: handleFetchDone,\n processResponse,\n dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici\n })\n\n // 14. Return p.\n return p.promise\n}\n\n// https://fetch.spec.whatwg.org/#finalize-and-report-timing\nfunction finalizeAndReportTiming (response, initiatorType = 'other') {\n // 1. If response is an aborted network error, then return.\n if (response.type === 'error' && response.aborted) {\n return\n }\n\n // 2. If response’s URL list is null or empty, then return.\n if (!response.urlList?.length) {\n return\n }\n\n // 3. Let originalURL be response’s URL list[0].\n const originalURL = response.urlList[0]\n\n // 4. Let timingInfo be response’s timing info.\n let timingInfo = response.timingInfo\n\n // 5. Let cacheState be response’s cache state.\n let cacheState = response.cacheState\n\n // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return.\n if (!urlIsHttpHttpsScheme(originalURL)) {\n return\n }\n\n // 7. If timingInfo is null, then return.\n if (timingInfo === null) {\n return\n }\n\n // 8. If response’s timing allow passed flag is not set, then:\n if (!response.timingAllowPassed) {\n // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo.\n timingInfo = createOpaqueTimingInfo({\n startTime: timingInfo.startTime\n })\n\n // 2. Set cacheState to the empty string.\n cacheState = ''\n }\n\n // 9. Set timingInfo’s end time to the coarsened shared current time\n // given global’s relevant settings object’s cross-origin isolated\n // capability.\n // TODO: given global’s relevant settings object’s cross-origin isolated\n // capability?\n timingInfo.endTime = coarsenedSharedCurrentTime()\n\n // 10. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 11. Mark resource timing for timingInfo, originalURL, initiatorType,\n // global, and cacheState.\n markResourceTiming(\n timingInfo,\n originalURL,\n initiatorType,\n globalThis,\n cacheState\n )\n}\n\n// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing\nfunction markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) {\n if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) {\n performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState)\n }\n}\n\n// https://fetch.spec.whatwg.org/#abort-fetch\nfunction abortFetch (p, request, responseObject, error) {\n // Note: AbortSignal.reason was added in node v17.2.0\n // which would give us an undefined error to reject with.\n // Remove this once node v16 is no longer supported.\n if (!error) {\n error = new DOMException('The operation was aborted.', 'AbortError')\n }\n\n // 1. Reject promise with error.\n p.reject(error)\n\n // 2. If request’s body is not null and is readable, then cancel request’s\n // body with error.\n if (request.body != null && isReadable(request.body?.stream)) {\n request.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n\n // 3. If responseObject is null, then return.\n if (responseObject == null) {\n return\n }\n\n // 4. Let response be responseObject’s response.\n const response = responseObject[kState]\n\n // 5. If response’s body is not null and is readable, then error response’s\n // body with error.\n if (response.body != null && isReadable(response.body?.stream)) {\n response.body.stream.cancel(error).catch((err) => {\n if (err.code === 'ERR_INVALID_STATE') {\n // Node bug?\n return\n }\n throw err\n })\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetching\nfunction fetching ({\n request,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseEndOfBody,\n processResponseConsumeBody,\n useParallelQueue = false,\n dispatcher // undici\n}) {\n // 1. Let taskDestination be null.\n let taskDestination = null\n\n // 2. Let crossOriginIsolatedCapability be false.\n let crossOriginIsolatedCapability = false\n\n // 3. If request’s client is non-null, then:\n if (request.client != null) {\n // 1. Set taskDestination to request’s client’s global object.\n taskDestination = request.client.globalObject\n\n // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin\n // isolated capability.\n crossOriginIsolatedCapability =\n request.client.crossOriginIsolatedCapability\n }\n\n // 4. If useParallelQueue is true, then set taskDestination to the result of\n // starting a new parallel queue.\n // TODO\n\n // 5. Let timingInfo be a new fetch timing info whose start time and\n // post-redirect start time are the coarsened shared current time given\n // crossOriginIsolatedCapability.\n const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability)\n const timingInfo = createOpaqueTimingInfo({\n startTime: currenTime\n })\n\n // 6. Let fetchParams be a new fetch params whose\n // request is request,\n // timing info is timingInfo,\n // process request body chunk length is processRequestBodyChunkLength,\n // process request end-of-body is processRequestEndOfBody,\n // process response is processResponse,\n // process response consume body is processResponseConsumeBody,\n // process response end-of-body is processResponseEndOfBody,\n // task destination is taskDestination,\n // and cross-origin isolated capability is crossOriginIsolatedCapability.\n const fetchParams = {\n controller: new Fetch(dispatcher),\n request,\n timingInfo,\n processRequestBodyChunkLength,\n processRequestEndOfBody,\n processResponse,\n processResponseConsumeBody,\n processResponseEndOfBody,\n taskDestination,\n crossOriginIsolatedCapability\n }\n\n // 7. If request’s body is a byte sequence, then set request’s body to\n // request’s body as a body.\n // NOTE: Since fetching is only called from fetch, body should already be\n // extracted.\n assert(!request.body || request.body.stream)\n\n // 8. If request’s window is \"client\", then set request’s window to request’s\n // client, if request’s client’s global object is a Window object; otherwise\n // \"no-window\".\n if (request.window === 'client') {\n // TODO: What if request.client is null?\n request.window =\n request.client?.globalObject?.constructor?.name === 'Window'\n ? request.client\n : 'no-window'\n }\n\n // 9. If request’s origin is \"client\", then set request’s origin to request’s\n // client’s origin.\n if (request.origin === 'client') {\n // TODO: What if request.client is null?\n request.origin = request.client?.origin\n }\n\n // 10. If all of the following conditions are true:\n // TODO\n\n // 11. If request’s policy container is \"client\", then:\n if (request.policyContainer === 'client') {\n // 1. If request’s client is non-null, then set request’s policy\n // container to a clone of request’s client’s policy container. [HTML]\n if (request.client != null) {\n request.policyContainer = clonePolicyContainer(\n request.client.policyContainer\n )\n } else {\n // 2. Otherwise, set request’s policy container to a new policy\n // container.\n request.policyContainer = makePolicyContainer()\n }\n }\n\n // 12. If request’s header list does not contain `Accept`, then:\n if (!request.headersList.contains('accept')) {\n // 1. Let value be `*/*`.\n const value = '*/*'\n\n // 2. A user agent should set value to the first matching statement, if\n // any, switching on request’s destination:\n // \"document\"\n // \"frame\"\n // \"iframe\"\n // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`\n // \"image\"\n // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5`\n // \"style\"\n // `text/css,*/*;q=0.1`\n // TODO\n\n // 3. Append `Accept`/value to request’s header list.\n request.headersList.append('accept', value)\n }\n\n // 13. If request’s header list does not contain `Accept-Language`, then\n // user agents should append `Accept-Language`/an appropriate value to\n // request’s header list.\n if (!request.headersList.contains('accept-language')) {\n request.headersList.append('accept-language', '*')\n }\n\n // 14. If request’s priority is null, then use request’s initiator and\n // destination appropriately in setting request’s priority to a\n // user-agent-defined object.\n if (request.priority === null) {\n // TODO\n }\n\n // 15. If request is a subresource request, then:\n if (subresourceSet.has(request.destination)) {\n // TODO\n }\n\n // 16. Run main fetch given fetchParams.\n mainFetch(fetchParams)\n .catch(err => {\n fetchParams.controller.terminate(err)\n })\n\n // 17. Return fetchParam's controller\n return fetchParams.controller\n}\n\n// https://fetch.spec.whatwg.org/#concept-main-fetch\nasync function mainFetch (fetchParams, recursive = false) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. If request’s local-URLs-only flag is set and request’s current URL is\n // not local, then set response to a network error.\n if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) {\n response = makeNetworkError('local URLs only')\n }\n\n // 4. Run report Content Security Policy violations for request.\n // TODO\n\n // 5. Upgrade request to a potentially trustworthy URL, if appropriate.\n tryUpgradeRequestToAPotentiallyTrustworthyURL(request)\n\n // 6. If should request be blocked due to a bad port, should fetching request\n // be blocked as mixed content, or should request be blocked by Content\n // Security Policy returns blocked, then set response to a network error.\n if (requestBadPort(request) === 'blocked') {\n response = makeNetworkError('bad port')\n }\n // TODO: should fetching request be blocked as mixed content?\n // TODO: should request be blocked by Content Security Policy?\n\n // 7. If request’s referrer policy is the empty string, then set request’s\n // referrer policy to request’s policy container’s referrer policy.\n if (request.referrerPolicy === '') {\n request.referrerPolicy = request.policyContainer.referrerPolicy\n }\n\n // 8. If request’s referrer is not \"no-referrer\", then set request’s\n // referrer to the result of invoking determine request’s referrer.\n if (request.referrer !== 'no-referrer') {\n request.referrer = determineRequestsReferrer(request)\n }\n\n // 9. Set request’s current URL’s scheme to \"https\" if all of the following\n // conditions are true:\n // - request’s current URL’s scheme is \"http\"\n // - request’s current URL’s host is a domain\n // - Matching request’s current URL’s host per Known HSTS Host Domain Name\n // Matching results in either a superdomain match with an asserted\n // includeSubDomains directive or a congruent match (with or without an\n // asserted includeSubDomains directive). [HSTS]\n // TODO\n\n // 10. If recursive is false, then run the remaining steps in parallel.\n // TODO\n\n // 11. If response is null, then set response to the result of running\n // the steps corresponding to the first matching statement:\n if (response === null) {\n response = await (async () => {\n const currentURL = requestCurrentURL(request)\n\n if (\n // - request’s current URL’s origin is same origin with request’s origin,\n // and request’s response tainting is \"basic\"\n (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') ||\n // request’s current URL’s scheme is \"data\"\n (currentURL.protocol === 'data:') ||\n // - request’s mode is \"navigate\" or \"websocket\"\n (request.mode === 'navigate' || request.mode === 'websocket')\n ) {\n // 1. Set request’s response tainting to \"basic\".\n request.responseTainting = 'basic'\n\n // 2. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s mode is \"same-origin\"\n if (request.mode === 'same-origin') {\n // 1. Return a network error.\n return makeNetworkError('request mode cannot be \"same-origin\"')\n }\n\n // request’s mode is \"no-cors\"\n if (request.mode === 'no-cors') {\n // 1. If request’s redirect mode is not \"follow\", then return a network\n // error.\n if (request.redirect !== 'follow') {\n return makeNetworkError(\n 'redirect mode cannot be \"follow\" for \"no-cors\" request'\n )\n }\n\n // 2. Set request’s response tainting to \"opaque\".\n request.responseTainting = 'opaque'\n\n // 3. Return the result of running scheme fetch given fetchParams.\n return await schemeFetch(fetchParams)\n }\n\n // request’s current URL’s scheme is not an HTTP(S) scheme\n if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) {\n // Return a network error.\n return makeNetworkError('URL scheme must be a HTTP(S) scheme')\n }\n\n // - request’s use-CORS-preflight flag is set\n // - request’s unsafe-request flag is set and either request’s method is\n // not a CORS-safelisted method or CORS-unsafe request-header names with\n // request’s header list is not empty\n // 1. Set request’s response tainting to \"cors\".\n // 2. Let corsWithPreflightResponse be the result of running HTTP fetch\n // given fetchParams and true.\n // 3. If corsWithPreflightResponse is a network error, then clear cache\n // entries using request.\n // 4. Return corsWithPreflightResponse.\n // TODO\n\n // Otherwise\n // 1. Set request’s response tainting to \"cors\".\n request.responseTainting = 'cors'\n\n // 2. Return the result of running HTTP fetch given fetchParams.\n return await httpFetch(fetchParams)\n })()\n }\n\n // 12. If recursive is true, then return response.\n if (recursive) {\n return response\n }\n\n // 13. If response is not a network error and response is not a filtered\n // response, then:\n if (response.status !== 0 && !response.internalResponse) {\n // If request’s response tainting is \"cors\", then:\n if (request.responseTainting === 'cors') {\n // 1. Let headerNames be the result of extracting header list values\n // given `Access-Control-Expose-Headers` and response’s header list.\n // TODO\n // 2. If request’s credentials mode is not \"include\" and headerNames\n // contains `*`, then set response’s CORS-exposed header-name list to\n // all unique header names in response’s header list.\n // TODO\n // 3. Otherwise, if headerNames is not null or failure, then set\n // response’s CORS-exposed header-name list to headerNames.\n // TODO\n }\n\n // Set response to the following filtered response with response as its\n // internal response, depending on request’s response tainting:\n if (request.responseTainting === 'basic') {\n response = filterResponse(response, 'basic')\n } else if (request.responseTainting === 'cors') {\n response = filterResponse(response, 'cors')\n } else if (request.responseTainting === 'opaque') {\n response = filterResponse(response, 'opaque')\n } else {\n assert(false)\n }\n }\n\n // 14. Let internalResponse be response, if response is a network error,\n // and response’s internal response otherwise.\n let internalResponse =\n response.status === 0 ? response : response.internalResponse\n\n // 15. If internalResponse’s URL list is empty, then set it to a clone of\n // request’s URL list.\n if (internalResponse.urlList.length === 0) {\n internalResponse.urlList.push(...request.urlList)\n }\n\n // 16. If request’s timing allow failed flag is unset, then set\n // internalResponse’s timing allow passed flag.\n if (!request.timingAllowFailed) {\n response.timingAllowPassed = true\n }\n\n // 17. If response is not a network error and any of the following returns\n // blocked\n // - should internalResponse to request be blocked as mixed content\n // - should internalResponse to request be blocked by Content Security Policy\n // - should internalResponse to request be blocked due to its MIME type\n // - should internalResponse to request be blocked due to nosniff\n // TODO\n\n // 18. If response’s type is \"opaque\", internalResponse’s status is 206,\n // internalResponse’s range-requested flag is set, and request’s header\n // list does not contain `Range`, then set response and internalResponse\n // to a network error.\n if (\n response.type === 'opaque' &&\n internalResponse.status === 206 &&\n internalResponse.rangeRequested &&\n !request.headers.contains('range')\n ) {\n response = internalResponse = makeNetworkError()\n }\n\n // 19. If response is not a network error and either request’s method is\n // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status,\n // set internalResponse’s body to null and disregard any enqueuing toward\n // it (if any).\n if (\n response.status !== 0 &&\n (request.method === 'HEAD' ||\n request.method === 'CONNECT' ||\n nullBodyStatus.includes(internalResponse.status))\n ) {\n internalResponse.body = null\n fetchParams.controller.dump = true\n }\n\n // 20. If request’s integrity metadata is not the empty string, then:\n if (request.integrity) {\n // 1. Let processBodyError be this step: run fetch finale given fetchParams\n // and a network error.\n const processBodyError = (reason) =>\n fetchFinale(fetchParams, makeNetworkError(reason))\n\n // 2. If request’s response tainting is \"opaque\", or response’s body is null,\n // then run processBodyError and abort these steps.\n if (request.responseTainting === 'opaque' || response.body == null) {\n processBodyError(response.error)\n return\n }\n\n // 3. Let processBody given bytes be these steps:\n const processBody = (bytes) => {\n // 1. If bytes do not match request’s integrity metadata,\n // then run processBodyError and abort these steps. [SRI]\n if (!bytesMatch(bytes, request.integrity)) {\n processBodyError('integrity mismatch')\n return\n }\n\n // 2. Set response’s body to bytes as a body.\n response.body = safelyExtractBody(bytes)[0]\n\n // 3. Run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n\n // 4. Fully read response’s body given processBody and processBodyError.\n await fullyReadBody(response.body, processBody, processBodyError)\n } else {\n // 21. Otherwise, run fetch finale given fetchParams and response.\n fetchFinale(fetchParams, response)\n }\n}\n\n// https://fetch.spec.whatwg.org/#concept-scheme-fetch\n// given a fetch params fetchParams\nfunction schemeFetch (fetchParams) {\n // Note: since the connection is destroyed on redirect, which sets fetchParams to a\n // cancelled state, we do not want this condition to trigger *unless* there have been\n // no redirects. See https://github.com/nodejs/undici/issues/1776\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) {\n return Promise.resolve(makeAppropriateNetworkError(fetchParams))\n }\n\n // 2. Let request be fetchParams’s request.\n const { request } = fetchParams\n\n const { protocol: scheme } = requestCurrentURL(request)\n\n // 3. Switch on request’s current URL’s scheme and run the associated steps:\n switch (scheme) {\n case 'about:': {\n // If request’s current URL’s path is the string \"blank\", then return a new response\n // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) »,\n // and body is the empty byte sequence as a body.\n\n // Otherwise, return a network error.\n return Promise.resolve(makeNetworkError('about scheme is not supported'))\n }\n case 'blob:': {\n if (!resolveObjectURL) {\n resolveObjectURL = require('buffer').resolveObjectURL\n }\n\n // 1. Let blobURLEntry be request’s current URL’s blob URL entry.\n const blobURLEntry = requestCurrentURL(request)\n\n // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56\n // Buffer.resolveObjectURL does not ignore URL queries.\n if (blobURLEntry.search.length !== 0) {\n return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.'))\n }\n\n const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString())\n\n // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s\n // object is not a Blob object, then return a network error.\n if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) {\n return Promise.resolve(makeNetworkError('invalid method'))\n }\n\n // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object.\n const bodyWithType = safelyExtractBody(blobURLEntryObject)\n\n // 4. Let body be bodyWithType’s body.\n const body = bodyWithType[0]\n\n // 5. Let length be body’s length, serialized and isomorphic encoded.\n const length = isomorphicEncode(`${body.length}`)\n\n // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence.\n const type = bodyWithType[1] ?? ''\n\n // 7. Return a new response whose status message is `OK`, header list is\n // « (`Content-Length`, length), (`Content-Type`, type) », and body is body.\n const response = makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-length', { name: 'Content-Length', value: length }],\n ['content-type', { name: 'Content-Type', value: type }]\n ]\n })\n\n response.body = body\n\n return Promise.resolve(response)\n }\n case 'data:': {\n // 1. Let dataURLStruct be the result of running the\n // data: URL processor on request’s current URL.\n const currentURL = requestCurrentURL(request)\n const dataURLStruct = dataURLProcessor(currentURL)\n\n // 2. If dataURLStruct is failure, then return a\n // network error.\n if (dataURLStruct === 'failure') {\n return Promise.resolve(makeNetworkError('failed to fetch the data URL'))\n }\n\n // 3. Let mimeType be dataURLStruct’s MIME type, serialized.\n const mimeType = serializeAMimeType(dataURLStruct.mimeType)\n\n // 4. Return a response whose status message is `OK`,\n // header list is « (`Content-Type`, mimeType) »,\n // and body is dataURLStruct’s body as a body.\n return Promise.resolve(makeResponse({\n statusText: 'OK',\n headersList: [\n ['content-type', { name: 'Content-Type', value: mimeType }]\n ],\n body: safelyExtractBody(dataURLStruct.body)[0]\n }))\n }\n case 'file:': {\n // For now, unfortunate as it is, file URLs are left as an exercise for the reader.\n // When in doubt, return a network error.\n return Promise.resolve(makeNetworkError('not implemented... yet...'))\n }\n case 'http:':\n case 'https:': {\n // Return the result of running HTTP fetch given fetchParams.\n\n return httpFetch(fetchParams)\n .catch((err) => makeNetworkError(err))\n }\n default: {\n return Promise.resolve(makeNetworkError('unknown scheme'))\n }\n }\n}\n\n// https://fetch.spec.whatwg.org/#finalize-response\nfunction finalizeResponse (fetchParams, response) {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // 2, If fetchParams’s process response done is not null, then queue a fetch\n // task to run fetchParams’s process response done given response, with\n // fetchParams’s task destination.\n if (fetchParams.processResponseDone != null) {\n queueMicrotask(() => fetchParams.processResponseDone(response))\n }\n}\n\n// https://fetch.spec.whatwg.org/#fetch-finale\nfunction fetchFinale (fetchParams, response) {\n // 1. If response is a network error, then:\n if (response.type === 'error') {\n // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ».\n response.urlList = [fetchParams.request.urlList[0]]\n\n // 2. Set response’s timing info to the result of creating an opaque timing\n // info for fetchParams’s timing info.\n response.timingInfo = createOpaqueTimingInfo({\n startTime: fetchParams.timingInfo.startTime\n })\n }\n\n // 2. Let processResponseEndOfBody be the following steps:\n const processResponseEndOfBody = () => {\n // 1. Set fetchParams’s request’s done flag.\n fetchParams.request.done = true\n\n // If fetchParams’s process response end-of-body is not null,\n // then queue a fetch task to run fetchParams’s process response\n // end-of-body given response with fetchParams’s task destination.\n if (fetchParams.processResponseEndOfBody != null) {\n queueMicrotask(() => fetchParams.processResponseEndOfBody(response))\n }\n }\n\n // 3. If fetchParams’s process response is non-null, then queue a fetch task\n // to run fetchParams’s process response given response, with fetchParams’s\n // task destination.\n if (fetchParams.processResponse != null) {\n queueMicrotask(() => fetchParams.processResponse(response))\n }\n\n // 4. If response’s body is null, then run processResponseEndOfBody.\n if (response.body == null) {\n processResponseEndOfBody()\n } else {\n // 5. Otherwise:\n\n // 1. Let transformStream be a new a TransformStream.\n\n // 2. Let identityTransformAlgorithm be an algorithm which, given chunk,\n // enqueues chunk in transformStream.\n const identityTransformAlgorithm = (chunk, controller) => {\n controller.enqueue(chunk)\n }\n\n // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm\n // and flushAlgorithm set to processResponseEndOfBody.\n const transformStream = new TransformStream({\n start () {},\n transform: identityTransformAlgorithm,\n flush: processResponseEndOfBody\n }, {\n size () {\n return 1\n }\n }, {\n size () {\n return 1\n }\n })\n\n // 4. Set response’s body to the result of piping response’s body through transformStream.\n response.body = { stream: response.body.stream.pipeThrough(transformStream) }\n }\n\n // 6. If fetchParams’s process response consume body is non-null, then:\n if (fetchParams.processResponseConsumeBody != null) {\n // 1. Let processBody given nullOrBytes be this step: run fetchParams’s\n // process response consume body given response and nullOrBytes.\n const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes)\n\n // 2. Let processBodyError be this step: run fetchParams’s process\n // response consume body given response and failure.\n const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure)\n\n // 3. If response’s body is null, then queue a fetch task to run processBody\n // given null, with fetchParams’s task destination.\n if (response.body == null) {\n queueMicrotask(() => processBody(null))\n } else {\n // 4. Otherwise, fully read response’s body given processBody, processBodyError,\n // and fetchParams’s task destination.\n return fullyReadBody(response.body, processBody, processBodyError)\n }\n return Promise.resolve()\n }\n}\n\n// https://fetch.spec.whatwg.org/#http-fetch\nasync function httpFetch (fetchParams) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let actualResponse be null.\n let actualResponse = null\n\n // 4. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 5. If request’s service-workers mode is \"all\", then:\n if (request.serviceWorkers === 'all') {\n // TODO\n }\n\n // 6. If response is null, then:\n if (response === null) {\n // 1. If makeCORSPreflight is true and one of these conditions is true:\n // TODO\n\n // 2. If request’s redirect mode is \"follow\", then set request’s\n // service-workers mode to \"none\".\n if (request.redirect === 'follow') {\n request.serviceWorkers = 'none'\n }\n\n // 3. Set response and actualResponse to the result of running\n // HTTP-network-or-cache fetch given fetchParams.\n actualResponse = response = await httpNetworkOrCacheFetch(fetchParams)\n\n // 4. If request’s response tainting is \"cors\" and a CORS check\n // for request and response returns failure, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n corsCheck(request, response) === 'failure'\n ) {\n return makeNetworkError('cors failure')\n }\n\n // 5. If the TAO check for request and response returns failure, then set\n // request’s timing allow failed flag.\n if (TAOCheck(request, response) === 'failure') {\n request.timingAllowFailed = true\n }\n }\n\n // 7. If either request’s response tainting or response’s type\n // is \"opaque\", and the cross-origin resource policy check with\n // request’s origin, request’s client, request’s destination,\n // and actualResponse returns blocked, then return a network error.\n if (\n (request.responseTainting === 'opaque' || response.type === 'opaque') &&\n crossOriginResourcePolicyCheck(\n request.origin,\n request.client,\n request.destination,\n actualResponse\n ) === 'blocked'\n ) {\n return makeNetworkError('blocked')\n }\n\n // 8. If actualResponse’s status is a redirect status, then:\n if (redirectStatusSet.has(actualResponse.status)) {\n // 1. If actualResponse’s status is not 303, request’s body is not null,\n // and the connection uses HTTP/2, then user agents may, and are even\n // encouraged to, transmit an RST_STREAM frame.\n // See, https://github.com/whatwg/fetch/issues/1288\n if (request.redirect !== 'manual') {\n fetchParams.controller.connection.destroy()\n }\n\n // 2. Switch on request’s redirect mode:\n if (request.redirect === 'error') {\n // Set response to a network error.\n response = makeNetworkError('unexpected redirect')\n } else if (request.redirect === 'manual') {\n // Set response to an opaque-redirect filtered response whose internal\n // response is actualResponse.\n // NOTE(spec): On the web this would return an `opaqueredirect` response,\n // but that doesn't make sense server side.\n // See https://github.com/nodejs/undici/issues/1193.\n response = actualResponse\n } else if (request.redirect === 'follow') {\n // Set response to the result of running HTTP-redirect fetch given\n // fetchParams and response.\n response = await httpRedirectFetch(fetchParams, response)\n } else {\n assert(false)\n }\n }\n\n // 9. Set response’s timing info to timingInfo.\n response.timingInfo = timingInfo\n\n // 10. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-redirect-fetch\nfunction httpRedirectFetch (fetchParams, response) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let actualResponse be response, if response is not a filtered response,\n // and response’s internal response otherwise.\n const actualResponse = response.internalResponse\n ? response.internalResponse\n : response\n\n // 3. Let locationURL be actualResponse’s location URL given request’s current\n // URL’s fragment.\n let locationURL\n\n try {\n locationURL = responseLocationURL(\n actualResponse,\n requestCurrentURL(request).hash\n )\n\n // 4. If locationURL is null, then return response.\n if (locationURL == null) {\n return response\n }\n } catch (err) {\n // 5. If locationURL is failure, then return a network error.\n return Promise.resolve(makeNetworkError(err))\n }\n\n // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network\n // error.\n if (!urlIsHttpHttpsScheme(locationURL)) {\n return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme'))\n }\n\n // 7. If request’s redirect count is 20, then return a network error.\n if (request.redirectCount === 20) {\n return Promise.resolve(makeNetworkError('redirect count exceeded'))\n }\n\n // 8. Increase request’s redirect count by 1.\n request.redirectCount += 1\n\n // 9. If request’s mode is \"cors\", locationURL includes credentials, and\n // request’s origin is not same origin with locationURL’s origin, then return\n // a network error.\n if (\n request.mode === 'cors' &&\n (locationURL.username || locationURL.password) &&\n !sameOrigin(request, locationURL)\n ) {\n return Promise.resolve(makeNetworkError('cross origin not allowed for request mode \"cors\"'))\n }\n\n // 10. If request’s response tainting is \"cors\" and locationURL includes\n // credentials, then return a network error.\n if (\n request.responseTainting === 'cors' &&\n (locationURL.username || locationURL.password)\n ) {\n return Promise.resolve(makeNetworkError(\n 'URL cannot contain credentials for request mode \"cors\"'\n ))\n }\n\n // 11. If actualResponse’s status is not 303, request’s body is non-null,\n // and request’s body’s source is null, then return a network error.\n if (\n actualResponse.status !== 303 &&\n request.body != null &&\n request.body.source == null\n ) {\n return Promise.resolve(makeNetworkError())\n }\n\n // 12. If one of the following is true\n // - actualResponse’s status is 301 or 302 and request’s method is `POST`\n // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD`\n if (\n ([301, 302].includes(actualResponse.status) && request.method === 'POST') ||\n (actualResponse.status === 303 &&\n !GET_OR_HEAD.includes(request.method))\n ) {\n // then:\n // 1. Set request’s method to `GET` and request’s body to null.\n request.method = 'GET'\n request.body = null\n\n // 2. For each headerName of request-body-header name, delete headerName from\n // request’s header list.\n for (const headerName of requestBodyHeader) {\n request.headersList.delete(headerName)\n }\n }\n\n // 13. If request’s current URL’s origin is not same origin with locationURL’s\n // origin, then for each headerName of CORS non-wildcard request-header name,\n // delete headerName from request’s header list.\n if (!sameOrigin(requestCurrentURL(request), locationURL)) {\n // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name\n request.headersList.delete('authorization')\n\n // https://fetch.spec.whatwg.org/#authentication-entries\n request.headersList.delete('proxy-authorization', true)\n\n // \"Cookie\" and \"Host\" are forbidden request-headers, which undici doesn't implement.\n request.headersList.delete('cookie')\n request.headersList.delete('host')\n }\n\n // 14. If request’s body is non-null, then set request’s body to the first return\n // value of safely extracting request’s body’s source.\n if (request.body != null) {\n assert(request.body.source != null)\n request.body = safelyExtractBody(request.body.source)[0]\n }\n\n // 15. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 16. Set timingInfo’s redirect end time and post-redirect start time to the\n // coarsened shared current time given fetchParams’s cross-origin isolated\n // capability.\n timingInfo.redirectEndTime = timingInfo.postRedirectStartTime =\n coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)\n\n // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s\n // redirect start time to timingInfo’s start time.\n if (timingInfo.redirectStartTime === 0) {\n timingInfo.redirectStartTime = timingInfo.startTime\n }\n\n // 18. Append locationURL to request’s URL list.\n request.urlList.push(locationURL)\n\n // 19. Invoke set request’s referrer policy on redirect on request and\n // actualResponse.\n setRequestReferrerPolicyOnRedirect(request, actualResponse)\n\n // 20. Return the result of running main fetch given fetchParams and true.\n return mainFetch(fetchParams, true)\n}\n\n// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch\nasync function httpNetworkOrCacheFetch (\n fetchParams,\n isAuthenticationFetch = false,\n isNewConnectionFetch = false\n) {\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let httpFetchParams be null.\n let httpFetchParams = null\n\n // 3. Let httpRequest be null.\n let httpRequest = null\n\n // 4. Let response be null.\n let response = null\n\n // 5. Let storedResponse be null.\n // TODO: cache\n\n // 6. Let httpCache be null.\n const httpCache = null\n\n // 7. Let the revalidatingFlag be unset.\n const revalidatingFlag = false\n\n // 8. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If request’s window is \"no-window\" and request’s redirect mode is\n // \"error\", then set httpFetchParams to fetchParams and httpRequest to\n // request.\n if (request.window === 'no-window' && request.redirect === 'error') {\n httpFetchParams = fetchParams\n httpRequest = request\n } else {\n // Otherwise:\n\n // 1. Set httpRequest to a clone of request.\n httpRequest = makeRequest(request)\n\n // 2. Set httpFetchParams to a copy of fetchParams.\n httpFetchParams = { ...fetchParams }\n\n // 3. Set httpFetchParams’s request to httpRequest.\n httpFetchParams.request = httpRequest\n }\n\n // 3. Let includeCredentials be true if one of\n const includeCredentials =\n request.credentials === 'include' ||\n (request.credentials === 'same-origin' &&\n request.responseTainting === 'basic')\n\n // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s\n // body is non-null; otherwise null.\n const contentLength = httpRequest.body ? httpRequest.body.length : null\n\n // 5. Let contentLengthHeaderValue be null.\n let contentLengthHeaderValue = null\n\n // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or\n // `PUT`, then set contentLengthHeaderValue to `0`.\n if (\n httpRequest.body == null &&\n ['POST', 'PUT'].includes(httpRequest.method)\n ) {\n contentLengthHeaderValue = '0'\n }\n\n // 7. If contentLength is non-null, then set contentLengthHeaderValue to\n // contentLength, serialized and isomorphic encoded.\n if (contentLength != null) {\n contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)\n }\n\n // 8. If contentLengthHeaderValue is non-null, then append\n // `Content-Length`/contentLengthHeaderValue to httpRequest’s header\n // list.\n if (contentLengthHeaderValue != null) {\n httpRequest.headersList.append('content-length', contentLengthHeaderValue)\n }\n\n // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`,\n // contentLengthHeaderValue) to httpRequest’s header list.\n\n // 10. If contentLength is non-null and httpRequest’s keepalive is true,\n // then:\n if (contentLength != null && httpRequest.keepalive) {\n // NOTE: keepalive is a noop outside of browser context.\n }\n\n // 11. If httpRequest’s referrer is a URL, then append\n // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded,\n // to httpRequest’s header list.\n if (httpRequest.referrer instanceof URL) {\n httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href))\n }\n\n // 12. Append a request `Origin` header for httpRequest.\n appendRequestOriginHeader(httpRequest)\n\n // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA]\n appendFetchMetadata(httpRequest)\n\n // 14. If httpRequest’s header list does not contain `User-Agent`, then\n // user agents should append `User-Agent`/default `User-Agent` value to\n // httpRequest’s header list.\n if (!httpRequest.headersList.contains('user-agent')) {\n httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node')\n }\n\n // 15. If httpRequest’s cache mode is \"default\" and httpRequest’s header\n // list contains `If-Modified-Since`, `If-None-Match`,\n // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set\n // httpRequest’s cache mode to \"no-store\".\n if (\n httpRequest.cache === 'default' &&\n (httpRequest.headersList.contains('if-modified-since') ||\n httpRequest.headersList.contains('if-none-match') ||\n httpRequest.headersList.contains('if-unmodified-since') ||\n httpRequest.headersList.contains('if-match') ||\n httpRequest.headersList.contains('if-range'))\n ) {\n httpRequest.cache = 'no-store'\n }\n\n // 16. If httpRequest’s cache mode is \"no-cache\", httpRequest’s prevent\n // no-cache cache-control header modification flag is unset, and\n // httpRequest’s header list does not contain `Cache-Control`, then append\n // `Cache-Control`/`max-age=0` to httpRequest’s header list.\n if (\n httpRequest.cache === 'no-cache' &&\n !httpRequest.preventNoCacheCacheControlHeaderModification &&\n !httpRequest.headersList.contains('cache-control')\n ) {\n httpRequest.headersList.append('cache-control', 'max-age=0')\n }\n\n // 17. If httpRequest’s cache mode is \"no-store\" or \"reload\", then:\n if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') {\n // 1. If httpRequest’s header list does not contain `Pragma`, then append\n // `Pragma`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('pragma')) {\n httpRequest.headersList.append('pragma', 'no-cache')\n }\n\n // 2. If httpRequest’s header list does not contain `Cache-Control`,\n // then append `Cache-Control`/`no-cache` to httpRequest’s header list.\n if (!httpRequest.headersList.contains('cache-control')) {\n httpRequest.headersList.append('cache-control', 'no-cache')\n }\n }\n\n // 18. If httpRequest’s header list contains `Range`, then append\n // `Accept-Encoding`/`identity` to httpRequest’s header list.\n if (httpRequest.headersList.contains('range')) {\n httpRequest.headersList.append('accept-encoding', 'identity')\n }\n\n // 19. Modify httpRequest’s header list per HTTP. Do not append a given\n // header if httpRequest’s header list contains that header’s name.\n // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129\n if (!httpRequest.headersList.contains('accept-encoding')) {\n if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) {\n httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate')\n } else {\n httpRequest.headersList.append('accept-encoding', 'gzip, deflate')\n }\n }\n\n httpRequest.headersList.delete('host')\n\n // 20. If includeCredentials is true, then:\n if (includeCredentials) {\n // 1. If the user agent is not configured to block cookies for httpRequest\n // (see section 7 of [COOKIES]), then:\n // TODO: credentials\n // 2. If httpRequest’s header list does not contain `Authorization`, then:\n // TODO: credentials\n }\n\n // 21. If there’s a proxy-authentication entry, use it as appropriate.\n // TODO: proxy-authentication\n\n // 22. Set httpCache to the result of determining the HTTP cache\n // partition, given httpRequest.\n // TODO: cache\n\n // 23. If httpCache is null, then set httpRequest’s cache mode to\n // \"no-store\".\n if (httpCache == null) {\n httpRequest.cache = 'no-store'\n }\n\n // 24. If httpRequest’s cache mode is neither \"no-store\" nor \"reload\",\n // then:\n if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') {\n // TODO: cache\n }\n\n // 9. If aborted, then return the appropriate network error for fetchParams.\n // TODO\n\n // 10. If response is null, then:\n if (response == null) {\n // 1. If httpRequest’s cache mode is \"only-if-cached\", then return a\n // network error.\n if (httpRequest.mode === 'only-if-cached') {\n return makeNetworkError('only if cached')\n }\n\n // 2. Let forwardResponse be the result of running HTTP-network fetch\n // given httpFetchParams, includeCredentials, and isNewConnectionFetch.\n const forwardResponse = await httpNetworkFetch(\n httpFetchParams,\n includeCredentials,\n isNewConnectionFetch\n )\n\n // 3. If httpRequest’s method is unsafe and forwardResponse’s status is\n // in the range 200 to 399, inclusive, invalidate appropriate stored\n // responses in httpCache, as per the \"Invalidation\" chapter of HTTP\n // Caching, and set storedResponse to null. [HTTP-CACHING]\n if (\n !safeMethodsSet.has(httpRequest.method) &&\n forwardResponse.status >= 200 &&\n forwardResponse.status <= 399\n ) {\n // TODO: cache\n }\n\n // 4. If the revalidatingFlag is set and forwardResponse’s status is 304,\n // then:\n if (revalidatingFlag && forwardResponse.status === 304) {\n // TODO: cache\n }\n\n // 5. If response is null, then:\n if (response == null) {\n // 1. Set response to forwardResponse.\n response = forwardResponse\n\n // 2. Store httpRequest and forwardResponse in httpCache, as per the\n // \"Storing Responses in Caches\" chapter of HTTP Caching. [HTTP-CACHING]\n // TODO: cache\n }\n }\n\n // 11. Set response’s URL list to a clone of httpRequest’s URL list.\n response.urlList = [...httpRequest.urlList]\n\n // 12. If httpRequest’s header list contains `Range`, then set response’s\n // range-requested flag.\n if (httpRequest.headersList.contains('range')) {\n response.rangeRequested = true\n }\n\n // 13. Set response’s request-includes-credentials to includeCredentials.\n response.requestIncludesCredentials = includeCredentials\n\n // 14. If response’s status is 401, httpRequest’s response tainting is not\n // \"cors\", includeCredentials is true, and request’s window is an environment\n // settings object, then:\n // TODO\n\n // 15. If response’s status is 407, then:\n if (response.status === 407) {\n // 1. If request’s window is \"no-window\", then return a network error.\n if (request.window === 'no-window') {\n return makeNetworkError()\n }\n\n // 2. ???\n\n // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 4. Prompt the end user as appropriate in request’s window and store\n // the result as a proxy-authentication entry. [HTTP-AUTH]\n // TODO: Invoke some kind of callback?\n\n // 5. Set response to the result of running HTTP-network-or-cache fetch given\n // fetchParams.\n // TODO\n return makeNetworkError('proxy authentication required')\n }\n\n // 16. If all of the following are true\n if (\n // response’s status is 421\n response.status === 421 &&\n // isNewConnectionFetch is false\n !isNewConnectionFetch &&\n // request’s body is null, or request’s body is non-null and request’s body’s source is non-null\n (request.body == null || request.body.source != null)\n ) {\n // then:\n\n // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams.\n if (isCancelled(fetchParams)) {\n return makeAppropriateNetworkError(fetchParams)\n }\n\n // 2. Set response to the result of running HTTP-network-or-cache\n // fetch given fetchParams, isAuthenticationFetch, and true.\n\n // TODO (spec): The spec doesn't specify this but we need to cancel\n // the active response before we can start a new one.\n // https://github.com/whatwg/fetch/issues/1293\n fetchParams.controller.connection.destroy()\n\n response = await httpNetworkOrCacheFetch(\n fetchParams,\n isAuthenticationFetch,\n true\n )\n }\n\n // 17. If isAuthenticationFetch is true, then create an authentication entry\n if (isAuthenticationFetch) {\n // TODO\n }\n\n // 18. Return response.\n return response\n}\n\n// https://fetch.spec.whatwg.org/#http-network-fetch\nasync function httpNetworkFetch (\n fetchParams,\n includeCredentials = false,\n forceNewConnection = false\n) {\n assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed)\n\n fetchParams.controller.connection = {\n abort: null,\n destroyed: false,\n destroy (err) {\n if (!this.destroyed) {\n this.destroyed = true\n this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError'))\n }\n }\n }\n\n // 1. Let request be fetchParams’s request.\n const request = fetchParams.request\n\n // 2. Let response be null.\n let response = null\n\n // 3. Let timingInfo be fetchParams’s timing info.\n const timingInfo = fetchParams.timingInfo\n\n // 4. Let httpCache be the result of determining the HTTP cache partition,\n // given request.\n // TODO: cache\n const httpCache = null\n\n // 5. If httpCache is null, then set request’s cache mode to \"no-store\".\n if (httpCache == null) {\n request.cache = 'no-store'\n }\n\n // 6. Let networkPartitionKey be the result of determining the network\n // partition key given request.\n // TODO\n\n // 7. Let newConnection be \"yes\" if forceNewConnection is true; otherwise\n // \"no\".\n const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars\n\n // 8. Switch on request’s mode:\n if (request.mode === 'websocket') {\n // Let connection be the result of obtaining a WebSocket connection,\n // given request’s current URL.\n // TODO\n } else {\n // Let connection be the result of obtaining a connection, given\n // networkPartitionKey, request’s current URL’s origin,\n // includeCredentials, and forceNewConnection.\n // TODO\n }\n\n // 9. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. If connection is failure, then return a network error.\n\n // 2. Set timingInfo’s final connection timing info to the result of\n // calling clamp and coarsen connection timing info with connection’s\n // timing info, timingInfo’s post-redirect start time, and fetchParams’s\n // cross-origin isolated capability.\n\n // 3. If connection is not an HTTP/2 connection, request’s body is non-null,\n // and request’s body’s source is null, then append (`Transfer-Encoding`,\n // `chunked`) to request’s header list.\n\n // 4. Set timingInfo’s final network-request start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated\n // capability.\n\n // 5. Set response to the result of making an HTTP request over connection\n // using request with the following caveats:\n\n // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS]\n // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH]\n\n // - If request’s body is non-null, and request’s body’s source is null,\n // then the user agent may have a buffer of up to 64 kibibytes and store\n // a part of request’s body in that buffer. If the user agent reads from\n // request’s body beyond that buffer’s size and the user agent needs to\n // resend request, then instead return a network error.\n\n // - Set timingInfo’s final network-response start time to the coarsened\n // shared current time given fetchParams’s cross-origin isolated capability,\n // immediately after the user agent’s HTTP parser receives the first byte\n // of the response (e.g., frame header bytes for HTTP/2 or response status\n // line for HTTP/1.x).\n\n // - Wait until all the headers are transmitted.\n\n // - Any responses whose status is in the range 100 to 199, inclusive,\n // and is not 101, are to be ignored, except for the purposes of setting\n // timingInfo’s final network-response start time above.\n\n // - If request’s header list contains `Transfer-Encoding`/`chunked` and\n // response is transferred via HTTP/1.0 or older, then return a network\n // error.\n\n // - If the HTTP request results in a TLS client certificate dialog, then:\n\n // 1. If request’s window is an environment settings object, make the\n // dialog available in request’s window.\n\n // 2. Otherwise, return a network error.\n\n // To transmit request’s body body, run these steps:\n let requestBody = null\n // 1. If body is null and fetchParams’s process request end-of-body is\n // non-null, then queue a fetch task given fetchParams’s process request\n // end-of-body and fetchParams’s task destination.\n if (request.body == null && fetchParams.processRequestEndOfBody) {\n queueMicrotask(() => fetchParams.processRequestEndOfBody())\n } else if (request.body != null) {\n // 2. Otherwise, if body is non-null:\n\n // 1. Let processBodyChunk given bytes be these steps:\n const processBodyChunk = async function * (bytes) {\n // 1. If the ongoing fetch is terminated, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. Run this step in parallel: transmit bytes.\n yield bytes\n\n // 3. If fetchParams’s process request body is non-null, then run\n // fetchParams’s process request body given bytes’s length.\n fetchParams.processRequestBodyChunkLength?.(bytes.byteLength)\n }\n\n // 2. Let processEndOfBody be these steps:\n const processEndOfBody = () => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If fetchParams’s process request end-of-body is non-null,\n // then run fetchParams’s process request end-of-body.\n if (fetchParams.processRequestEndOfBody) {\n fetchParams.processRequestEndOfBody()\n }\n }\n\n // 3. Let processBodyError given e be these steps:\n const processBodyError = (e) => {\n // 1. If fetchParams is canceled, then abort these steps.\n if (isCancelled(fetchParams)) {\n return\n }\n\n // 2. If e is an \"AbortError\" DOMException, then abort fetchParams’s controller.\n if (e.name === 'AbortError') {\n fetchParams.controller.abort()\n } else {\n fetchParams.controller.terminate(e)\n }\n }\n\n // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody,\n // processBodyError, and fetchParams’s task destination.\n requestBody = (async function * () {\n try {\n for await (const bytes of request.body.stream) {\n yield * processBodyChunk(bytes)\n }\n processEndOfBody()\n } catch (err) {\n processBodyError(err)\n }\n })()\n }\n\n try {\n // socket is only provided for websockets\n const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody })\n\n if (socket) {\n response = makeResponse({ status, statusText, headersList, socket })\n } else {\n const iterator = body[Symbol.asyncIterator]()\n fetchParams.controller.next = () => iterator.next()\n\n response = makeResponse({ status, statusText, headersList })\n }\n } catch (err) {\n // 10. If aborted, then:\n if (err.name === 'AbortError') {\n // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n fetchParams.controller.connection.destroy()\n\n // 2. Return the appropriate network error for fetchParams.\n return makeAppropriateNetworkError(fetchParams, err)\n }\n\n return makeNetworkError(err)\n }\n\n // 11. Let pullAlgorithm be an action that resumes the ongoing fetch\n // if it is suspended.\n const pullAlgorithm = () => {\n fetchParams.controller.resume()\n }\n\n // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s\n // controller with reason, given reason.\n const cancelAlgorithm = (reason) => {\n fetchParams.controller.abort(reason)\n }\n\n // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by\n // the user agent.\n // TODO\n\n // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object\n // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent.\n // TODO\n\n // 15. Let stream be a new ReadableStream.\n // 16. Set up stream with pullAlgorithm set to pullAlgorithm,\n // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to\n // highWaterMark, and sizeAlgorithm set to sizeAlgorithm.\n if (!ReadableStream) {\n ReadableStream = require('stream/web').ReadableStream\n }\n\n const stream = new ReadableStream(\n {\n async start (controller) {\n fetchParams.controller.controller = controller\n },\n async pull (controller) {\n await pullAlgorithm(controller)\n },\n async cancel (reason) {\n await cancelAlgorithm(reason)\n }\n },\n {\n highWaterMark: 0,\n size () {\n return 1\n }\n }\n )\n\n // 17. Run these steps, but abort when the ongoing fetch is terminated:\n\n // 1. Set response’s body to a new body whose stream is stream.\n response.body = { stream }\n\n // 2. If response is not a network error and request’s cache mode is\n // not \"no-store\", then update response in httpCache for request.\n // TODO\n\n // 3. If includeCredentials is true and the user agent is not configured\n // to block cookies for request (see section 7 of [COOKIES]), then run the\n // \"set-cookie-string\" parsing algorithm (see section 5.2 of [COOKIES]) on\n // the value of each header whose name is a byte-case-insensitive match for\n // `Set-Cookie` in response’s header list, if any, and request’s current URL.\n // TODO\n\n // 18. If aborted, then:\n // TODO\n\n // 19. Run these steps in parallel:\n\n // 1. Run these steps, but abort when fetchParams is canceled:\n fetchParams.controller.on('terminated', onAborted)\n fetchParams.controller.resume = async () => {\n // 1. While true\n while (true) {\n // 1-3. See onData...\n\n // 4. Set bytes to the result of handling content codings given\n // codings and bytes.\n let bytes\n let isFailure\n try {\n const { done, value } = await fetchParams.controller.next()\n\n if (isAborted(fetchParams)) {\n break\n }\n\n bytes = done ? undefined : value\n } catch (err) {\n if (fetchParams.controller.ended && !timingInfo.encodedBodySize) {\n // zlib doesn't like empty streams.\n bytes = undefined\n } else {\n bytes = err\n\n // err may be propagated from the result of calling readablestream.cancel,\n // which might not be an error. https://github.com/nodejs/undici/issues/2009\n isFailure = true\n }\n }\n\n if (bytes === undefined) {\n // 2. Otherwise, if the bytes transmission for response’s message\n // body is done normally and stream is readable, then close\n // stream, finalize response for fetchParams and response, and\n // abort these in-parallel steps.\n readableStreamClose(fetchParams.controller.controller)\n\n finalizeResponse(fetchParams, response)\n\n return\n }\n\n // 5. Increase timingInfo’s decoded body size by bytes’s length.\n timingInfo.decodedBodySize += bytes?.byteLength ?? 0\n\n // 6. If bytes is failure, then terminate fetchParams’s controller.\n if (isFailure) {\n fetchParams.controller.terminate(bytes)\n return\n }\n\n // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes\n // into stream.\n fetchParams.controller.controller.enqueue(new Uint8Array(bytes))\n\n // 8. If stream is errored, then terminate the ongoing fetch.\n if (isErrored(stream)) {\n fetchParams.controller.terminate()\n return\n }\n\n // 9. If stream doesn’t need more data ask the user agent to suspend\n // the ongoing fetch.\n if (!fetchParams.controller.controller.desiredSize) {\n return\n }\n }\n }\n\n // 2. If aborted, then:\n function onAborted (reason) {\n // 2. If fetchParams is aborted, then:\n if (isAborted(fetchParams)) {\n // 1. Set response’s aborted flag.\n response.aborted = true\n\n // 2. If stream is readable, then error stream with the result of\n // deserialize a serialized abort reason given fetchParams’s\n // controller’s serialized abort reason and an\n // implementation-defined realm.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(\n fetchParams.controller.serializedAbortReason\n )\n }\n } else {\n // 3. Otherwise, if stream is readable, error stream with a TypeError.\n if (isReadable(stream)) {\n fetchParams.controller.controller.error(new TypeError('terminated', {\n cause: isErrorLike(reason) ? reason : undefined\n }))\n }\n }\n\n // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame.\n // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so.\n fetchParams.controller.connection.destroy()\n }\n\n // 20. Return response.\n return response\n\n async function dispatch ({ body }) {\n const url = requestCurrentURL(request)\n /** @type {import('../..').Agent} */\n const agent = fetchParams.controller.dispatcher\n\n return new Promise((resolve, reject) => agent.dispatch(\n {\n path: url.pathname + url.search,\n origin: url.origin,\n method: request.method,\n body: fetchParams.controller.dispatcher.isMockActive ? request.body && (request.body.source || request.body.stream) : body,\n headers: request.headersList.entries,\n maxRedirections: 0,\n upgrade: request.mode === 'websocket' ? 'websocket' : undefined\n },\n {\n body: null,\n abort: null,\n\n onConnect (abort) {\n // TODO (fix): Do we need connection here?\n const { connection } = fetchParams.controller\n\n if (connection.destroyed) {\n abort(new DOMException('The operation was aborted.', 'AbortError'))\n } else {\n fetchParams.controller.on('terminated', abort)\n this.abort = connection.abort = abort\n }\n },\n\n onHeaders (status, headersList, resume, statusText) {\n if (status < 200) {\n return\n }\n\n let codings = []\n let location = ''\n\n const headers = new Headers()\n\n // For H2, the headers are a plain JS object\n // We distinguish between them and iterate accordingly\n if (Array.isArray(headersList)) {\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim())\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n } else {\n const keys = Object.keys(headersList)\n for (const key of keys) {\n const val = headersList[key]\n if (key.toLowerCase() === 'content-encoding') {\n // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1\n // \"All content-coding values are case-insensitive...\"\n codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse()\n } else if (key.toLowerCase() === 'location') {\n location = val\n }\n\n headers[kHeadersList].append(key, val)\n }\n }\n\n this.body = new Readable({ read: resume })\n\n const decoders = []\n\n const willFollow = request.redirect === 'follow' &&\n location &&\n redirectStatusSet.has(status)\n\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding\n if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) {\n for (const coding of codings) {\n // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2\n if (coding === 'x-gzip' || coding === 'gzip') {\n decoders.push(zlib.createGunzip({\n // Be less strict when decoding compressed responses, since sometimes\n // servers send slightly invalid responses that are still accepted\n // by common browsers.\n // Always using Z_SYNC_FLUSH is what cURL does.\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n }))\n } else if (coding === 'deflate') {\n decoders.push(zlib.createInflate())\n } else if (coding === 'br') {\n decoders.push(zlib.createBrotliDecompress())\n } else {\n decoders.length = 0\n break\n }\n }\n }\n\n resolve({\n status,\n statusText,\n headersList: headers[kHeadersList],\n body: decoders.length\n ? pipeline(this.body, ...decoders, () => { })\n : this.body.on('error', () => {})\n })\n\n return true\n },\n\n onData (chunk) {\n if (fetchParams.controller.dump) {\n return\n }\n\n // 1. If one or more bytes have been transmitted from response’s\n // message body, then:\n\n // 1. Let bytes be the transmitted bytes.\n const bytes = chunk\n\n // 2. Let codings be the result of extracting header list values\n // given `Content-Encoding` and response’s header list.\n // See pullAlgorithm.\n\n // 3. Increase timingInfo’s encoded body size by bytes’s length.\n timingInfo.encodedBodySize += bytes.byteLength\n\n // 4. See pullAlgorithm...\n\n return this.body.push(bytes)\n },\n\n onComplete () {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n fetchParams.controller.ended = true\n\n this.body.push(null)\n },\n\n onError (error) {\n if (this.abort) {\n fetchParams.controller.off('terminated', this.abort)\n }\n\n this.body?.destroy(error)\n\n fetchParams.controller.terminate(error)\n\n reject(error)\n },\n\n onUpgrade (status, headersList, socket) {\n if (status !== 101) {\n return\n }\n\n const headers = new Headers()\n\n for (let n = 0; n < headersList.length; n += 2) {\n const key = headersList[n + 0].toString('latin1')\n const val = headersList[n + 1].toString('latin1')\n\n headers[kHeadersList].append(key, val)\n }\n\n resolve({\n status,\n statusText: STATUS_CODES[status],\n headersList: headers[kHeadersList],\n socket\n })\n\n return true\n }\n }\n ))\n }\n}\n\nmodule.exports = {\n fetch,\n Fetch,\n fetching,\n finalizeAndReportTiming\n}\n","'use strict'\n\nmodule.exports = {\n kState: Symbol('FileReader state'),\n kResult: Symbol('FileReader result'),\n kError: Symbol('FileReader error'),\n kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'),\n kEvents: Symbol('FileReader events'),\n kAborted: Symbol('FileReader aborted')\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\n\nconst kState = Symbol('ProgressEvent state')\n\n/**\n * @see https://xhr.spec.whatwg.org/#progressevent\n */\nclass ProgressEvent extends Event {\n constructor (type, eventInitDict = {}) {\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {})\n\n super(type, eventInitDict)\n\n this[kState] = {\n lengthComputable: eventInitDict.lengthComputable,\n loaded: eventInitDict.loaded,\n total: eventInitDict.total\n }\n }\n\n get lengthComputable () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].lengthComputable\n }\n\n get loaded () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].loaded\n }\n\n get total () {\n webidl.brandCheck(this, ProgressEvent)\n\n return this[kState].total\n }\n}\n\nwebidl.converters.ProgressEventInit = webidl.dictionaryConverter([\n {\n key: 'lengthComputable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'loaded',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'total',\n converter: webidl.converters['unsigned long long'],\n defaultValue: 0\n },\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n])\n\nmodule.exports = {\n ProgressEvent\n}\n","'use strict'\n\n/**\n * @see https://encoding.spec.whatwg.org/#concept-encoding-get\n * @param {string|undefined} label\n */\nfunction getEncoding (label) {\n if (!label) {\n return 'failure'\n }\n\n // 1. Remove any leading and trailing ASCII whitespace from label.\n // 2. If label is an ASCII case-insensitive match for any of the\n // labels listed in the table below, then return the\n // corresponding encoding; otherwise return failure.\n switch (label.trim().toLowerCase()) {\n case 'unicode-1-1-utf-8':\n case 'unicode11utf8':\n case 'unicode20utf8':\n case 'utf-8':\n case 'utf8':\n case 'x-unicode20utf8':\n return 'UTF-8'\n case '866':\n case 'cp866':\n case 'csibm866':\n case 'ibm866':\n return 'IBM866'\n case 'csisolatin2':\n case 'iso-8859-2':\n case 'iso-ir-101':\n case 'iso8859-2':\n case 'iso88592':\n case 'iso_8859-2':\n case 'iso_8859-2:1987':\n case 'l2':\n case 'latin2':\n return 'ISO-8859-2'\n case 'csisolatin3':\n case 'iso-8859-3':\n case 'iso-ir-109':\n case 'iso8859-3':\n case 'iso88593':\n case 'iso_8859-3':\n case 'iso_8859-3:1988':\n case 'l3':\n case 'latin3':\n return 'ISO-8859-3'\n case 'csisolatin4':\n case 'iso-8859-4':\n case 'iso-ir-110':\n case 'iso8859-4':\n case 'iso88594':\n case 'iso_8859-4':\n case 'iso_8859-4:1988':\n case 'l4':\n case 'latin4':\n return 'ISO-8859-4'\n case 'csisolatincyrillic':\n case 'cyrillic':\n case 'iso-8859-5':\n case 'iso-ir-144':\n case 'iso8859-5':\n case 'iso88595':\n case 'iso_8859-5':\n case 'iso_8859-5:1988':\n return 'ISO-8859-5'\n case 'arabic':\n case 'asmo-708':\n case 'csiso88596e':\n case 'csiso88596i':\n case 'csisolatinarabic':\n case 'ecma-114':\n case 'iso-8859-6':\n case 'iso-8859-6-e':\n case 'iso-8859-6-i':\n case 'iso-ir-127':\n case 'iso8859-6':\n case 'iso88596':\n case 'iso_8859-6':\n case 'iso_8859-6:1987':\n return 'ISO-8859-6'\n case 'csisolatingreek':\n case 'ecma-118':\n case 'elot_928':\n case 'greek':\n case 'greek8':\n case 'iso-8859-7':\n case 'iso-ir-126':\n case 'iso8859-7':\n case 'iso88597':\n case 'iso_8859-7':\n case 'iso_8859-7:1987':\n case 'sun_eu_greek':\n return 'ISO-8859-7'\n case 'csiso88598e':\n case 'csisolatinhebrew':\n case 'hebrew':\n case 'iso-8859-8':\n case 'iso-8859-8-e':\n case 'iso-ir-138':\n case 'iso8859-8':\n case 'iso88598':\n case 'iso_8859-8':\n case 'iso_8859-8:1988':\n case 'visual':\n return 'ISO-8859-8'\n case 'csiso88598i':\n case 'iso-8859-8-i':\n case 'logical':\n return 'ISO-8859-8-I'\n case 'csisolatin6':\n case 'iso-8859-10':\n case 'iso-ir-157':\n case 'iso8859-10':\n case 'iso885910':\n case 'l6':\n case 'latin6':\n return 'ISO-8859-10'\n case 'iso-8859-13':\n case 'iso8859-13':\n case 'iso885913':\n return 'ISO-8859-13'\n case 'iso-8859-14':\n case 'iso8859-14':\n case 'iso885914':\n return 'ISO-8859-14'\n case 'csisolatin9':\n case 'iso-8859-15':\n case 'iso8859-15':\n case 'iso885915':\n case 'iso_8859-15':\n case 'l9':\n return 'ISO-8859-15'\n case 'iso-8859-16':\n return 'ISO-8859-16'\n case 'cskoi8r':\n case 'koi':\n case 'koi8':\n case 'koi8-r':\n case 'koi8_r':\n return 'KOI8-R'\n case 'koi8-ru':\n case 'koi8-u':\n return 'KOI8-U'\n case 'csmacintosh':\n case 'mac':\n case 'macintosh':\n case 'x-mac-roman':\n return 'macintosh'\n case 'iso-8859-11':\n case 'iso8859-11':\n case 'iso885911':\n case 'tis-620':\n case 'windows-874':\n return 'windows-874'\n case 'cp1250':\n case 'windows-1250':\n case 'x-cp1250':\n return 'windows-1250'\n case 'cp1251':\n case 'windows-1251':\n case 'x-cp1251':\n return 'windows-1251'\n case 'ansi_x3.4-1968':\n case 'ascii':\n case 'cp1252':\n case 'cp819':\n case 'csisolatin1':\n case 'ibm819':\n case 'iso-8859-1':\n case 'iso-ir-100':\n case 'iso8859-1':\n case 'iso88591':\n case 'iso_8859-1':\n case 'iso_8859-1:1987':\n case 'l1':\n case 'latin1':\n case 'us-ascii':\n case 'windows-1252':\n case 'x-cp1252':\n return 'windows-1252'\n case 'cp1253':\n case 'windows-1253':\n case 'x-cp1253':\n return 'windows-1253'\n case 'cp1254':\n case 'csisolatin5':\n case 'iso-8859-9':\n case 'iso-ir-148':\n case 'iso8859-9':\n case 'iso88599':\n case 'iso_8859-9':\n case 'iso_8859-9:1989':\n case 'l5':\n case 'latin5':\n case 'windows-1254':\n case 'x-cp1254':\n return 'windows-1254'\n case 'cp1255':\n case 'windows-1255':\n case 'x-cp1255':\n return 'windows-1255'\n case 'cp1256':\n case 'windows-1256':\n case 'x-cp1256':\n return 'windows-1256'\n case 'cp1257':\n case 'windows-1257':\n case 'x-cp1257':\n return 'windows-1257'\n case 'cp1258':\n case 'windows-1258':\n case 'x-cp1258':\n return 'windows-1258'\n case 'x-mac-cyrillic':\n case 'x-mac-ukrainian':\n return 'x-mac-cyrillic'\n case 'chinese':\n case 'csgb2312':\n case 'csiso58gb231280':\n case 'gb2312':\n case 'gb_2312':\n case 'gb_2312-80':\n case 'gbk':\n case 'iso-ir-58':\n case 'x-gbk':\n return 'GBK'\n case 'gb18030':\n return 'gb18030'\n case 'big5':\n case 'big5-hkscs':\n case 'cn-big5':\n case 'csbig5':\n case 'x-x-big5':\n return 'Big5'\n case 'cseucpkdfmtjapanese':\n case 'euc-jp':\n case 'x-euc-jp':\n return 'EUC-JP'\n case 'csiso2022jp':\n case 'iso-2022-jp':\n return 'ISO-2022-JP'\n case 'csshiftjis':\n case 'ms932':\n case 'ms_kanji':\n case 'shift-jis':\n case 'shift_jis':\n case 'sjis':\n case 'windows-31j':\n case 'x-sjis':\n return 'Shift_JIS'\n case 'cseuckr':\n case 'csksc56011987':\n case 'euc-kr':\n case 'iso-ir-149':\n case 'korean':\n case 'ks_c_5601-1987':\n case 'ks_c_5601-1989':\n case 'ksc5601':\n case 'ksc_5601':\n case 'windows-949':\n return 'EUC-KR'\n case 'csiso2022kr':\n case 'hz-gb-2312':\n case 'iso-2022-cn':\n case 'iso-2022-cn-ext':\n case 'iso-2022-kr':\n case 'replacement':\n return 'replacement'\n case 'unicodefffe':\n case 'utf-16be':\n return 'UTF-16BE'\n case 'csunicode':\n case 'iso-10646-ucs-2':\n case 'ucs-2':\n case 'unicode':\n case 'unicodefeff':\n case 'utf-16':\n case 'utf-16le':\n return 'UTF-16LE'\n case 'x-user-defined':\n return 'x-user-defined'\n default: return 'failure'\n }\n}\n\nmodule.exports = {\n getEncoding\n}\n","'use strict'\n\nconst {\n kState,\n kError,\n kResult,\n kAborted,\n kLastProgressEventFired\n} = require('./symbols')\nconst { ProgressEvent } = require('./progressevent')\nconst { getEncoding } = require('./encoding')\nconst { DOMException } = require('../fetch/constants')\nconst { serializeAMimeType, parseMIMEType } = require('../fetch/dataURL')\nconst { types } = require('util')\nconst { StringDecoder } = require('string_decoder')\nconst { btoa } = require('buffer')\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#readOperation\n * @param {import('./filereader').FileReader} fr\n * @param {import('buffer').Blob} blob\n * @param {string} type\n * @param {string?} encodingName\n */\nfunction readOperation (fr, blob, type, encodingName) {\n // 1. If fr’s state is \"loading\", throw an InvalidStateError\n // DOMException.\n if (fr[kState] === 'loading') {\n throw new DOMException('Invalid state', 'InvalidStateError')\n }\n\n // 2. Set fr’s state to \"loading\".\n fr[kState] = 'loading'\n\n // 3. Set fr’s result to null.\n fr[kResult] = null\n\n // 4. Set fr’s error to null.\n fr[kError] = null\n\n // 5. Let stream be the result of calling get stream on blob.\n /** @type {import('stream/web').ReadableStream} */\n const stream = blob.stream()\n\n // 6. Let reader be the result of getting a reader from stream.\n const reader = stream.getReader()\n\n // 7. Let bytes be an empty byte sequence.\n /** @type {Uint8Array[]} */\n const bytes = []\n\n // 8. Let chunkPromise be the result of reading a chunk from\n // stream with reader.\n let chunkPromise = reader.read()\n\n // 9. Let isFirstChunk be true.\n let isFirstChunk = true\n\n // 10. In parallel, while true:\n // Note: \"In parallel\" just means non-blocking\n // Note 2: readOperation itself cannot be async as double\n // reading the body would then reject the promise, instead\n // of throwing an error.\n ;(async () => {\n while (!fr[kAborted]) {\n // 1. Wait for chunkPromise to be fulfilled or rejected.\n try {\n const { done, value } = await chunkPromise\n\n // 2. If chunkPromise is fulfilled, and isFirstChunk is\n // true, queue a task to fire a progress event called\n // loadstart at fr.\n if (isFirstChunk && !fr[kAborted]) {\n queueMicrotask(() => {\n fireAProgressEvent('loadstart', fr)\n })\n }\n\n // 3. Set isFirstChunk to false.\n isFirstChunk = false\n\n // 4. If chunkPromise is fulfilled with an object whose\n // done property is false and whose value property is\n // a Uint8Array object, run these steps:\n if (!done && types.isUint8Array(value)) {\n // 1. Let bs be the byte sequence represented by the\n // Uint8Array object.\n\n // 2. Append bs to bytes.\n bytes.push(value)\n\n // 3. If roughly 50ms have passed since these steps\n // were last invoked, queue a task to fire a\n // progress event called progress at fr.\n if (\n (\n fr[kLastProgressEventFired] === undefined ||\n Date.now() - fr[kLastProgressEventFired] >= 50\n ) &&\n !fr[kAborted]\n ) {\n fr[kLastProgressEventFired] = Date.now()\n queueMicrotask(() => {\n fireAProgressEvent('progress', fr)\n })\n }\n\n // 4. Set chunkPromise to the result of reading a\n // chunk from stream with reader.\n chunkPromise = reader.read()\n } else if (done) {\n // 5. Otherwise, if chunkPromise is fulfilled with an\n // object whose done property is true, queue a task\n // to run the following steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Let result be the result of package data given\n // bytes, type, blob’s type, and encodingName.\n try {\n const result = packageData(bytes, type, blob.type, encodingName)\n\n // 4. Else:\n\n if (fr[kAborted]) {\n return\n }\n\n // 1. Set fr’s result to result.\n fr[kResult] = result\n\n // 2. Fire a progress event called load at the fr.\n fireAProgressEvent('load', fr)\n } catch (error) {\n // 3. If package data threw an exception error:\n\n // 1. Set fr’s error to error.\n fr[kError] = error\n\n // 2. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n }\n\n // 5. If fr’s state is not \"loading\", fire a progress\n // event called loadend at the fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n } catch (error) {\n if (fr[kAborted]) {\n return\n }\n\n // 6. Otherwise, if chunkPromise is rejected with an\n // error error, queue a task to run the following\n // steps and abort this algorithm:\n queueMicrotask(() => {\n // 1. Set fr’s state to \"done\".\n fr[kState] = 'done'\n\n // 2. Set fr’s error to error.\n fr[kError] = error\n\n // 3. Fire a progress event called error at fr.\n fireAProgressEvent('error', fr)\n\n // 4. If fr’s state is not \"loading\", fire a progress\n // event called loadend at fr.\n if (fr[kState] !== 'loading') {\n fireAProgressEvent('loadend', fr)\n }\n })\n\n break\n }\n }\n })()\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#fire-a-progress-event\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e The name of the event\n * @param {import('./filereader').FileReader} reader\n */\nfunction fireAProgressEvent (e, reader) {\n // The progress event e does not bubble. e.bubbles must be false\n // The progress event e is NOT cancelable. e.cancelable must be false\n const event = new ProgressEvent(e, {\n bubbles: false,\n cancelable: false\n })\n\n reader.dispatchEvent(event)\n}\n\n/**\n * @see https://w3c.github.io/FileAPI/#blob-package-data\n * @param {Uint8Array[]} bytes\n * @param {string} type\n * @param {string?} mimeType\n * @param {string?} encodingName\n */\nfunction packageData (bytes, type, mimeType, encodingName) {\n // 1. A Blob has an associated package data algorithm, given\n // bytes, a type, a optional mimeType, and a optional\n // encodingName, which switches on type and runs the\n // associated steps:\n\n switch (type) {\n case 'DataURL': {\n // 1. Return bytes as a DataURL [RFC2397] subject to\n // the considerations below:\n // * Use mimeType as part of the Data URL if it is\n // available in keeping with the Data URL\n // specification [RFC2397].\n // * If mimeType is not available return a Data URL\n // without a media-type. [RFC2397].\n\n // https://datatracker.ietf.org/doc/html/rfc2397#section-3\n // dataurl := \"data:\" [ mediatype ] [ \";base64\" ] \",\" data\n // mediatype := [ type \"/\" subtype ] *( \";\" parameter )\n // data := *urlchar\n // parameter := attribute \"=\" value\n let dataURL = 'data:'\n\n const parsed = parseMIMEType(mimeType || 'application/octet-stream')\n\n if (parsed !== 'failure') {\n dataURL += serializeAMimeType(parsed)\n }\n\n dataURL += ';base64,'\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n dataURL += btoa(decoder.write(chunk))\n }\n\n dataURL += btoa(decoder.end())\n\n return dataURL\n }\n case 'Text': {\n // 1. Let encoding be failure\n let encoding = 'failure'\n\n // 2. If the encodingName is present, set encoding to the\n // result of getting an encoding from encodingName.\n if (encodingName) {\n encoding = getEncoding(encodingName)\n }\n\n // 3. If encoding is failure, and mimeType is present:\n if (encoding === 'failure' && mimeType) {\n // 1. Let type be the result of parse a MIME type\n // given mimeType.\n const type = parseMIMEType(mimeType)\n\n // 2. If type is not failure, set encoding to the result\n // of getting an encoding from type’s parameters[\"charset\"].\n if (type !== 'failure') {\n encoding = getEncoding(type.parameters.get('charset'))\n }\n }\n\n // 4. If encoding is failure, then set encoding to UTF-8.\n if (encoding === 'failure') {\n encoding = 'UTF-8'\n }\n\n // 5. Decode bytes using fallback encoding encoding, and\n // return the result.\n return decode(bytes, encoding)\n }\n case 'ArrayBuffer': {\n // Return a new ArrayBuffer whose contents are bytes.\n const sequence = combineByteSequences(bytes)\n\n return sequence.buffer\n }\n case 'BinaryString': {\n // Return bytes as a binary string, in which every byte\n // is represented by a code unit of equal value [0..255].\n let binaryString = ''\n\n const decoder = new StringDecoder('latin1')\n\n for (const chunk of bytes) {\n binaryString += decoder.write(chunk)\n }\n\n binaryString += decoder.end()\n\n return binaryString\n }\n }\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#decode\n * @param {Uint8Array[]} ioQueue\n * @param {string} encoding\n */\nfunction decode (ioQueue, encoding) {\n const bytes = combineByteSequences(ioQueue)\n\n // 1. Let BOMEncoding be the result of BOM sniffing ioQueue.\n const BOMEncoding = BOMSniffing(bytes)\n\n let slice = 0\n\n // 2. If BOMEncoding is non-null:\n if (BOMEncoding !== null) {\n // 1. Set encoding to BOMEncoding.\n encoding = BOMEncoding\n\n // 2. Read three bytes from ioQueue, if BOMEncoding is\n // UTF-8; otherwise read two bytes.\n // (Do nothing with those bytes.)\n slice = BOMEncoding === 'UTF-8' ? 3 : 2\n }\n\n // 3. Process a queue with an instance of encoding’s\n // decoder, ioQueue, output, and \"replacement\".\n\n // 4. Return output.\n\n const sliced = bytes.slice(slice)\n return new TextDecoder(encoding).decode(sliced)\n}\n\n/**\n * @see https://encoding.spec.whatwg.org/#bom-sniff\n * @param {Uint8Array} ioQueue\n */\nfunction BOMSniffing (ioQueue) {\n // 1. Let BOM be the result of peeking 3 bytes from ioQueue,\n // converted to a byte sequence.\n const [a, b, c] = ioQueue\n\n // 2. For each of the rows in the table below, starting with\n // the first one and going down, if BOM starts with the\n // bytes given in the first column, then return the\n // encoding given in the cell in the second column of that\n // row. Otherwise, return null.\n if (a === 0xEF && b === 0xBB && c === 0xBF) {\n return 'UTF-8'\n } else if (a === 0xFE && b === 0xFF) {\n return 'UTF-16BE'\n } else if (a === 0xFF && b === 0xFE) {\n return 'UTF-16LE'\n }\n\n return null\n}\n\n/**\n * @param {Uint8Array[]} sequences\n */\nfunction combineByteSequences (sequences) {\n const size = sequences.reduce((a, b) => {\n return a + b.byteLength\n }, 0)\n\n let offset = 0\n\n return sequences.reduce((a, b) => {\n a.set(b, offset)\n offset += b.byteLength\n return a\n }, new Uint8Array(size))\n}\n\nmodule.exports = {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n}\n","'use strict'\n\nconst {\n staticPropertyDescriptors,\n readOperation,\n fireAProgressEvent\n} = require('./util')\nconst {\n kState,\n kError,\n kResult,\n kEvents,\n kAborted\n} = require('./symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass FileReader extends EventTarget {\n constructor () {\n super()\n\n this[kState] = 'empty'\n this[kResult] = null\n this[kError] = null\n this[kEvents] = {\n loadend: null,\n error: null,\n abort: null,\n load: null,\n progress: null,\n loadstart: null\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer\n * @param {import('buffer').Blob} blob\n */\n readAsArrayBuffer (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsArrayBuffer(blob) method, when invoked,\n // must initiate a read operation for blob with ArrayBuffer.\n readOperation(this, blob, 'ArrayBuffer')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsBinaryString\n * @param {import('buffer').Blob} blob\n */\n readAsBinaryString (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsBinaryString(blob) method, when invoked,\n // must initiate a read operation for blob with BinaryString.\n readOperation(this, blob, 'BinaryString')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#readAsDataText\n * @param {import('buffer').Blob} blob\n * @param {string?} encoding\n */\n readAsText (blob, encoding = undefined) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n if (encoding !== undefined) {\n encoding = webidl.converters.DOMString(encoding)\n }\n\n // The readAsText(blob, encoding) method, when invoked,\n // must initiate a read operation for blob with Text and encoding.\n readOperation(this, blob, 'Text', encoding)\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL\n * @param {import('buffer').Blob} blob\n */\n readAsDataURL (blob) {\n webidl.brandCheck(this, FileReader)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' })\n\n blob = webidl.converters.Blob(blob, { strict: false })\n\n // The readAsDataURL(blob) method, when invoked, must\n // initiate a read operation for blob with DataURL.\n readOperation(this, blob, 'DataURL')\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dfn-abort\n */\n abort () {\n // 1. If this's state is \"empty\" or if this's state is\n // \"done\" set this's result to null and terminate\n // this algorithm.\n if (this[kState] === 'empty' || this[kState] === 'done') {\n this[kResult] = null\n return\n }\n\n // 2. If this's state is \"loading\" set this's state to\n // \"done\" and set this's result to null.\n if (this[kState] === 'loading') {\n this[kState] = 'done'\n this[kResult] = null\n }\n\n // 3. If there are any tasks from this on the file reading\n // task source in an affiliated task queue, then remove\n // those tasks from that task queue.\n this[kAborted] = true\n\n // 4. Terminate the algorithm for the read method being processed.\n // TODO\n\n // 5. Fire a progress event called abort at this.\n fireAProgressEvent('abort', this)\n\n // 6. If this's state is not \"loading\", fire a progress\n // event called loadend at this.\n if (this[kState] !== 'loading') {\n fireAProgressEvent('loadend', this)\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate\n */\n get readyState () {\n webidl.brandCheck(this, FileReader)\n\n switch (this[kState]) {\n case 'empty': return this.EMPTY\n case 'loading': return this.LOADING\n case 'done': return this.DONE\n }\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-result\n */\n get result () {\n webidl.brandCheck(this, FileReader)\n\n // The result attribute’s getter, when invoked, must return\n // this's result.\n return this[kResult]\n }\n\n /**\n * @see https://w3c.github.io/FileAPI/#dom-filereader-error\n */\n get error () {\n webidl.brandCheck(this, FileReader)\n\n // The error attribute’s getter, when invoked, must return\n // this's error.\n return this[kError]\n }\n\n get onloadend () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadend\n }\n\n set onloadend (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadend) {\n this.removeEventListener('loadend', this[kEvents].loadend)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadend = fn\n this.addEventListener('loadend', fn)\n } else {\n this[kEvents].loadend = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].error) {\n this.removeEventListener('error', this[kEvents].error)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].error = fn\n this.addEventListener('error', fn)\n } else {\n this[kEvents].error = null\n }\n }\n\n get onloadstart () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].loadstart\n }\n\n set onloadstart (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].loadstart) {\n this.removeEventListener('loadstart', this[kEvents].loadstart)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].loadstart = fn\n this.addEventListener('loadstart', fn)\n } else {\n this[kEvents].loadstart = null\n }\n }\n\n get onprogress () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].progress\n }\n\n set onprogress (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].progress) {\n this.removeEventListener('progress', this[kEvents].progress)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].progress = fn\n this.addEventListener('progress', fn)\n } else {\n this[kEvents].progress = null\n }\n }\n\n get onload () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].load\n }\n\n set onload (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].load) {\n this.removeEventListener('load', this[kEvents].load)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].load = fn\n this.addEventListener('load', fn)\n } else {\n this[kEvents].load = null\n }\n }\n\n get onabort () {\n webidl.brandCheck(this, FileReader)\n\n return this[kEvents].abort\n }\n\n set onabort (fn) {\n webidl.brandCheck(this, FileReader)\n\n if (this[kEvents].abort) {\n this.removeEventListener('abort', this[kEvents].abort)\n }\n\n if (typeof fn === 'function') {\n this[kEvents].abort = fn\n this.addEventListener('abort', fn)\n } else {\n this[kEvents].abort = null\n }\n }\n}\n\n// https://w3c.github.io/FileAPI/#dom-filereader-empty\nFileReader.EMPTY = FileReader.prototype.EMPTY = 0\n// https://w3c.github.io/FileAPI/#dom-filereader-loading\nFileReader.LOADING = FileReader.prototype.LOADING = 1\n// https://w3c.github.io/FileAPI/#dom-filereader-done\nFileReader.DONE = FileReader.prototype.DONE = 2\n\nObject.defineProperties(FileReader.prototype, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors,\n readAsArrayBuffer: kEnumerableProperty,\n readAsBinaryString: kEnumerableProperty,\n readAsText: kEnumerableProperty,\n readAsDataURL: kEnumerableProperty,\n abort: kEnumerableProperty,\n readyState: kEnumerableProperty,\n result: kEnumerableProperty,\n error: kEnumerableProperty,\n onloadstart: kEnumerableProperty,\n onprogress: kEnumerableProperty,\n onload: kEnumerableProperty,\n onabort: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onloadend: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'FileReader',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(FileReader, {\n EMPTY: staticPropertyDescriptors,\n LOADING: staticPropertyDescriptors,\n DONE: staticPropertyDescriptors\n})\n\nmodule.exports = {\n FileReader\n}\n","'use strict'\n\nmodule.exports = {\n kConstruct: require('../core/symbols').kConstruct\n}\n","'use strict'\n\nconst assert = require('assert')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { isValidHeaderName } = require('../fetch/util')\n\n/**\n * @see https://url.spec.whatwg.org/#concept-url-equals\n * @param {URL} A\n * @param {URL} B\n * @param {boolean | undefined} excludeFragment\n * @returns {boolean}\n */\nfunction urlEquals (A, B, excludeFragment = false) {\n const serializedA = URLSerializer(A, excludeFragment)\n\n const serializedB = URLSerializer(B, excludeFragment)\n\n return serializedA === serializedB\n}\n\n/**\n * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262\n * @param {string} header\n */\nfunction fieldValues (header) {\n assert(header !== null)\n\n const values = []\n\n for (let value of header.split(',')) {\n value = value.trim()\n\n if (!value.length) {\n continue\n } else if (!isValidHeaderName(value)) {\n continue\n }\n\n values.push(value)\n }\n\n return values\n}\n\nmodule.exports = {\n urlEquals,\n fieldValues\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { urlEquals, fieldValues: getFieldValues } = require('./util')\nconst { kEnumerableProperty, isDisturbed } = require('../core/util')\nconst { kHeadersList } = require('../core/symbols')\nconst { webidl } = require('../fetch/webidl')\nconst { Response, cloneResponse } = require('../fetch/response')\nconst { Request } = require('../fetch/request')\nconst { kState, kHeaders, kGuard, kRealm } = require('../fetch/symbols')\nconst { fetching } = require('../fetch/index')\nconst { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require('../fetch/util')\nconst assert = require('assert')\nconst { getGlobalDispatcher } = require('../global')\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation\n * @typedef {Object} CacheBatchOperation\n * @property {'delete' | 'put'} type\n * @property {any} request\n * @property {any} response\n * @property {import('../../types/cache').CacheQueryOptions} options\n */\n\n/**\n * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list\n * @typedef {[any, any][]} requestResponseList\n */\n\nclass Cache {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list\n * @type {requestResponseList}\n */\n #relevantRequestResponseList\n\n constructor () {\n if (arguments[0] !== kConstruct) {\n webidl.illegalConstructor()\n }\n\n this.#relevantRequestResponseList = arguments[1]\n }\n\n async match (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n const p = await this.matchAll(request, options)\n\n if (p.length === 0) {\n return\n }\n\n return p[0]\n }\n\n async matchAll (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') {\n // 2.2.1\n r = new Request(request)[kState]\n }\n }\n\n // 5.\n // 5.1\n const responses = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n responses.push(requestResponse[1])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n responses.push(requestResponse[1])\n }\n }\n\n // 5.4\n // We don't implement CORs so we don't need to loop over the responses, yay!\n\n // 5.5.1\n const responseList = []\n\n // 5.5.2\n for (const response of responses) {\n // 5.5.2.1\n const responseObject = new Response(response.body?.source ?? null)\n const body = responseObject[kState].body\n responseObject[kState] = response\n responseObject[kState].body = body\n responseObject[kHeaders][kHeadersList] = response.headersList\n responseObject[kHeaders][kGuard] = 'immutable'\n\n responseList.push(responseObject)\n }\n\n // 6.\n return Object.freeze(responseList)\n }\n\n async add (request) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' })\n\n request = webidl.converters.RequestInfo(request)\n\n // 1.\n const requests = [request]\n\n // 2.\n const responseArrayPromise = this.addAll(requests)\n\n // 3.\n return await responseArrayPromise\n }\n\n async addAll (requests) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' })\n\n requests = webidl.converters['sequence'](requests)\n\n // 1.\n const responsePromises = []\n\n // 2.\n const requestList = []\n\n // 3.\n for (const request of requests) {\n if (typeof request === 'string') {\n continue\n }\n\n // 3.1\n const r = request[kState]\n\n // 3.2\n if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme when method is not GET.'\n })\n }\n }\n\n // 4.\n /** @type {ReturnType[]} */\n const fetchControllers = []\n\n // 5.\n for (const request of requests) {\n // 5.1\n const r = new Request(request)[kState]\n\n // 5.2\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Expected http/s scheme.'\n })\n }\n\n // 5.4\n r.initiator = 'fetch'\n r.destination = 'subresource'\n\n // 5.5\n requestList.push(r)\n\n // 5.6\n const responsePromise = createDeferredPromise()\n\n // 5.7\n fetchControllers.push(fetching({\n request: r,\n dispatcher: getGlobalDispatcher(),\n processResponse (response) {\n // 1.\n if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'Received an invalid status code or the request failed.'\n }))\n } else if (response.headersList.contains('vary')) { // 2.\n // 2.1\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n // 2.2\n for (const fieldValue of fieldValues) {\n // 2.2.1\n if (fieldValue === '*') {\n responsePromise.reject(webidl.errors.exception({\n header: 'Cache.addAll',\n message: 'invalid vary field value'\n }))\n\n for (const controller of fetchControllers) {\n controller.abort()\n }\n\n return\n }\n }\n }\n },\n processResponseEndOfBody (response) {\n // 1.\n if (response.aborted) {\n responsePromise.reject(new DOMException('aborted', 'AbortError'))\n return\n }\n\n // 2.\n responsePromise.resolve(response)\n }\n }))\n\n // 5.8\n responsePromises.push(responsePromise.promise)\n }\n\n // 6.\n const p = Promise.all(responsePromises)\n\n // 7.\n const responses = await p\n\n // 7.1\n const operations = []\n\n // 7.2\n let index = 0\n\n // 7.3\n for (const response of responses) {\n // 7.3.1\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 7.3.2\n request: requestList[index], // 7.3.3\n response // 7.3.4\n }\n\n operations.push(operation) // 7.3.5\n\n index++ // 7.3.6\n }\n\n // 7.5\n const cacheJobPromise = createDeferredPromise()\n\n // 7.6.1\n let errorData = null\n\n // 7.6.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 7.6.3\n queueMicrotask(() => {\n // 7.6.3.1\n if (errorData === null) {\n cacheJobPromise.resolve(undefined)\n } else {\n // 7.6.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n // 7.7\n return cacheJobPromise.promise\n }\n\n async put (request, response) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' })\n\n request = webidl.converters.RequestInfo(request)\n response = webidl.converters.Response(response)\n\n // 1.\n let innerRequest = null\n\n // 2.\n if (request instanceof Request) {\n innerRequest = request[kState]\n } else { // 3.\n innerRequest = new Request(request)[kState]\n }\n\n // 4.\n if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Expected an http/s scheme when method is not GET'\n })\n }\n\n // 5.\n const innerResponse = response[kState]\n\n // 6.\n if (innerResponse.status === 206) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got 206 status'\n })\n }\n\n // 7.\n if (innerResponse.headersList.contains('vary')) {\n // 7.1.\n const fieldValues = getFieldValues(innerResponse.headersList.get('vary'))\n\n // 7.2.\n for (const fieldValue of fieldValues) {\n // 7.2.1\n if (fieldValue === '*') {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Got * vary field value'\n })\n }\n }\n }\n\n // 8.\n if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) {\n throw webidl.errors.exception({\n header: 'Cache.put',\n message: 'Response body is locked or disturbed'\n })\n }\n\n // 9.\n const clonedResponse = cloneResponse(innerResponse)\n\n // 10.\n const bodyReadPromise = createDeferredPromise()\n\n // 11.\n if (innerResponse.body != null) {\n // 11.1\n const stream = innerResponse.body.stream\n\n // 11.2\n const reader = stream.getReader()\n\n // 11.3\n readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject)\n } else {\n bodyReadPromise.resolve(undefined)\n }\n\n // 12.\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n // 13.\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'put', // 14.\n request: innerRequest, // 15.\n response: clonedResponse // 16.\n }\n\n // 17.\n operations.push(operation)\n\n // 19.\n const bytes = await bodyReadPromise.promise\n\n if (clonedResponse.body != null) {\n clonedResponse.body.source = bytes\n }\n\n // 19.1\n const cacheJobPromise = createDeferredPromise()\n\n // 19.2.1\n let errorData = null\n\n // 19.2.2\n try {\n this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n // 19.2.3\n queueMicrotask(() => {\n // 19.2.3.1\n if (errorData === null) {\n cacheJobPromise.resolve()\n } else { // 19.2.3.2\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n async delete (request, options = {}) {\n webidl.brandCheck(this, Cache)\n webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' })\n\n request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n /**\n * @type {Request}\n */\n let r = null\n\n if (request instanceof Request) {\n r = request[kState]\n\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return false\n }\n } else {\n assert(typeof request === 'string')\n\n r = new Request(request)[kState]\n }\n\n /** @type {CacheBatchOperation[]} */\n const operations = []\n\n /** @type {CacheBatchOperation} */\n const operation = {\n type: 'delete',\n request: r,\n options\n }\n\n operations.push(operation)\n\n const cacheJobPromise = createDeferredPromise()\n\n let errorData = null\n let requestResponses\n\n try {\n requestResponses = this.#batchCacheOperations(operations)\n } catch (e) {\n errorData = e\n }\n\n queueMicrotask(() => {\n if (errorData === null) {\n cacheJobPromise.resolve(!!requestResponses?.length)\n } else {\n cacheJobPromise.reject(errorData)\n }\n })\n\n return cacheJobPromise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys\n * @param {any} request\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @returns {readonly Request[]}\n */\n async keys (request = undefined, options = {}) {\n webidl.brandCheck(this, Cache)\n\n if (request !== undefined) request = webidl.converters.RequestInfo(request)\n options = webidl.converters.CacheQueryOptions(options)\n\n // 1.\n let r = null\n\n // 2.\n if (request !== undefined) {\n // 2.1\n if (request instanceof Request) {\n // 2.1.1\n r = request[kState]\n\n // 2.1.2\n if (r.method !== 'GET' && !options.ignoreMethod) {\n return []\n }\n } else if (typeof request === 'string') { // 2.2\n r = new Request(request)[kState]\n }\n }\n\n // 4.\n const promise = createDeferredPromise()\n\n // 5.\n // 5.1\n const requests = []\n\n // 5.2\n if (request === undefined) {\n // 5.2.1\n for (const requestResponse of this.#relevantRequestResponseList) {\n // 5.2.1.1\n requests.push(requestResponse[0])\n }\n } else { // 5.3\n // 5.3.1\n const requestResponses = this.#queryCache(r, options)\n\n // 5.3.2\n for (const requestResponse of requestResponses) {\n // 5.3.2.1\n requests.push(requestResponse[0])\n }\n }\n\n // 5.4\n queueMicrotask(() => {\n // 5.4.1\n const requestList = []\n\n // 5.4.2\n for (const request of requests) {\n const requestObject = new Request('https://a')\n requestObject[kState] = request\n requestObject[kHeaders][kHeadersList] = request.headersList\n requestObject[kHeaders][kGuard] = 'immutable'\n requestObject[kRealm] = request.client\n\n // 5.4.2.1\n requestList.push(requestObject)\n }\n\n // 5.4.3\n promise.resolve(Object.freeze(requestList))\n })\n\n return promise.promise\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm\n * @param {CacheBatchOperation[]} operations\n * @returns {requestResponseList}\n */\n #batchCacheOperations (operations) {\n // 1.\n const cache = this.#relevantRequestResponseList\n\n // 2.\n const backupCache = [...cache]\n\n // 3.\n const addedItems = []\n\n // 4.1\n const resultList = []\n\n try {\n // 4.2\n for (const operation of operations) {\n // 4.2.1\n if (operation.type !== 'delete' && operation.type !== 'put') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'operation type does not match \"delete\" or \"put\"'\n })\n }\n\n // 4.2.2\n if (operation.type === 'delete' && operation.response != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'delete operation should not have an associated response'\n })\n }\n\n // 4.2.3\n if (this.#queryCache(operation.request, operation.options, addedItems).length) {\n throw new DOMException('???', 'InvalidStateError')\n }\n\n // 4.2.4\n let requestResponses\n\n // 4.2.5\n if (operation.type === 'delete') {\n // 4.2.5.1\n requestResponses = this.#queryCache(operation.request, operation.options)\n\n // TODO: the spec is wrong, this is needed to pass WPTs\n if (requestResponses.length === 0) {\n return []\n }\n\n // 4.2.5.2\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.5.2.1\n cache.splice(idx, 1)\n }\n } else if (operation.type === 'put') { // 4.2.6\n // 4.2.6.1\n if (operation.response == null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'put operation should have an associated response'\n })\n }\n\n // 4.2.6.2\n const r = operation.request\n\n // 4.2.6.3\n if (!urlIsHttpHttpsScheme(r.url)) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'expected http or https scheme'\n })\n }\n\n // 4.2.6.4\n if (r.method !== 'GET') {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'not get method'\n })\n }\n\n // 4.2.6.5\n if (operation.options != null) {\n throw webidl.errors.exception({\n header: 'Cache.#batchCacheOperations',\n message: 'options must not be defined'\n })\n }\n\n // 4.2.6.6\n requestResponses = this.#queryCache(operation.request)\n\n // 4.2.6.7\n for (const requestResponse of requestResponses) {\n const idx = cache.indexOf(requestResponse)\n assert(idx !== -1)\n\n // 4.2.6.7.1\n cache.splice(idx, 1)\n }\n\n // 4.2.6.8\n cache.push([operation.request, operation.response])\n\n // 4.2.6.10\n addedItems.push([operation.request, operation.response])\n }\n\n // 4.2.7\n resultList.push([operation.request, operation.response])\n }\n\n // 4.3\n return resultList\n } catch (e) { // 5.\n // 5.1\n this.#relevantRequestResponseList.length = 0\n\n // 5.2\n this.#relevantRequestResponseList = backupCache\n\n // 5.3\n throw e\n }\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#query-cache\n * @param {any} requestQuery\n * @param {import('../../types/cache').CacheQueryOptions} options\n * @param {requestResponseList} targetStorage\n * @returns {requestResponseList}\n */\n #queryCache (requestQuery, options, targetStorage) {\n /** @type {requestResponseList} */\n const resultList = []\n\n const storage = targetStorage ?? this.#relevantRequestResponseList\n\n for (const requestResponse of storage) {\n const [cachedRequest, cachedResponse] = requestResponse\n if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) {\n resultList.push(requestResponse)\n }\n }\n\n return resultList\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm\n * @param {any} requestQuery\n * @param {any} request\n * @param {any | null} response\n * @param {import('../../types/cache').CacheQueryOptions | undefined} options\n * @returns {boolean}\n */\n #requestMatchesCachedItem (requestQuery, request, response = null, options) {\n // if (options?.ignoreMethod === false && request.method === 'GET') {\n // return false\n // }\n\n const queryURL = new URL(requestQuery.url)\n\n const cachedURL = new URL(request.url)\n\n if (options?.ignoreSearch) {\n cachedURL.search = ''\n\n queryURL.search = ''\n }\n\n if (!urlEquals(queryURL, cachedURL, true)) {\n return false\n }\n\n if (\n response == null ||\n options?.ignoreVary ||\n !response.headersList.contains('vary')\n ) {\n return true\n }\n\n const fieldValues = getFieldValues(response.headersList.get('vary'))\n\n for (const fieldValue of fieldValues) {\n if (fieldValue === '*') {\n return false\n }\n\n const requestValue = request.headersList.get(fieldValue)\n const queryValue = requestQuery.headersList.get(fieldValue)\n\n // If one has the header and the other doesn't, or one has\n // a different value than the other, return false\n if (requestValue !== queryValue) {\n return false\n }\n }\n\n return true\n }\n}\n\nObject.defineProperties(Cache.prototype, {\n [Symbol.toStringTag]: {\n value: 'Cache',\n configurable: true\n },\n match: kEnumerableProperty,\n matchAll: kEnumerableProperty,\n add: kEnumerableProperty,\n addAll: kEnumerableProperty,\n put: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nconst cacheQueryOptionConverters = [\n {\n key: 'ignoreSearch',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreMethod',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'ignoreVary',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters)\n\nwebidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([\n ...cacheQueryOptionConverters,\n {\n key: 'cacheName',\n converter: webidl.converters.DOMString\n }\n])\n\nwebidl.converters.Response = webidl.interfaceConverter(Response)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.RequestInfo\n)\n\nmodule.exports = {\n Cache\n}\n","'use strict'\n\nconst { kConstruct } = require('./symbols')\nconst { Cache } = require('./cache')\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\n\nclass CacheStorage {\n /**\n * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map\n * @type {Map}\n */\n async has (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1.1\n // 2.2\n return this.#caches.has(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open\n * @param {string} cacheName\n * @returns {Promise}\n */\n async open (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n // 2.1\n if (this.#caches.has(cacheName)) {\n // await caches.open('v1') !== await caches.open('v1')\n\n // 2.1.1\n const cache = this.#caches.get(cacheName)\n\n // 2.1.1.1\n return new Cache(kConstruct, cache)\n }\n\n // 2.2\n const cache = []\n\n // 2.3\n this.#caches.set(cacheName, cache)\n\n // 2.4\n return new Cache(kConstruct, cache)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete\n * @param {string} cacheName\n * @returns {Promise}\n */\n async delete (cacheName) {\n webidl.brandCheck(this, CacheStorage)\n webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' })\n\n cacheName = webidl.converters.DOMString(cacheName)\n\n return this.#caches.delete(cacheName)\n }\n\n /**\n * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys\n * @returns {string[]}\n */\n async keys () {\n webidl.brandCheck(this, CacheStorage)\n\n // 2.1\n const keys = this.#caches.keys()\n\n // 2.2\n return [...keys]\n }\n}\n\nObject.defineProperties(CacheStorage.prototype, {\n [Symbol.toStringTag]: {\n value: 'CacheStorage',\n configurable: true\n },\n match: kEnumerableProperty,\n has: kEnumerableProperty,\n open: kEnumerableProperty,\n delete: kEnumerableProperty,\n keys: kEnumerableProperty\n})\n\nmodule.exports = {\n CacheStorage\n}\n","'use strict'\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size\nconst maxAttributeValueSize = 1024\n\n// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size\nconst maxNameValuePairSize = 4096\n\nmodule.exports = {\n maxAttributeValueSize,\n maxNameValuePairSize\n}\n","'use strict'\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction isCTLExcludingHtab (value) {\n if (value.length === 0) {\n return false\n }\n\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n (code >= 0x00 || code <= 0x08) ||\n (code >= 0x0A || code <= 0x1F) ||\n code === 0x7F\n ) {\n return false\n }\n }\n}\n\n/**\n CHAR = \n token = 1*\n separators = \"(\" | \")\" | \"<\" | \">\" | \"@\"\n | \",\" | \";\" | \":\" | \"\\\" | <\">\n | \"/\" | \"[\" | \"]\" | \"?\" | \"=\"\n | \"{\" | \"}\" | SP | HT\n * @param {string} name\n */\nfunction validateCookieName (name) {\n for (const char of name) {\n const code = char.charCodeAt(0)\n\n if (\n (code <= 0x20 || code > 0x7F) ||\n char === '(' ||\n char === ')' ||\n char === '>' ||\n char === '<' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}'\n ) {\n throw new Error('Invalid cookie name')\n }\n }\n}\n\n/**\n cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n ; US-ASCII characters excluding CTLs,\n ; whitespace DQUOTE, comma, semicolon,\n ; and backslash\n * @param {string} value\n */\nfunction validateCookieValue (value) {\n for (const char of value) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 || // exclude CTLs (0-31)\n code === 0x22 ||\n code === 0x2C ||\n code === 0x3B ||\n code === 0x5C ||\n code > 0x7E // non-ascii\n ) {\n throw new Error('Invalid header value')\n }\n }\n}\n\n/**\n * path-value = \n * @param {string} path\n */\nfunction validateCookiePath (path) {\n for (const char of path) {\n const code = char.charCodeAt(0)\n\n if (code < 0x21 || char === ';') {\n throw new Error('Invalid cookie path')\n }\n }\n}\n\n/**\n * I have no idea why these values aren't allowed to be honest,\n * but Deno tests these. - Khafra\n * @param {string} domain\n */\nfunction validateCookieDomain (domain) {\n if (\n domain.startsWith('-') ||\n domain.endsWith('.') ||\n domain.endsWith('-')\n ) {\n throw new Error('Invalid cookie domain')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1\n * @param {number|Date} date\n IMF-fixdate = day-name \",\" SP date1 SP time-of-day SP GMT\n ; fixed length/zone/capitalization subset of the format\n ; see Section 3.3 of [RFC5322]\n\n day-name = %x4D.6F.6E ; \"Mon\", case-sensitive\n / %x54.75.65 ; \"Tue\", case-sensitive\n / %x57.65.64 ; \"Wed\", case-sensitive\n / %x54.68.75 ; \"Thu\", case-sensitive\n / %x46.72.69 ; \"Fri\", case-sensitive\n / %x53.61.74 ; \"Sat\", case-sensitive\n / %x53.75.6E ; \"Sun\", case-sensitive\n date1 = day SP month SP year\n ; e.g., 02 Jun 1982\n\n day = 2DIGIT\n month = %x4A.61.6E ; \"Jan\", case-sensitive\n / %x46.65.62 ; \"Feb\", case-sensitive\n / %x4D.61.72 ; \"Mar\", case-sensitive\n / %x41.70.72 ; \"Apr\", case-sensitive\n / %x4D.61.79 ; \"May\", case-sensitive\n / %x4A.75.6E ; \"Jun\", case-sensitive\n / %x4A.75.6C ; \"Jul\", case-sensitive\n / %x41.75.67 ; \"Aug\", case-sensitive\n / %x53.65.70 ; \"Sep\", case-sensitive\n / %x4F.63.74 ; \"Oct\", case-sensitive\n / %x4E.6F.76 ; \"Nov\", case-sensitive\n / %x44.65.63 ; \"Dec\", case-sensitive\n year = 4DIGIT\n\n GMT = %x47.4D.54 ; \"GMT\", case-sensitive\n\n time-of-day = hour \":\" minute \":\" second\n ; 00:00:00 - 23:59:60 (leap second)\n\n hour = 2DIGIT\n minute = 2DIGIT\n second = 2DIGIT\n */\nfunction toIMFDate (date) {\n if (typeof date === 'number') {\n date = new Date(date)\n }\n\n const days = [\n 'Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'\n ]\n\n const months = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\n ]\n\n const dayName = days[date.getUTCDay()]\n const day = date.getUTCDate().toString().padStart(2, '0')\n const month = months[date.getUTCMonth()]\n const year = date.getUTCFullYear()\n const hour = date.getUTCHours().toString().padStart(2, '0')\n const minute = date.getUTCMinutes().toString().padStart(2, '0')\n const second = date.getUTCSeconds().toString().padStart(2, '0')\n\n return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT`\n}\n\n/**\n max-age-av = \"Max-Age=\" non-zero-digit *DIGIT\n ; In practice, both expires-av and max-age-av\n ; are limited to dates representable by the\n ; user agent.\n * @param {number} maxAge\n */\nfunction validateCookieMaxAge (maxAge) {\n if (maxAge < 0) {\n throw new Error('Invalid cookie max-age')\n }\n}\n\n/**\n * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1\n * @param {import('./index').Cookie} cookie\n */\nfunction stringify (cookie) {\n if (cookie.name.length === 0) {\n return null\n }\n\n validateCookieName(cookie.name)\n validateCookieValue(cookie.value)\n\n const out = [`${cookie.name}=${cookie.value}`]\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2\n if (cookie.name.startsWith('__Secure-')) {\n cookie.secure = true\n }\n\n if (cookie.name.startsWith('__Host-')) {\n cookie.secure = true\n cookie.domain = null\n cookie.path = '/'\n }\n\n if (cookie.secure) {\n out.push('Secure')\n }\n\n if (cookie.httpOnly) {\n out.push('HttpOnly')\n }\n\n if (typeof cookie.maxAge === 'number') {\n validateCookieMaxAge(cookie.maxAge)\n out.push(`Max-Age=${cookie.maxAge}`)\n }\n\n if (cookie.domain) {\n validateCookieDomain(cookie.domain)\n out.push(`Domain=${cookie.domain}`)\n }\n\n if (cookie.path) {\n validateCookiePath(cookie.path)\n out.push(`Path=${cookie.path}`)\n }\n\n if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') {\n out.push(`Expires=${toIMFDate(cookie.expires)}`)\n }\n\n if (cookie.sameSite) {\n out.push(`SameSite=${cookie.sameSite}`)\n }\n\n for (const part of cookie.unparsed) {\n if (!part.includes('=')) {\n throw new Error('Invalid unparsed')\n }\n\n const [key, ...value] = part.split('=')\n\n out.push(`${key.trim()}=${value.join('=')}`)\n }\n\n return out.join('; ')\n}\n\nmodule.exports = {\n isCTLExcludingHtab,\n validateCookieName,\n validateCookiePath,\n validateCookieValue,\n toIMFDate,\n stringify\n}\n","'use strict'\n\nconst { maxNameValuePairSize, maxAttributeValueSize } = require('./constants')\nconst { isCTLExcludingHtab } = require('./util')\nconst { collectASequenceOfCodePointsFast } = require('../fetch/dataURL')\nconst assert = require('assert')\n\n/**\n * @description Parses the field-value attributes of a set-cookie header string.\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} header\n * @returns if the header is invalid, null will be returned\n */\nfunction parseSetCookie (header) {\n // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F\n // character (CTL characters excluding HTAB): Abort these steps and\n // ignore the set-cookie-string entirely.\n if (isCTLExcludingHtab(header)) {\n return null\n }\n\n let nameValuePair = ''\n let unparsedAttributes = ''\n let name = ''\n let value = ''\n\n // 2. If the set-cookie-string contains a %x3B (\";\") character:\n if (header.includes(';')) {\n // 1. The name-value-pair string consists of the characters up to,\n // but not including, the first %x3B (\";\"), and the unparsed-\n // attributes consist of the remainder of the set-cookie-string\n // (including the %x3B (\";\") in question).\n const position = { position: 0 }\n\n nameValuePair = collectASequenceOfCodePointsFast(';', header, position)\n unparsedAttributes = header.slice(position.position)\n } else {\n // Otherwise:\n\n // 1. The name-value-pair string consists of all the characters\n // contained in the set-cookie-string, and the unparsed-\n // attributes is the empty string.\n nameValuePair = header\n }\n\n // 3. If the name-value-pair string lacks a %x3D (\"=\") character, then\n // the name string is empty, and the value string is the value of\n // name-value-pair.\n if (!nameValuePair.includes('=')) {\n value = nameValuePair\n } else {\n // Otherwise, the name string consists of the characters up to, but\n // not including, the first %x3D (\"=\") character, and the (possibly\n // empty) value string consists of the characters after the first\n // %x3D (\"=\") character.\n const position = { position: 0 }\n name = collectASequenceOfCodePointsFast(\n '=',\n nameValuePair,\n position\n )\n value = nameValuePair.slice(position.position + 1)\n }\n\n // 4. Remove any leading or trailing WSP characters from the name\n // string and the value string.\n name = name.trim()\n value = value.trim()\n\n // 5. If the sum of the lengths of the name string and the value string\n // is more than 4096 octets, abort these steps and ignore the set-\n // cookie-string entirely.\n if (name.length + value.length > maxNameValuePairSize) {\n return null\n }\n\n // 6. The cookie-name is the name string, and the cookie-value is the\n // value string.\n return {\n name, value, ...parseUnparsedAttributes(unparsedAttributes)\n }\n}\n\n/**\n * Parses the remaining attributes of a set-cookie header\n * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4\n * @param {string} unparsedAttributes\n * @param {[Object.]={}} cookieAttributeList\n */\nfunction parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {\n // 1. If the unparsed-attributes string is empty, skip the rest of\n // these steps.\n if (unparsedAttributes.length === 0) {\n return cookieAttributeList\n }\n\n // 2. Discard the first character of the unparsed-attributes (which\n // will be a %x3B (\";\") character).\n assert(unparsedAttributes[0] === ';')\n unparsedAttributes = unparsedAttributes.slice(1)\n\n let cookieAv = ''\n\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n if (unparsedAttributes.includes(';')) {\n // 1. Consume the characters of the unparsed-attributes up to, but\n // not including, the first %x3B (\";\") character.\n cookieAv = collectASequenceOfCodePointsFast(\n ';',\n unparsedAttributes,\n { position: 0 }\n )\n unparsedAttributes = unparsedAttributes.slice(cookieAv.length)\n } else {\n // Otherwise:\n\n // 1. Consume the remainder of the unparsed-attributes.\n cookieAv = unparsedAttributes\n unparsedAttributes = ''\n }\n\n // Let the cookie-av string be the characters consumed in this step.\n\n let attributeName = ''\n let attributeValue = ''\n\n // 4. If the cookie-av string contains a %x3D (\"=\") character:\n if (cookieAv.includes('=')) {\n // 1. The (possibly empty) attribute-name string consists of the\n // characters up to, but not including, the first %x3D (\"=\")\n // character, and the (possibly empty) attribute-value string\n // consists of the characters after the first %x3D (\"=\")\n // character.\n const position = { position: 0 }\n\n attributeName = collectASequenceOfCodePointsFast(\n '=',\n cookieAv,\n position\n )\n attributeValue = cookieAv.slice(position.position + 1)\n } else {\n // Otherwise:\n\n // 1. The attribute-name string consists of the entire cookie-av\n // string, and the attribute-value string is empty.\n attributeName = cookieAv\n }\n\n // 5. Remove any leading or trailing WSP characters from the attribute-\n // name string and the attribute-value string.\n attributeName = attributeName.trim()\n attributeValue = attributeValue.trim()\n\n // 6. If the attribute-value is longer than 1024 octets, ignore the\n // cookie-av string and return to Step 1 of this algorithm.\n if (attributeValue.length > maxAttributeValueSize) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 7. Process the attribute-name and attribute-value according to the\n // requirements in the following subsections. (Notice that\n // attributes with unrecognized attribute-names are ignored.)\n const attributeNameLowercase = attributeName.toLowerCase()\n\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1\n // If the attribute-name case-insensitively matches the string\n // \"Expires\", the user agent MUST process the cookie-av as follows.\n if (attributeNameLowercase === 'expires') {\n // 1. Let the expiry-time be the result of parsing the attribute-value\n // as cookie-date (see Section 5.1.1).\n const expiryTime = new Date(attributeValue)\n\n // 2. If the attribute-value failed to parse as a cookie date, ignore\n // the cookie-av.\n\n cookieAttributeList.expires = expiryTime\n } else if (attributeNameLowercase === 'max-age') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2\n // If the attribute-name case-insensitively matches the string \"Max-\n // Age\", the user agent MUST process the cookie-av as follows.\n\n // 1. If the first character of the attribute-value is not a DIGIT or a\n // \"-\" character, ignore the cookie-av.\n const charCode = attributeValue.charCodeAt(0)\n\n if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 2. If the remainder of attribute-value contains a non-DIGIT\n // character, ignore the cookie-av.\n if (!/^\\d+$/.test(attributeValue)) {\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n }\n\n // 3. Let delta-seconds be the attribute-value converted to an integer.\n const deltaSeconds = Number(attributeValue)\n\n // 4. Let cookie-age-limit be the maximum age of the cookie (which\n // SHOULD be 400 days or less, see Section 4.1.2.2).\n\n // 5. Set delta-seconds to the smaller of its present value and cookie-\n // age-limit.\n // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)\n\n // 6. If delta-seconds is less than or equal to zero (0), let expiry-\n // time be the earliest representable date and time. Otherwise, let\n // the expiry-time be the current date and time plus delta-seconds\n // seconds.\n // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds\n\n // 7. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Max-Age and an attribute-value of expiry-time.\n cookieAttributeList.maxAge = deltaSeconds\n } else if (attributeNameLowercase === 'domain') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3\n // If the attribute-name case-insensitively matches the string \"Domain\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. Let cookie-domain be the attribute-value.\n let cookieDomain = attributeValue\n\n // 2. If cookie-domain starts with %x2E (\".\"), let cookie-domain be\n // cookie-domain without its leading %x2E (\".\").\n if (cookieDomain[0] === '.') {\n cookieDomain = cookieDomain.slice(1)\n }\n\n // 3. Convert the cookie-domain to lower case.\n cookieDomain = cookieDomain.toLowerCase()\n\n // 4. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Domain and an attribute-value of cookie-domain.\n cookieAttributeList.domain = cookieDomain\n } else if (attributeNameLowercase === 'path') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4\n // If the attribute-name case-insensitively matches the string \"Path\",\n // the user agent MUST process the cookie-av as follows.\n\n // 1. If the attribute-value is empty or if the first character of the\n // attribute-value is not %x2F (\"/\"):\n let cookiePath = ''\n if (attributeValue.length === 0 || attributeValue[0] !== '/') {\n // 1. Let cookie-path be the default-path.\n cookiePath = '/'\n } else {\n // Otherwise:\n\n // 1. Let cookie-path be the attribute-value.\n cookiePath = attributeValue\n }\n\n // 2. Append an attribute to the cookie-attribute-list with an\n // attribute-name of Path and an attribute-value of cookie-path.\n cookieAttributeList.path = cookiePath\n } else if (attributeNameLowercase === 'secure') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5\n // If the attribute-name case-insensitively matches the string \"Secure\",\n // the user agent MUST append an attribute to the cookie-attribute-list\n // with an attribute-name of Secure and an empty attribute-value.\n\n cookieAttributeList.secure = true\n } else if (attributeNameLowercase === 'httponly') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6\n // If the attribute-name case-insensitively matches the string\n // \"HttpOnly\", the user agent MUST append an attribute to the cookie-\n // attribute-list with an attribute-name of HttpOnly and an empty\n // attribute-value.\n\n cookieAttributeList.httpOnly = true\n } else if (attributeNameLowercase === 'samesite') {\n // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7\n // If the attribute-name case-insensitively matches the string\n // \"SameSite\", the user agent MUST process the cookie-av as follows:\n\n // 1. Let enforcement be \"Default\".\n let enforcement = 'Default'\n\n const attributeValueLowercase = attributeValue.toLowerCase()\n // 2. If cookie-av's attribute-value is a case-insensitive match for\n // \"None\", set enforcement to \"None\".\n if (attributeValueLowercase.includes('none')) {\n enforcement = 'None'\n }\n\n // 3. If cookie-av's attribute-value is a case-insensitive match for\n // \"Strict\", set enforcement to \"Strict\".\n if (attributeValueLowercase.includes('strict')) {\n enforcement = 'Strict'\n }\n\n // 4. If cookie-av's attribute-value is a case-insensitive match for\n // \"Lax\", set enforcement to \"Lax\".\n if (attributeValueLowercase.includes('lax')) {\n enforcement = 'Lax'\n }\n\n // 5. Append an attribute to the cookie-attribute-list with an\n // attribute-name of \"SameSite\" and an attribute-value of\n // enforcement.\n cookieAttributeList.sameSite = enforcement\n } else {\n cookieAttributeList.unparsed ??= []\n\n cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)\n }\n\n // 8. Return to Step 1 of this algorithm.\n return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)\n}\n\nmodule.exports = {\n parseSetCookie,\n parseUnparsedAttributes\n}\n","'use strict'\n\nconst { parseSetCookie } = require('./parse')\nconst { stringify } = require('./util')\nconst { webidl } = require('../fetch/webidl')\nconst { Headers } = require('../fetch/headers')\n\n/**\n * @typedef {Object} Cookie\n * @property {string} name\n * @property {string} value\n * @property {Date|number|undefined} expires\n * @property {number|undefined} maxAge\n * @property {string|undefined} domain\n * @property {string|undefined} path\n * @property {boolean|undefined} secure\n * @property {boolean|undefined} httpOnly\n * @property {'Strict'|'Lax'|'None'} sameSite\n * @property {string[]} unparsed\n */\n\n/**\n * @param {Headers} headers\n * @returns {Record}\n */\nfunction getCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookie = headers.get('cookie')\n const out = {}\n\n if (!cookie) {\n return out\n }\n\n for (const piece of cookie.split(';')) {\n const [name, ...value] = piece.split('=')\n\n out[name.trim()] = value.join('=')\n }\n\n return out\n}\n\n/**\n * @param {Headers} headers\n * @param {string} name\n * @param {{ path?: string, domain?: string }|undefined} attributes\n * @returns {void}\n */\nfunction deleteCookie (headers, name, attributes) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n name = webidl.converters.DOMString(name)\n attributes = webidl.converters.DeleteCookieAttributes(attributes)\n\n // Matches behavior of\n // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278\n setCookie(headers, {\n name,\n value: '',\n expires: new Date(0),\n ...attributes\n })\n}\n\n/**\n * @param {Headers} headers\n * @returns {Cookie[]}\n */\nfunction getSetCookies (headers) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n const cookies = headers.getSetCookie()\n\n if (!cookies) {\n return []\n }\n\n return cookies.map((pair) => parseSetCookie(pair))\n}\n\n/**\n * @param {Headers} headers\n * @param {Cookie} cookie\n * @returns {void}\n */\nfunction setCookie (headers, cookie) {\n webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' })\n\n webidl.brandCheck(headers, Headers, { strict: false })\n\n cookie = webidl.converters.Cookie(cookie)\n\n const str = stringify(cookie)\n\n if (str) {\n headers.append('Set-Cookie', stringify(cookie))\n }\n}\n\nwebidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n }\n])\n\nwebidl.converters.Cookie = webidl.dictionaryConverter([\n {\n converter: webidl.converters.DOMString,\n key: 'name'\n },\n {\n converter: webidl.converters.DOMString,\n key: 'value'\n },\n {\n converter: webidl.nullableConverter((value) => {\n if (typeof value === 'number') {\n return webidl.converters['unsigned long long'](value)\n }\n\n return new Date(value)\n }),\n key: 'expires',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters['long long']),\n key: 'maxAge',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'domain',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.DOMString),\n key: 'path',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'secure',\n defaultValue: null\n },\n {\n converter: webidl.nullableConverter(webidl.converters.boolean),\n key: 'httpOnly',\n defaultValue: null\n },\n {\n converter: webidl.converters.USVString,\n key: 'sameSite',\n allowedValues: ['Strict', 'Lax', 'None']\n },\n {\n converter: webidl.sequenceConverter(webidl.converters.DOMString),\n key: 'unparsed',\n defaultValue: []\n }\n])\n\nmodule.exports = {\n getCookies,\n deleteCookie,\n getSetCookies,\n setCookie\n}\n","'use strict'\n\n// This is a Globally Unique Identifier unique used\n// to validate that the endpoint accepts websocket\n// connections.\n// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3\nconst uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\n/** @type {PropertyDescriptor} */\nconst staticPropertyDescriptors = {\n enumerable: true,\n writable: false,\n configurable: false\n}\n\nconst states = {\n CONNECTING: 0,\n OPEN: 1,\n CLOSING: 2,\n CLOSED: 3\n}\n\nconst opcodes = {\n CONTINUATION: 0x0,\n TEXT: 0x1,\n BINARY: 0x2,\n CLOSE: 0x8,\n PING: 0x9,\n PONG: 0xA\n}\n\nconst maxUnsigned16Bit = 2 ** 16 - 1 // 65535\n\nconst parserStates = {\n INFO: 0,\n PAYLOADLENGTH_16: 2,\n PAYLOADLENGTH_64: 3,\n READ_DATA: 4\n}\n\nconst emptyBuffer = Buffer.allocUnsafe(0)\n\nmodule.exports = {\n uid,\n staticPropertyDescriptors,\n states,\n opcodes,\n maxUnsigned16Bit,\n parserStates,\n emptyBuffer\n}\n","'use strict'\n\nmodule.exports = {\n kWebSocketURL: Symbol('url'),\n kReadyState: Symbol('ready state'),\n kController: Symbol('controller'),\n kResponse: Symbol('response'),\n kBinaryType: Symbol('binary type'),\n kSentClose: Symbol('sent close'),\n kReceivedClose: Symbol('received close'),\n kByteParser: Symbol('byte parser')\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { kEnumerableProperty } = require('../core/util')\nconst { MessagePort } = require('worker_threads')\n\n/**\n * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent\n */\nclass MessageEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.MessageEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get data () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.data\n }\n\n get origin () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.origin\n }\n\n get lastEventId () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.lastEventId\n }\n\n get source () {\n webidl.brandCheck(this, MessageEvent)\n\n return this.#eventInit.source\n }\n\n get ports () {\n webidl.brandCheck(this, MessageEvent)\n\n if (!Object.isFrozen(this.#eventInit.ports)) {\n Object.freeze(this.#eventInit.ports)\n }\n\n return this.#eventInit.ports\n }\n\n initMessageEvent (\n type,\n bubbles = false,\n cancelable = false,\n data = null,\n origin = '',\n lastEventId = '',\n source = null,\n ports = []\n ) {\n webidl.brandCheck(this, MessageEvent)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' })\n\n return new MessageEvent(type, {\n bubbles, cancelable, data, origin, lastEventId, source, ports\n })\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#the-closeevent-interface\n */\nclass CloseEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict = {}) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' })\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.CloseEventInit(eventInitDict)\n\n super(type, eventInitDict)\n\n this.#eventInit = eventInitDict\n }\n\n get wasClean () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.wasClean\n }\n\n get code () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.code\n }\n\n get reason () {\n webidl.brandCheck(this, CloseEvent)\n\n return this.#eventInit.reason\n }\n}\n\n// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface\nclass ErrorEvent extends Event {\n #eventInit\n\n constructor (type, eventInitDict) {\n webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' })\n\n super(type, eventInitDict)\n\n type = webidl.converters.DOMString(type)\n eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {})\n\n this.#eventInit = eventInitDict\n }\n\n get message () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.message\n }\n\n get filename () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.filename\n }\n\n get lineno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.lineno\n }\n\n get colno () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.colno\n }\n\n get error () {\n webidl.brandCheck(this, ErrorEvent)\n\n return this.#eventInit.error\n }\n}\n\nObject.defineProperties(MessageEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'MessageEvent',\n configurable: true\n },\n data: kEnumerableProperty,\n origin: kEnumerableProperty,\n lastEventId: kEnumerableProperty,\n source: kEnumerableProperty,\n ports: kEnumerableProperty,\n initMessageEvent: kEnumerableProperty\n})\n\nObject.defineProperties(CloseEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'CloseEvent',\n configurable: true\n },\n reason: kEnumerableProperty,\n code: kEnumerableProperty,\n wasClean: kEnumerableProperty\n})\n\nObject.defineProperties(ErrorEvent.prototype, {\n [Symbol.toStringTag]: {\n value: 'ErrorEvent',\n configurable: true\n },\n message: kEnumerableProperty,\n filename: kEnumerableProperty,\n lineno: kEnumerableProperty,\n colno: kEnumerableProperty,\n error: kEnumerableProperty\n})\n\nwebidl.converters.MessagePort = webidl.interfaceConverter(MessagePort)\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.MessagePort\n)\n\nconst eventInit = [\n {\n key: 'bubbles',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'cancelable',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'composed',\n converter: webidl.converters.boolean,\n defaultValue: false\n }\n]\n\nwebidl.converters.MessageEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'data',\n converter: webidl.converters.any,\n defaultValue: null\n },\n {\n key: 'origin',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lastEventId',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'source',\n // Node doesn't implement WindowProxy or ServiceWorker, so the only\n // valid value for source is a MessagePort.\n converter: webidl.nullableConverter(webidl.converters.MessagePort),\n defaultValue: null\n },\n {\n key: 'ports',\n converter: webidl.converters['sequence'],\n get defaultValue () {\n return []\n }\n }\n])\n\nwebidl.converters.CloseEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'wasClean',\n converter: webidl.converters.boolean,\n defaultValue: false\n },\n {\n key: 'code',\n converter: webidl.converters['unsigned short'],\n defaultValue: 0\n },\n {\n key: 'reason',\n converter: webidl.converters.USVString,\n defaultValue: ''\n }\n])\n\nwebidl.converters.ErrorEventInit = webidl.dictionaryConverter([\n ...eventInit,\n {\n key: 'message',\n converter: webidl.converters.DOMString,\n defaultValue: ''\n },\n {\n key: 'filename',\n converter: webidl.converters.USVString,\n defaultValue: ''\n },\n {\n key: 'lineno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'colno',\n converter: webidl.converters['unsigned long'],\n defaultValue: 0\n },\n {\n key: 'error',\n converter: webidl.converters.any\n }\n])\n\nmodule.exports = {\n MessageEvent,\n CloseEvent,\n ErrorEvent\n}\n","'use strict'\n\nconst { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require('./symbols')\nconst { states, opcodes } = require('./constants')\nconst { MessageEvent, ErrorEvent } = require('./events')\n\n/* globals Blob */\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isEstablished (ws) {\n // If the server's response is validated as provided for above, it is\n // said that _The WebSocket Connection is Established_ and that the\n // WebSocket Connection is in the OPEN state.\n return ws[kReadyState] === states.OPEN\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosing (ws) {\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n return ws[kReadyState] === states.CLOSING\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n */\nfunction isClosed (ws) {\n return ws[kReadyState] === states.CLOSED\n}\n\n/**\n * @see https://dom.spec.whatwg.org/#concept-event-fire\n * @param {string} e\n * @param {EventTarget} target\n * @param {EventInit | undefined} eventInitDict\n */\nfunction fireEvent (e, target, eventConstructor = Event, eventInitDict) {\n // 1. If eventConstructor is not given, then let eventConstructor be Event.\n\n // 2. Let event be the result of creating an event given eventConstructor,\n // in the relevant realm of target.\n // 3. Initialize event’s type attribute to e.\n const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap\n\n // 4. Initialize any other IDL attributes of event as described in the\n // invocation of this algorithm.\n\n // 5. Return the result of dispatching event at target, with legacy target\n // override flag set if set.\n target.dispatchEvent(event)\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @param {import('./websocket').WebSocket} ws\n * @param {number} type Opcode\n * @param {Buffer} data application data\n */\nfunction websocketMessageReceived (ws, type, data) {\n // 1. If ready state is not OPEN (1), then return.\n if (ws[kReadyState] !== states.OPEN) {\n return\n }\n\n // 2. Let dataForEvent be determined by switching on type and binary type:\n let dataForEvent\n\n if (type === opcodes.TEXT) {\n // -> type indicates that the data is Text\n // a new DOMString containing data\n try {\n dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data)\n } catch {\n failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.')\n return\n }\n } else if (type === opcodes.BINARY) {\n if (ws[kBinaryType] === 'blob') {\n // -> type indicates that the data is Binary and binary type is \"blob\"\n // a new Blob object, created in the relevant Realm of the WebSocket\n // object, that represents data as its raw data\n dataForEvent = new Blob([data])\n } else {\n // -> type indicates that the data is Binary and binary type is \"arraybuffer\"\n // a new ArrayBuffer object, created in the relevant Realm of the\n // WebSocket object, whose contents are data\n dataForEvent = new Uint8Array(data).buffer\n }\n }\n\n // 3. Fire an event named message at the WebSocket object, using MessageEvent,\n // with the origin attribute initialized to the serialization of the WebSocket\n // object’s url's origin, and the data attribute initialized to dataForEvent.\n fireEvent('message', ws, MessageEvent, {\n origin: ws[kWebSocketURL].origin,\n data: dataForEvent\n })\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455\n * @see https://datatracker.ietf.org/doc/html/rfc2616\n * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407\n * @param {string} protocol\n */\nfunction isValidSubprotocol (protocol) {\n // If present, this value indicates one\n // or more comma-separated subprotocol the client wishes to speak,\n // ordered by preference. The elements that comprise this value\n // MUST be non-empty strings with characters in the range U+0021 to\n // U+007E not including separator characters as defined in\n // [RFC2616] and MUST all be unique strings.\n if (protocol.length === 0) {\n return false\n }\n\n for (const char of protocol) {\n const code = char.charCodeAt(0)\n\n if (\n code < 0x21 ||\n code > 0x7E ||\n char === '(' ||\n char === ')' ||\n char === '<' ||\n char === '>' ||\n char === '@' ||\n char === ',' ||\n char === ';' ||\n char === ':' ||\n char === '\\\\' ||\n char === '\"' ||\n char === '/' ||\n char === '[' ||\n char === ']' ||\n char === '?' ||\n char === '=' ||\n char === '{' ||\n char === '}' ||\n code === 32 || // SP\n code === 9 // HT\n ) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4\n * @param {number} code\n */\nfunction isValidStatusCode (code) {\n if (code >= 1000 && code < 1015) {\n return (\n code !== 1004 && // reserved\n code !== 1005 && // \"MUST NOT be set as a status code\"\n code !== 1006 // \"MUST NOT be set as a status code\"\n )\n }\n\n return code >= 3000 && code <= 4999\n}\n\n/**\n * @param {import('./websocket').WebSocket} ws\n * @param {string|undefined} reason\n */\nfunction failWebsocketConnection (ws, reason) {\n const { [kController]: controller, [kResponse]: response } = ws\n\n controller.abort()\n\n if (response?.socket && !response.socket.destroyed) {\n response.socket.destroy()\n }\n\n if (reason) {\n fireEvent('error', ws, ErrorEvent, {\n error: new Error(reason)\n })\n }\n}\n\nmodule.exports = {\n isEstablished,\n isClosing,\n isClosed,\n fireEvent,\n isValidSubprotocol,\n isValidStatusCode,\n failWebsocketConnection,\n websocketMessageReceived\n}\n","'use strict'\n\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { uid, states } = require('./constants')\nconst {\n kReadyState,\n kSentClose,\n kByteParser,\n kReceivedClose\n} = require('./symbols')\nconst { fireEvent, failWebsocketConnection } = require('./util')\nconst { CloseEvent } = require('./events')\nconst { makeRequest } = require('../fetch/request')\nconst { fetching } = require('../fetch/index')\nconst { Headers } = require('../fetch/headers')\nconst { getGlobalDispatcher } = require('../global')\nconst { kHeadersList } = require('../core/symbols')\n\nconst channels = {}\nchannels.open = diagnosticsChannel.channel('undici:websocket:open')\nchannels.close = diagnosticsChannel.channel('undici:websocket:close')\nchannels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#concept-websocket-establish\n * @param {URL} url\n * @param {string|string[]} protocols\n * @param {import('./websocket').WebSocket} ws\n * @param {(response: any) => void} onEstablish\n * @param {Partial} options\n */\nfunction establishWebSocketConnection (url, protocols, ws, onEstablish, options) {\n // 1. Let requestURL be a copy of url, with its scheme set to \"http\", if url’s\n // scheme is \"ws\", and to \"https\" otherwise.\n const requestURL = url\n\n requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:'\n\n // 2. Let request be a new request, whose URL is requestURL, client is client,\n // service-workers mode is \"none\", referrer is \"no-referrer\", mode is\n // \"websocket\", credentials mode is \"include\", cache mode is \"no-store\" ,\n // and redirect mode is \"error\".\n const request = makeRequest({\n urlList: [requestURL],\n serviceWorkers: 'none',\n referrer: 'no-referrer',\n mode: 'websocket',\n credentials: 'include',\n cache: 'no-store',\n redirect: 'error'\n })\n\n // Note: undici extension, allow setting custom headers.\n if (options.headers) {\n const headersList = new Headers(options.headers)[kHeadersList]\n\n request.headersList = headersList\n }\n\n // 3. Append (`Upgrade`, `websocket`) to request’s header list.\n // 4. Append (`Connection`, `Upgrade`) to request’s header list.\n // Note: both of these are handled by undici currently.\n // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397\n\n // 5. Let keyValue be a nonce consisting of a randomly selected\n // 16-byte value that has been forgiving-base64-encoded and\n // isomorphic encoded.\n const keyValue = crypto.randomBytes(16).toString('base64')\n\n // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s\n // header list.\n request.headersList.append('sec-websocket-key', keyValue)\n\n // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s\n // header list.\n request.headersList.append('sec-websocket-version', '13')\n\n // 8. For each protocol in protocols, combine\n // (`Sec-WebSocket-Protocol`, protocol) in request’s header\n // list.\n for (const protocol of protocols) {\n request.headersList.append('sec-websocket-protocol', protocol)\n }\n\n // 9. Let permessageDeflate be a user-agent defined\n // \"permessage-deflate\" extension header value.\n // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673\n // TODO: enable once permessage-deflate is supported\n const permessageDeflate = '' // 'permessage-deflate; 15'\n\n // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to\n // request’s header list.\n // request.headersList.append('sec-websocket-extensions', permessageDeflate)\n\n // 11. Fetch request with useParallelQueue set to true, and\n // processResponse given response being these steps:\n const controller = fetching({\n request,\n useParallelQueue: true,\n dispatcher: options.dispatcher ?? getGlobalDispatcher(),\n processResponse (response) {\n // 1. If response is a network error or its status is not 101,\n // fail the WebSocket connection.\n if (response.type === 'error' || response.status !== 101) {\n failWebsocketConnection(ws, 'Received network error or non-101 status code.')\n return\n }\n\n // 2. If protocols is not the empty list and extracting header\n // list values given `Sec-WebSocket-Protocol` and response’s\n // header list results in null, failure, or the empty byte\n // sequence, then fail the WebSocket connection.\n if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Server did not respond with sent protocols.')\n return\n }\n\n // 3. Follow the requirements stated step 2 to step 6, inclusive,\n // of the last set of steps in section 4.1 of The WebSocket\n // Protocol to validate response. This either results in fail\n // the WebSocket connection or the WebSocket connection is\n // established.\n\n // 2. If the response lacks an |Upgrade| header field or the |Upgrade|\n // header field contains a value that is not an ASCII case-\n // insensitive match for the value \"websocket\", the client MUST\n // _Fail the WebSocket Connection_.\n if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') {\n failWebsocketConnection(ws, 'Server did not set Upgrade header to \"websocket\".')\n return\n }\n\n // 3. If the response lacks a |Connection| header field or the\n // |Connection| header field doesn't contain a token that is an\n // ASCII case-insensitive match for the value \"Upgrade\", the client\n // MUST _Fail the WebSocket Connection_.\n if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') {\n failWebsocketConnection(ws, 'Server did not set Connection header to \"upgrade\".')\n return\n }\n\n // 4. If the response lacks a |Sec-WebSocket-Accept| header field or\n // the |Sec-WebSocket-Accept| contains a value other than the\n // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket-\n // Key| (as a string, not base64-decoded) with the string \"258EAFA5-\n // E914-47DA-95CA-C5AB0DC85B11\" but ignoring any leading and\n // trailing whitespace, the client MUST _Fail the WebSocket\n // Connection_.\n const secWSAccept = response.headersList.get('Sec-WebSocket-Accept')\n const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64')\n if (secWSAccept !== digest) {\n failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.')\n return\n }\n\n // 5. If the response includes a |Sec-WebSocket-Extensions| header\n // field and this header field indicates the use of an extension\n // that was not present in the client's handshake (the server has\n // indicated an extension not requested by the client), the client\n // MUST _Fail the WebSocket Connection_. (The parsing of this\n // header field to determine which extensions are requested is\n // discussed in Section 9.1.)\n const secExtension = response.headersList.get('Sec-WebSocket-Extensions')\n\n if (secExtension !== null && secExtension !== permessageDeflate) {\n failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.')\n return\n }\n\n // 6. If the response includes a |Sec-WebSocket-Protocol| header field\n // and this header field indicates the use of a subprotocol that was\n // not present in the client's handshake (the server has indicated a\n // subprotocol not requested by the client), the client MUST _Fail\n // the WebSocket Connection_.\n const secProtocol = response.headersList.get('Sec-WebSocket-Protocol')\n\n if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) {\n failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.')\n return\n }\n\n response.socket.on('data', onSocketData)\n response.socket.on('close', onSocketClose)\n response.socket.on('error', onSocketError)\n\n if (channels.open.hasSubscribers) {\n channels.open.publish({\n address: response.socket.address(),\n protocol: secProtocol,\n extensions: secExtension\n })\n }\n\n onEstablish(response)\n }\n })\n\n return controller\n}\n\n/**\n * @param {Buffer} chunk\n */\nfunction onSocketData (chunk) {\n if (!this.ws[kByteParser].write(chunk)) {\n this.pause()\n }\n}\n\n/**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4\n */\nfunction onSocketClose () {\n const { ws } = this\n\n // If the TCP connection was closed after the\n // WebSocket closing handshake was completed, the WebSocket connection\n // is said to have been closed _cleanly_.\n const wasClean = ws[kSentClose] && ws[kReceivedClose]\n\n let code = 1005\n let reason = ''\n\n const result = ws[kByteParser].closingInfo\n\n if (result) {\n code = result.code ?? 1005\n reason = result.reason\n } else if (!ws[kSentClose]) {\n // If _The WebSocket\n // Connection is Closed_ and no Close control frame was received by the\n // endpoint (such as could occur if the underlying transport connection\n // is lost), _The WebSocket Connection Close Code_ is considered to be\n // 1006.\n code = 1006\n }\n\n // 1. Change the ready state to CLOSED (3).\n ws[kReadyState] = states.CLOSED\n\n // 2. If the user agent was required to fail the WebSocket\n // connection, or if the WebSocket connection was closed\n // after being flagged as full, fire an event named error\n // at the WebSocket object.\n // TODO\n\n // 3. Fire an event named close at the WebSocket object,\n // using CloseEvent, with the wasClean attribute\n // initialized to true if the connection closed cleanly\n // and false otherwise, the code attribute initialized to\n // the WebSocket connection close code, and the reason\n // attribute initialized to the result of applying UTF-8\n // decode without BOM to the WebSocket connection close\n // reason.\n fireEvent('close', ws, CloseEvent, {\n wasClean, code, reason\n })\n\n if (channels.close.hasSubscribers) {\n channels.close.publish({\n websocket: ws,\n code,\n reason\n })\n }\n}\n\nfunction onSocketError (error) {\n const { ws } = this\n\n ws[kReadyState] = states.CLOSING\n\n if (channels.socketError.hasSubscribers) {\n channels.socketError.publish(error)\n }\n\n this.destroy()\n}\n\nmodule.exports = {\n establishWebSocketConnection\n}\n","'use strict'\n\nconst { maxUnsigned16Bit } = require('./constants')\n\n/** @type {import('crypto')} */\nlet crypto\ntry {\n crypto = require('crypto')\n} catch {\n\n}\n\nclass WebsocketFrameSend {\n /**\n * @param {Buffer|undefined} data\n */\n constructor (data) {\n this.frameData = data\n this.maskKey = crypto.randomBytes(4)\n }\n\n createFrame (opcode) {\n const bodyLength = this.frameData?.byteLength ?? 0\n\n /** @type {number} */\n let payloadLength = bodyLength // 0-125\n let offset = 6\n\n if (bodyLength > maxUnsigned16Bit) {\n offset += 8 // payload length is next 8 bytes\n payloadLength = 127\n } else if (bodyLength > 125) {\n offset += 2 // payload length is next 2 bytes\n payloadLength = 126\n }\n\n const buffer = Buffer.allocUnsafe(bodyLength + offset)\n\n // Clear first 2 bytes, everything else is overwritten\n buffer[0] = buffer[1] = 0\n buffer[0] |= 0x80 // FIN\n buffer[0] = (buffer[0] & 0xF0) + opcode // opcode\n\n /*! ws. MIT License. Einar Otto Stangvik */\n buffer[offset - 4] = this.maskKey[0]\n buffer[offset - 3] = this.maskKey[1]\n buffer[offset - 2] = this.maskKey[2]\n buffer[offset - 1] = this.maskKey[3]\n\n buffer[1] = payloadLength\n\n if (payloadLength === 126) {\n buffer.writeUInt16BE(bodyLength, 2)\n } else if (payloadLength === 127) {\n // Clear extended payload length\n buffer[2] = buffer[3] = 0\n buffer.writeUIntBE(bodyLength, 4, 6)\n }\n\n buffer[1] |= 0x80 // MASK\n\n // mask body\n for (let i = 0; i < bodyLength; i++) {\n buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4]\n }\n\n return buffer\n }\n}\n\nmodule.exports = {\n WebsocketFrameSend\n}\n","'use strict'\n\nconst { Writable } = require('stream')\nconst diagnosticsChannel = require('diagnostics_channel')\nconst { parserStates, opcodes, states, emptyBuffer } = require('./constants')\nconst { kReadyState, kSentClose, kResponse, kReceivedClose } = require('./symbols')\nconst { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = require('./util')\nconst { WebsocketFrameSend } = require('./frame')\n\n// This code was influenced by ws released under the MIT license.\n// Copyright (c) 2011 Einar Otto Stangvik \n// Copyright (c) 2013 Arnout Kazemier and contributors\n// Copyright (c) 2016 Luigi Pinca and contributors\n\nconst channels = {}\nchannels.ping = diagnosticsChannel.channel('undici:websocket:ping')\nchannels.pong = diagnosticsChannel.channel('undici:websocket:pong')\n\nclass ByteParser extends Writable {\n #buffers = []\n #byteOffset = 0\n\n #state = parserStates.INFO\n\n #info = {}\n #fragments = []\n\n constructor (ws) {\n super()\n\n this.ws = ws\n }\n\n /**\n * @param {Buffer} chunk\n * @param {() => void} callback\n */\n _write (chunk, _, callback) {\n this.#buffers.push(chunk)\n this.#byteOffset += chunk.length\n\n this.run(callback)\n }\n\n /**\n * Runs whenever a new chunk is received.\n * Callback is called whenever there are no more chunks buffering,\n * or not enough bytes are buffered to parse.\n */\n run (callback) {\n while (true) {\n if (this.#state === parserStates.INFO) {\n // If there aren't enough bytes to parse the payload length, etc.\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.fin = (buffer[0] & 0x80) !== 0\n this.#info.opcode = buffer[0] & 0x0F\n\n // If we receive a fragmented message, we use the type of the first\n // frame to parse the full message as binary/text, when it's terminated\n this.#info.originalOpcode ??= this.#info.opcode\n\n this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION\n\n if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) {\n // Only text and binary frames can be fragmented\n failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.')\n return\n }\n\n const payloadLength = buffer[1] & 0x7F\n\n if (payloadLength <= 125) {\n this.#info.payloadLength = payloadLength\n this.#state = parserStates.READ_DATA\n } else if (payloadLength === 126) {\n this.#state = parserStates.PAYLOADLENGTH_16\n } else if (payloadLength === 127) {\n this.#state = parserStates.PAYLOADLENGTH_64\n }\n\n if (this.#info.fragmented && payloadLength > 125) {\n // A fragmented frame can't be fragmented itself\n failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.')\n return\n } else if (\n (this.#info.opcode === opcodes.PING ||\n this.#info.opcode === opcodes.PONG ||\n this.#info.opcode === opcodes.CLOSE) &&\n payloadLength > 125\n ) {\n // Control frames can have a payload length of 125 bytes MAX\n failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.')\n return\n } else if (this.#info.opcode === opcodes.CLOSE) {\n if (payloadLength === 1) {\n failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.')\n return\n }\n\n const body = this.consume(payloadLength)\n\n this.#info.closeInfo = this.parseCloseBody(false, body)\n\n if (!this.ws[kSentClose]) {\n // If an endpoint receives a Close frame and did not previously send a\n // Close frame, the endpoint MUST send a Close frame in response. (When\n // sending a Close frame in response, the endpoint typically echos the\n // status code it received.)\n const body = Buffer.allocUnsafe(2)\n body.writeUInt16BE(this.#info.closeInfo.code, 0)\n const closeFrame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(\n closeFrame.createFrame(opcodes.CLOSE),\n (err) => {\n if (!err) {\n this.ws[kSentClose] = true\n }\n }\n )\n }\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this.ws[kReadyState] = states.CLOSING\n this.ws[kReceivedClose] = true\n\n this.end()\n\n return\n } else if (this.#info.opcode === opcodes.PING) {\n // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in\n // response, unless it already received a Close frame.\n // A Pong frame sent in response to a Ping frame must have identical\n // \"Application data\"\n\n const body = this.consume(payloadLength)\n\n if (!this.ws[kReceivedClose]) {\n const frame = new WebsocketFrameSend(body)\n\n this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG))\n\n if (channels.ping.hasSubscribers) {\n channels.ping.publish({\n payload: body\n })\n }\n }\n\n this.#state = parserStates.INFO\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n } else if (this.#info.opcode === opcodes.PONG) {\n // A Pong frame MAY be sent unsolicited. This serves as a\n // unidirectional heartbeat. A response to an unsolicited Pong frame is\n // not expected.\n\n const body = this.consume(payloadLength)\n\n if (channels.pong.hasSubscribers) {\n channels.pong.publish({\n payload: body\n })\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n return\n }\n }\n } else if (this.#state === parserStates.PAYLOADLENGTH_16) {\n if (this.#byteOffset < 2) {\n return callback()\n }\n\n const buffer = this.consume(2)\n\n this.#info.payloadLength = buffer.readUInt16BE(0)\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.PAYLOADLENGTH_64) {\n if (this.#byteOffset < 8) {\n return callback()\n }\n\n const buffer = this.consume(8)\n const upper = buffer.readUInt32BE(0)\n\n // 2^31 is the maxinimum bytes an arraybuffer can contain\n // on 32-bit systems. Although, on 64-bit systems, this is\n // 2^53-1 bytes.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275\n // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e\n if (upper > 2 ** 31 - 1) {\n failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.')\n return\n }\n\n const lower = buffer.readUInt32BE(4)\n\n this.#info.payloadLength = (upper << 8) + lower\n this.#state = parserStates.READ_DATA\n } else if (this.#state === parserStates.READ_DATA) {\n if (this.#byteOffset < this.#info.payloadLength) {\n // If there is still more data in this chunk that needs to be read\n return callback()\n } else if (this.#byteOffset >= this.#info.payloadLength) {\n // If the server sent multiple frames in a single chunk\n\n const body = this.consume(this.#info.payloadLength)\n\n this.#fragments.push(body)\n\n // If the frame is unfragmented, or a fragmented frame was terminated,\n // a message was received\n if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) {\n const fullMessage = Buffer.concat(this.#fragments)\n\n websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage)\n\n this.#info = {}\n this.#fragments.length = 0\n }\n\n this.#state = parserStates.INFO\n }\n }\n\n if (this.#byteOffset > 0) {\n continue\n } else {\n callback()\n break\n }\n }\n }\n\n /**\n * Take n bytes from the buffered Buffers\n * @param {number} n\n * @returns {Buffer|null}\n */\n consume (n) {\n if (n > this.#byteOffset) {\n return null\n } else if (n === 0) {\n return emptyBuffer\n }\n\n if (this.#buffers[0].length === n) {\n this.#byteOffset -= this.#buffers[0].length\n return this.#buffers.shift()\n }\n\n const buffer = Buffer.allocUnsafe(n)\n let offset = 0\n\n while (offset !== n) {\n const next = this.#buffers[0]\n const { length } = next\n\n if (length + offset === n) {\n buffer.set(this.#buffers.shift(), offset)\n break\n } else if (length + offset > n) {\n buffer.set(next.subarray(0, n - offset), offset)\n this.#buffers[0] = next.subarray(n - offset)\n break\n } else {\n buffer.set(this.#buffers.shift(), offset)\n offset += next.length\n }\n }\n\n this.#byteOffset -= n\n\n return buffer\n }\n\n parseCloseBody (onlyCode, data) {\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5\n /** @type {number|undefined} */\n let code\n\n if (data.length >= 2) {\n // _The WebSocket Connection Close Code_ is\n // defined as the status code (Section 7.4) contained in the first Close\n // control frame received by the application\n code = data.readUInt16BE(0)\n }\n\n if (onlyCode) {\n if (!isValidStatusCode(code)) {\n return null\n }\n\n return { code }\n }\n\n // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6\n /** @type {Buffer} */\n let reason = data.subarray(2)\n\n // Remove BOM\n if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) {\n reason = reason.subarray(3)\n }\n\n if (code !== undefined && !isValidStatusCode(code)) {\n return null\n }\n\n try {\n // TODO: optimize this\n reason = new TextDecoder('utf-8', { fatal: true }).decode(reason)\n } catch {\n return null\n }\n\n return { code, reason }\n }\n\n get closingInfo () {\n return this.#info.closeInfo\n }\n}\n\nmodule.exports = {\n ByteParser\n}\n","'use strict'\n\nconst { webidl } = require('../fetch/webidl')\nconst { DOMException } = require('../fetch/constants')\nconst { URLSerializer } = require('../fetch/dataURL')\nconst { getGlobalOrigin } = require('../fetch/global')\nconst { staticPropertyDescriptors, states, opcodes, emptyBuffer } = require('./constants')\nconst {\n kWebSocketURL,\n kReadyState,\n kController,\n kBinaryType,\n kResponse,\n kSentClose,\n kByteParser\n} = require('./symbols')\nconst { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = require('./util')\nconst { establishWebSocketConnection } = require('./connection')\nconst { WebsocketFrameSend } = require('./frame')\nconst { ByteParser } = require('./receiver')\nconst { kEnumerableProperty, isBlobLike } = require('../core/util')\nconst { getGlobalDispatcher } = require('../global')\nconst { types } = require('util')\n\nlet experimentalWarned = false\n\n// https://websockets.spec.whatwg.org/#interface-definition\nclass WebSocket extends EventTarget {\n #events = {\n open: null,\n error: null,\n close: null,\n message: null\n }\n\n #bufferedAmount = 0\n #protocol = ''\n #extensions = ''\n\n /**\n * @param {string} url\n * @param {string|string[]} protocols\n */\n constructor (url, protocols = []) {\n super()\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' })\n\n if (!experimentalWarned) {\n experimentalWarned = true\n process.emitWarning('WebSockets are experimental, expect them to change at any time.', {\n code: 'UNDICI-WS'\n })\n }\n\n const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols)\n\n url = webidl.converters.USVString(url)\n protocols = options.protocols\n\n // 1. Let baseURL be this's relevant settings object's API base URL.\n const baseURL = getGlobalOrigin()\n\n // 1. Let urlRecord be the result of applying the URL parser to url with baseURL.\n let urlRecord\n\n try {\n urlRecord = new URL(url, baseURL)\n } catch (e) {\n // 3. If urlRecord is failure, then throw a \"SyntaxError\" DOMException.\n throw new DOMException(e, 'SyntaxError')\n }\n\n // 4. If urlRecord’s scheme is \"http\", then set urlRecord’s scheme to \"ws\".\n if (urlRecord.protocol === 'http:') {\n urlRecord.protocol = 'ws:'\n } else if (urlRecord.protocol === 'https:') {\n // 5. Otherwise, if urlRecord’s scheme is \"https\", set urlRecord’s scheme to \"wss\".\n urlRecord.protocol = 'wss:'\n }\n\n // 6. If urlRecord’s scheme is not \"ws\" or \"wss\", then throw a \"SyntaxError\" DOMException.\n if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') {\n throw new DOMException(\n `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,\n 'SyntaxError'\n )\n }\n\n // 7. If urlRecord’s fragment is non-null, then throw a \"SyntaxError\"\n // DOMException.\n if (urlRecord.hash || urlRecord.href.endsWith('#')) {\n throw new DOMException('Got fragment', 'SyntaxError')\n }\n\n // 8. If protocols is a string, set protocols to a sequence consisting\n // of just that string.\n if (typeof protocols === 'string') {\n protocols = [protocols]\n }\n\n // 9. If any of the values in protocols occur more than once or otherwise\n // fail to match the requirements for elements that comprise the value\n // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket\n // protocol, then throw a \"SyntaxError\" DOMException.\n if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) {\n throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError')\n }\n\n // 10. Set this's url to urlRecord.\n this[kWebSocketURL] = new URL(urlRecord.href)\n\n // 11. Let client be this's relevant settings object.\n\n // 12. Run this step in parallel:\n\n // 1. Establish a WebSocket connection given urlRecord, protocols,\n // and client.\n this[kController] = establishWebSocketConnection(\n urlRecord,\n protocols,\n this,\n (response) => this.#onConnectionEstablished(response),\n options\n )\n\n // Each WebSocket object has an associated ready state, which is a\n // number representing the state of the connection. Initially it must\n // be CONNECTING (0).\n this[kReadyState] = WebSocket.CONNECTING\n\n // The extensions attribute must initially return the empty string.\n\n // The protocol attribute must initially return the empty string.\n\n // Each WebSocket object has an associated binary type, which is a\n // BinaryType. Initially it must be \"blob\".\n this[kBinaryType] = 'blob'\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-close\n * @param {number|undefined} code\n * @param {string|undefined} reason\n */\n close (code = undefined, reason = undefined) {\n webidl.brandCheck(this, WebSocket)\n\n if (code !== undefined) {\n code = webidl.converters['unsigned short'](code, { clamp: true })\n }\n\n if (reason !== undefined) {\n reason = webidl.converters.USVString(reason)\n }\n\n // 1. If code is present, but is neither an integer equal to 1000 nor an\n // integer in the range 3000 to 4999, inclusive, throw an\n // \"InvalidAccessError\" DOMException.\n if (code !== undefined) {\n if (code !== 1000 && (code < 3000 || code > 4999)) {\n throw new DOMException('invalid code', 'InvalidAccessError')\n }\n }\n\n let reasonByteLength = 0\n\n // 2. If reason is present, then run these substeps:\n if (reason !== undefined) {\n // 1. Let reasonBytes be the result of encoding reason.\n // 2. If reasonBytes is longer than 123 bytes, then throw a\n // \"SyntaxError\" DOMException.\n reasonByteLength = Buffer.byteLength(reason)\n\n if (reasonByteLength > 123) {\n throw new DOMException(\n `Reason must be less than 123 bytes; received ${reasonByteLength}`,\n 'SyntaxError'\n )\n }\n }\n\n // 3. Run the first matching steps from the following list:\n if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) {\n // If this's ready state is CLOSING (2) or CLOSED (3)\n // Do nothing.\n } else if (!isEstablished(this)) {\n // If the WebSocket connection is not yet established\n // Fail the WebSocket connection and set this's ready state\n // to CLOSING (2).\n failWebsocketConnection(this, 'Connection was closed before it was established.')\n this[kReadyState] = WebSocket.CLOSING\n } else if (!isClosing(this)) {\n // If the WebSocket closing handshake has not yet been started\n // Start the WebSocket closing handshake and set this's ready\n // state to CLOSING (2).\n // - If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n // - If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n // - If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n\n const frame = new WebsocketFrameSend()\n\n // If neither code nor reason is present, the WebSocket Close\n // message must not have a body.\n\n // If code is present, then the status code to use in the\n // WebSocket Close message must be the integer given by code.\n if (code !== undefined && reason === undefined) {\n frame.frameData = Buffer.allocUnsafe(2)\n frame.frameData.writeUInt16BE(code, 0)\n } else if (code !== undefined && reason !== undefined) {\n // If reason is also present, then reasonBytes must be\n // provided in the Close message after the status code.\n frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength)\n frame.frameData.writeUInt16BE(code, 0)\n // the body MAY contain UTF-8-encoded data with value /reason/\n frame.frameData.write(reason, 2, 'utf-8')\n } else {\n frame.frameData = emptyBuffer\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n socket.write(frame.createFrame(opcodes.CLOSE), (err) => {\n if (!err) {\n this[kSentClose] = true\n }\n })\n\n // Upon either sending or receiving a Close control frame, it is said\n // that _The WebSocket Closing Handshake is Started_ and that the\n // WebSocket connection is in the CLOSING state.\n this[kReadyState] = states.CLOSING\n } else {\n // Otherwise\n // Set this's ready state to CLOSING (2).\n this[kReadyState] = WebSocket.CLOSING\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#dom-websocket-send\n * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data\n */\n send (data) {\n webidl.brandCheck(this, WebSocket)\n\n webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' })\n\n data = webidl.converters.WebSocketSendData(data)\n\n // 1. If this's ready state is CONNECTING, then throw an\n // \"InvalidStateError\" DOMException.\n if (this[kReadyState] === WebSocket.CONNECTING) {\n throw new DOMException('Sent before connected.', 'InvalidStateError')\n }\n\n // 2. Run the appropriate set of steps from the following list:\n // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1\n // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\n if (!isEstablished(this) || isClosing(this)) {\n return\n }\n\n /** @type {import('stream').Duplex} */\n const socket = this[kResponse].socket\n\n // If data is a string\n if (typeof data === 'string') {\n // If the WebSocket connection is established and the WebSocket\n // closing handshake has not yet started, then the user agent\n // must send a WebSocket Message comprised of the data argument\n // using a text frame opcode; if the data cannot be sent, e.g.\n // because it would need to be buffered but the buffer is full,\n // the user agent must flag the WebSocket as full and then close\n // the WebSocket connection. Any invocation of this method with a\n // string argument that does not throw an exception must increase\n // the bufferedAmount attribute by the number of bytes needed to\n // express the argument as UTF-8.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.TEXT)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (types.isArrayBuffer(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need\n // to be buffered but the buffer is full, the user agent must flag\n // the WebSocket as full and then close the WebSocket connection.\n // The data to be sent is the data stored in the buffer described\n // by the ArrayBuffer object. Any invocation of this method with an\n // ArrayBuffer argument that does not throw an exception must\n // increase the bufferedAmount attribute by the length of the\n // ArrayBuffer in bytes.\n\n const value = Buffer.from(data)\n const frame = new WebsocketFrameSend(value)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n } else if (ArrayBuffer.isView(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The\n // data to be sent is the data stored in the section of the buffer\n // described by the ArrayBuffer object that data references. Any\n // invocation of this method with this kind of argument that does\n // not throw an exception must increase the bufferedAmount attribute\n // by the length of data’s buffer in bytes.\n\n const ab = Buffer.from(data, data.byteOffset, data.byteLength)\n\n const frame = new WebsocketFrameSend(ab)\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += ab.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= ab.byteLength\n })\n } else if (isBlobLike(data)) {\n // If the WebSocket connection is established, and the WebSocket\n // closing handshake has not yet started, then the user agent must\n // send a WebSocket Message comprised of data using a binary frame\n // opcode; if the data cannot be sent, e.g. because it would need to\n // be buffered but the buffer is full, the user agent must flag the\n // WebSocket as full and then close the WebSocket connection. The data\n // to be sent is the raw data represented by the Blob object. Any\n // invocation of this method with a Blob argument that does not throw\n // an exception must increase the bufferedAmount attribute by the size\n // of the Blob object’s raw data, in bytes.\n\n const frame = new WebsocketFrameSend()\n\n data.arrayBuffer().then((ab) => {\n const value = Buffer.from(ab)\n frame.frameData = value\n const buffer = frame.createFrame(opcodes.BINARY)\n\n this.#bufferedAmount += value.byteLength\n socket.write(buffer, () => {\n this.#bufferedAmount -= value.byteLength\n })\n })\n }\n }\n\n get readyState () {\n webidl.brandCheck(this, WebSocket)\n\n // The readyState getter steps are to return this's ready state.\n return this[kReadyState]\n }\n\n get bufferedAmount () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#bufferedAmount\n }\n\n get url () {\n webidl.brandCheck(this, WebSocket)\n\n // The url getter steps are to return this's url, serialized.\n return URLSerializer(this[kWebSocketURL])\n }\n\n get extensions () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#extensions\n }\n\n get protocol () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#protocol\n }\n\n get onopen () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.open\n }\n\n set onopen (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.open) {\n this.removeEventListener('open', this.#events.open)\n }\n\n if (typeof fn === 'function') {\n this.#events.open = fn\n this.addEventListener('open', fn)\n } else {\n this.#events.open = null\n }\n }\n\n get onerror () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.error\n }\n\n set onerror (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.error) {\n this.removeEventListener('error', this.#events.error)\n }\n\n if (typeof fn === 'function') {\n this.#events.error = fn\n this.addEventListener('error', fn)\n } else {\n this.#events.error = null\n }\n }\n\n get onclose () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.close\n }\n\n set onclose (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.close) {\n this.removeEventListener('close', this.#events.close)\n }\n\n if (typeof fn === 'function') {\n this.#events.close = fn\n this.addEventListener('close', fn)\n } else {\n this.#events.close = null\n }\n }\n\n get onmessage () {\n webidl.brandCheck(this, WebSocket)\n\n return this.#events.message\n }\n\n set onmessage (fn) {\n webidl.brandCheck(this, WebSocket)\n\n if (this.#events.message) {\n this.removeEventListener('message', this.#events.message)\n }\n\n if (typeof fn === 'function') {\n this.#events.message = fn\n this.addEventListener('message', fn)\n } else {\n this.#events.message = null\n }\n }\n\n get binaryType () {\n webidl.brandCheck(this, WebSocket)\n\n return this[kBinaryType]\n }\n\n set binaryType (type) {\n webidl.brandCheck(this, WebSocket)\n\n if (type !== 'blob' && type !== 'arraybuffer') {\n this[kBinaryType] = 'blob'\n } else {\n this[kBinaryType] = type\n }\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol\n */\n #onConnectionEstablished (response) {\n // processResponse is called when the \"response’s header list has been received and initialized.\"\n // once this happens, the connection is open\n this[kResponse] = response\n\n const parser = new ByteParser(this)\n parser.on('drain', function onParserDrain () {\n this.ws[kResponse].socket.resume()\n })\n\n response.socket.ws = this\n this[kByteParser] = parser\n\n // 1. Change the ready state to OPEN (1).\n this[kReadyState] = states.OPEN\n\n // 2. Change the extensions attribute’s value to the extensions in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1\n const extensions = response.headersList.get('sec-websocket-extensions')\n\n if (extensions !== null) {\n this.#extensions = extensions\n }\n\n // 3. Change the protocol attribute’s value to the subprotocol in use, if\n // it is not the null value.\n // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9\n const protocol = response.headersList.get('sec-websocket-protocol')\n\n if (protocol !== null) {\n this.#protocol = protocol\n }\n\n // 4. Fire an event named open at the WebSocket object.\n fireEvent('open', this)\n }\n}\n\n// https://websockets.spec.whatwg.org/#dom-websocket-connecting\nWebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING\n// https://websockets.spec.whatwg.org/#dom-websocket-open\nWebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN\n// https://websockets.spec.whatwg.org/#dom-websocket-closing\nWebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING\n// https://websockets.spec.whatwg.org/#dom-websocket-closed\nWebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED\n\nObject.defineProperties(WebSocket.prototype, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors,\n url: kEnumerableProperty,\n readyState: kEnumerableProperty,\n bufferedAmount: kEnumerableProperty,\n onopen: kEnumerableProperty,\n onerror: kEnumerableProperty,\n onclose: kEnumerableProperty,\n close: kEnumerableProperty,\n onmessage: kEnumerableProperty,\n binaryType: kEnumerableProperty,\n send: kEnumerableProperty,\n extensions: kEnumerableProperty,\n protocol: kEnumerableProperty,\n [Symbol.toStringTag]: {\n value: 'WebSocket',\n writable: false,\n enumerable: false,\n configurable: true\n }\n})\n\nObject.defineProperties(WebSocket, {\n CONNECTING: staticPropertyDescriptors,\n OPEN: staticPropertyDescriptors,\n CLOSING: staticPropertyDescriptors,\n CLOSED: staticPropertyDescriptors\n})\n\nwebidl.converters['sequence'] = webidl.sequenceConverter(\n webidl.converters.DOMString\n)\n\nwebidl.converters['DOMString or sequence'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) {\n return webidl.converters['sequence'](V)\n }\n\n return webidl.converters.DOMString(V)\n}\n\n// This implements the propsal made in https://github.com/whatwg/websockets/issues/42\nwebidl.converters.WebSocketInit = webidl.dictionaryConverter([\n {\n key: 'protocols',\n converter: webidl.converters['DOMString or sequence'],\n get defaultValue () {\n return []\n }\n },\n {\n key: 'dispatcher',\n converter: (V) => V,\n get defaultValue () {\n return getGlobalDispatcher()\n }\n },\n {\n key: 'headers',\n converter: webidl.nullableConverter(webidl.converters.HeadersInit)\n }\n])\n\nwebidl.converters['DOMString or sequence or WebSocketInit'] = function (V) {\n if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) {\n return webidl.converters.WebSocketInit(V)\n }\n\n return { protocols: webidl.converters['DOMString or sequence'](V) }\n}\n\nwebidl.converters.WebSocketSendData = function (V) {\n if (webidl.util.Type(V) === 'Object') {\n if (isBlobLike(V)) {\n return webidl.converters.Blob(V, { strict: false })\n }\n\n if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) {\n return webidl.converters.BufferSource(V)\n }\n }\n\n return webidl.converters.USVString(V)\n}\n\nmodule.exports = {\n WebSocket\n}\n","'use strict'\n\nconst Client = require('./lib/client')\nconst Dispatcher = require('./lib/dispatcher')\nconst errors = require('./lib/core/errors')\nconst Pool = require('./lib/pool')\nconst BalancedPool = require('./lib/balanced-pool')\nconst Agent = require('./lib/agent')\nconst util = require('./lib/core/util')\nconst { InvalidArgumentError } = errors\nconst api = require('./lib/api')\nconst buildConnector = require('./lib/core/connect')\nconst MockClient = require('./lib/mock/mock-client')\nconst MockAgent = require('./lib/mock/mock-agent')\nconst MockPool = require('./lib/mock/mock-pool')\nconst mockErrors = require('./lib/mock/mock-errors')\nconst ProxyAgent = require('./lib/proxy-agent')\nconst RetryHandler = require('./lib/handler/RetryHandler')\nconst { getGlobalDispatcher, setGlobalDispatcher } = require('./lib/global')\nconst DecoratorHandler = require('./lib/handler/DecoratorHandler')\nconst RedirectHandler = require('./lib/handler/RedirectHandler')\nconst createRedirectInterceptor = require('./lib/interceptor/redirectInterceptor')\n\nlet hasCrypto\ntry {\n require('crypto')\n hasCrypto = true\n} catch {\n hasCrypto = false\n}\n\nObject.assign(Dispatcher.prototype, api)\n\nmodule.exports.Dispatcher = Dispatcher\nmodule.exports.Client = Client\nmodule.exports.Pool = Pool\nmodule.exports.BalancedPool = BalancedPool\nmodule.exports.Agent = Agent\nmodule.exports.ProxyAgent = ProxyAgent\nmodule.exports.RetryHandler = RetryHandler\n\nmodule.exports.DecoratorHandler = DecoratorHandler\nmodule.exports.RedirectHandler = RedirectHandler\nmodule.exports.createRedirectInterceptor = createRedirectInterceptor\n\nmodule.exports.buildConnector = buildConnector\nmodule.exports.errors = errors\n\nfunction makeDispatcher (fn) {\n return (url, opts, handler) => {\n if (typeof opts === 'function') {\n handler = opts\n opts = null\n }\n\n if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) {\n throw new InvalidArgumentError('invalid url')\n }\n\n if (opts != null && typeof opts !== 'object') {\n throw new InvalidArgumentError('invalid opts')\n }\n\n if (opts && opts.path != null) {\n if (typeof opts.path !== 'string') {\n throw new InvalidArgumentError('invalid opts.path')\n }\n\n let path = opts.path\n if (!opts.path.startsWith('/')) {\n path = `/${path}`\n }\n\n url = new URL(util.parseOrigin(url).origin + path)\n } else {\n if (!opts) {\n opts = typeof url === 'object' ? url : {}\n }\n\n url = util.parseURL(url)\n }\n\n const { agent, dispatcher = getGlobalDispatcher() } = opts\n\n if (agent) {\n throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?')\n }\n\n return fn.call(dispatcher, {\n ...opts,\n origin: url.origin,\n path: url.search ? `${url.pathname}${url.search}` : url.pathname,\n method: opts.method || (opts.body ? 'PUT' : 'GET')\n }, handler)\n }\n}\n\nmodule.exports.setGlobalDispatcher = setGlobalDispatcher\nmodule.exports.getGlobalDispatcher = getGlobalDispatcher\n\nif (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) {\n let fetchImpl = null\n module.exports.fetch = async function fetch (resource) {\n if (!fetchImpl) {\n fetchImpl = require('./lib/fetch').fetch\n }\n\n try {\n return await fetchImpl(...arguments)\n } catch (err) {\n if (typeof err === 'object') {\n Error.captureStackTrace(err, this)\n }\n\n throw err\n }\n }\n module.exports.Headers = require('./lib/fetch/headers').Headers\n module.exports.Response = require('./lib/fetch/response').Response\n module.exports.Request = require('./lib/fetch/request').Request\n module.exports.FormData = require('./lib/fetch/formdata').FormData\n module.exports.File = require('./lib/fetch/file').File\n module.exports.FileReader = require('./lib/fileapi/filereader').FileReader\n\n const { setGlobalOrigin, getGlobalOrigin } = require('./lib/fetch/global')\n\n module.exports.setGlobalOrigin = setGlobalOrigin\n module.exports.getGlobalOrigin = getGlobalOrigin\n\n const { CacheStorage } = require('./lib/cache/cachestorage')\n const { kConstruct } = require('./lib/cache/symbols')\n\n // Cache & CacheStorage are tightly coupled with fetch. Even if it may run\n // in an older version of Node, it doesn't have any use without fetch.\n module.exports.caches = new CacheStorage(kConstruct)\n}\n\nif (util.nodeMajor >= 16) {\n const { deleteCookie, getCookies, getSetCookies, setCookie } = require('./lib/cookies')\n\n module.exports.deleteCookie = deleteCookie\n module.exports.getCookies = getCookies\n module.exports.getSetCookies = getSetCookies\n module.exports.setCookie = setCookie\n\n const { parseMIMEType, serializeAMimeType } = require('./lib/fetch/dataURL')\n\n module.exports.parseMIMEType = parseMIMEType\n module.exports.serializeAMimeType = serializeAMimeType\n}\n\nif (util.nodeMajor >= 18 && hasCrypto) {\n const { WebSocket } = require('./lib/websocket/websocket')\n\n module.exports.WebSocket = WebSocket\n}\n\nmodule.exports.request = makeDispatcher(api.request)\nmodule.exports.stream = makeDispatcher(api.stream)\nmodule.exports.pipeline = makeDispatcher(api.pipeline)\nmodule.exports.connect = makeDispatcher(api.connect)\nmodule.exports.upgrade = makeDispatcher(api.upgrade)\n\nmodule.exports.MockClient = MockClient\nmodule.exports.MockPool = MockPool\nmodule.exports.MockAgent = MockAgent\nmodule.exports.mockErrors = mockErrors\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nconst undici_1 = require(\"undici\");\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes || (exports.HttpCodes = HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers || (exports.Headers = Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes || (exports.MediaTypes = MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n readBodyBuffer() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n const chunks = [];\n this.message.on('data', (chunk) => {\n chunks.push(chunk);\n });\n this.message.on('end', () => {\n resolve(Buffer.concat(chunks));\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n getAgentDispatcher(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (!useProxy) {\n return;\n }\n return this._getProxyAgentDispatcher(parsedUrl, proxyUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (!useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if tunneling agent isn't assigned create a new agent\n if (!agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _getProxyAgentDispatcher(parsedUrl, proxyUrl) {\n let proxyAgent;\n if (this._keepAlive) {\n proxyAgent = this._proxyAgentDispatcher;\n }\n // if agent is already assigned use that agent.\n if (proxyAgent) {\n return proxyAgent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && {\n token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}`\n })));\n this._proxyAgentDispatcher = proxyAgent;\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, {\n rejectUnauthorized: false\n });\n }\n return proxyAgent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n (0, core_1.debug)(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n (0, core_1.setSecret)(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCmdPath = exports.tryGetExecutablePath = exports.isRooted = exports.isDirectory = exports.exists = exports.READONLY = exports.UV_FS_O_EXLOCK = exports.IS_WINDOWS = exports.unlink = exports.symlink = exports.stat = exports.rmdir = exports.rm = exports.rename = exports.readlink = exports.readdir = exports.open = exports.mkdir = exports.lstat = exports.copyFile = exports.chmod = void 0;\nconst fs = __importStar(require(\"fs\"));\nconst path = __importStar(require(\"path\"));\n_a = fs.promises\n// export const {open} = 'fs'\n, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.open = _a.open, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rm = _a.rm, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;\n// export const {open} = 'fs'\nexports.IS_WINDOWS = process.platform === 'win32';\n// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691\nexports.UV_FS_O_EXLOCK = 0x10000000;\nexports.READONLY = fs.constants.O_RDONLY;\nfunction exists(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield exports.stat(fsPath);\n }\n catch (err) {\n if (err.code === 'ENOENT') {\n return false;\n }\n throw err;\n }\n return true;\n });\n}\nexports.exists = exists;\nfunction isDirectory(fsPath, useStat = false) {\n return __awaiter(this, void 0, void 0, function* () {\n const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);\n return stats.isDirectory();\n });\n}\nexports.isDirectory = isDirectory;\n/**\n * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:\n * \\, \\hello, \\\\hello\\share, C:, and C:\\hello (and corresponding alternate separator cases).\n */\nfunction isRooted(p) {\n p = normalizeSeparators(p);\n if (!p) {\n throw new Error('isRooted() parameter \"p\" cannot be empty');\n }\n if (exports.IS_WINDOWS) {\n return (p.startsWith('\\\\') || /^[A-Z]:/i.test(p) // e.g. \\ or \\hello or \\\\hello\n ); // e.g. C: or C:\\hello\n }\n return p.startsWith('/');\n}\nexports.isRooted = isRooted;\n/**\n * Best effort attempt to determine whether a file exists and is executable.\n * @param filePath file path to check\n * @param extensions additional file extensions to try\n * @return if file exists and is executable, returns the file path. otherwise empty string.\n */\nfunction tryGetExecutablePath(filePath, extensions) {\n return __awaiter(this, void 0, void 0, function* () {\n let stats = undefined;\n try {\n // test file exists\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // on Windows, test for valid extension\n const upperExt = path.extname(filePath).toUpperCase();\n if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {\n return filePath;\n }\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n // try each extension\n const originalFilePath = filePath;\n for (const extension of extensions) {\n filePath = originalFilePath + extension;\n stats = undefined;\n try {\n stats = yield exports.stat(filePath);\n }\n catch (err) {\n if (err.code !== 'ENOENT') {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);\n }\n }\n if (stats && stats.isFile()) {\n if (exports.IS_WINDOWS) {\n // preserve the case of the actual file (since an extension was appended)\n try {\n const directory = path.dirname(filePath);\n const upperName = path.basename(filePath).toUpperCase();\n for (const actualName of yield exports.readdir(directory)) {\n if (upperName === actualName.toUpperCase()) {\n filePath = path.join(directory, actualName);\n break;\n }\n }\n }\n catch (err) {\n // eslint-disable-next-line no-console\n console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);\n }\n return filePath;\n }\n else {\n if (isUnixExecutable(stats)) {\n return filePath;\n }\n }\n }\n }\n return '';\n });\n}\nexports.tryGetExecutablePath = tryGetExecutablePath;\nfunction normalizeSeparators(p) {\n p = p || '';\n if (exports.IS_WINDOWS) {\n // convert slashes on Windows\n p = p.replace(/\\//g, '\\\\');\n // remove redundant slashes\n return p.replace(/\\\\\\\\+/g, '\\\\');\n }\n // remove redundant slashes\n return p.replace(/\\/\\/+/g, '/');\n}\n// on Mac/Linux, test the execute bit\n// R W X R W X R W X\n// 256 128 64 32 16 8 4 2 1\nfunction isUnixExecutable(stats) {\n return ((stats.mode & 1) > 0 ||\n ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||\n ((stats.mode & 64) > 0 && stats.uid === process.getuid()));\n}\n// Get the path of cmd.exe in windows\nfunction getCmdPath() {\n var _a;\n return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`;\n}\nexports.getCmdPath = getCmdPath;\n//# sourceMappingURL=io-util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findInPath = exports.which = exports.mkdirP = exports.rmRF = exports.mv = exports.cp = void 0;\nconst assert_1 = require(\"assert\");\nconst path = __importStar(require(\"path\"));\nconst ioUtil = __importStar(require(\"./io-util\"));\n/**\n * Copies a file or folder.\n * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See CopyOptions.\n */\nfunction cp(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const { force, recursive, copySourceDirectory } = readCopyOptions(options);\n const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;\n // Dest is an existing file, but not forcing\n if (destStat && destStat.isFile() && !force) {\n return;\n }\n // If dest is an existing directory, should copy inside.\n const newDest = destStat && destStat.isDirectory() && copySourceDirectory\n ? path.join(dest, path.basename(source))\n : dest;\n if (!(yield ioUtil.exists(source))) {\n throw new Error(`no such file or directory: ${source}`);\n }\n const sourceStat = yield ioUtil.stat(source);\n if (sourceStat.isDirectory()) {\n if (!recursive) {\n throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);\n }\n else {\n yield cpDirRecursive(source, newDest, 0, force);\n }\n }\n else {\n if (path.relative(source, newDest) === '') {\n // a file cannot be copied to itself\n throw new Error(`'${newDest}' and '${source}' are the same file`);\n }\n yield copyFile(source, newDest, force);\n }\n });\n}\nexports.cp = cp;\n/**\n * Moves a path.\n *\n * @param source source path\n * @param dest destination path\n * @param options optional. See MoveOptions.\n */\nfunction mv(source, dest, options = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n if (yield ioUtil.exists(dest)) {\n let destExists = true;\n if (yield ioUtil.isDirectory(dest)) {\n // If dest is directory copy src into dest\n dest = path.join(dest, path.basename(source));\n destExists = yield ioUtil.exists(dest);\n }\n if (destExists) {\n if (options.force == null || options.force) {\n yield rmRF(dest);\n }\n else {\n throw new Error('Destination already exists');\n }\n }\n }\n yield mkdirP(path.dirname(dest));\n yield ioUtil.rename(source, dest);\n });\n}\nexports.mv = mv;\n/**\n * Remove a path recursively with force\n *\n * @param inputPath path to remove\n */\nfunction rmRF(inputPath) {\n return __awaiter(this, void 0, void 0, function* () {\n if (ioUtil.IS_WINDOWS) {\n // Check for invalid characters\n // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file\n if (/[*\"<>|]/.test(inputPath)) {\n throw new Error('File path must not contain `*`, `\"`, `<`, `>` or `|` on Windows');\n }\n }\n try {\n // note if path does not exist, error is silent\n yield ioUtil.rm(inputPath, {\n force: true,\n maxRetries: 3,\n recursive: true,\n retryDelay: 300\n });\n }\n catch (err) {\n throw new Error(`File was unable to be removed ${err}`);\n }\n });\n}\nexports.rmRF = rmRF;\n/**\n * Make a directory. Creates the full path with folders in between\n * Will throw if it fails\n *\n * @param fsPath path to create\n * @returns Promise\n */\nfunction mkdirP(fsPath) {\n return __awaiter(this, void 0, void 0, function* () {\n assert_1.ok(fsPath, 'a path argument must be provided');\n yield ioUtil.mkdir(fsPath, { recursive: true });\n });\n}\nexports.mkdirP = mkdirP;\n/**\n * Returns path of a tool had the tool actually been invoked. Resolves via paths.\n * If you check and the tool does not exist, it will throw.\n *\n * @param tool name of the tool\n * @param check whether to check if tool exists\n * @returns Promise path to tool\n */\nfunction which(tool, check) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // recursive when check=true\n if (check) {\n const result = yield which(tool, false);\n if (!result) {\n if (ioUtil.IS_WINDOWS) {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);\n }\n else {\n throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);\n }\n }\n return result;\n }\n const matches = yield findInPath(tool);\n if (matches && matches.length > 0) {\n return matches[0];\n }\n return '';\n });\n}\nexports.which = which;\n/**\n * Returns a list of all occurrences of the given tool on the system path.\n *\n * @returns Promise the paths of the tool\n */\nfunction findInPath(tool) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!tool) {\n throw new Error(\"parameter 'tool' is required\");\n }\n // build the list of extensions to try\n const extensions = [];\n if (ioUtil.IS_WINDOWS && process.env['PATHEXT']) {\n for (const extension of process.env['PATHEXT'].split(path.delimiter)) {\n if (extension) {\n extensions.push(extension);\n }\n }\n }\n // if it's rooted, return it if exists. otherwise return empty.\n if (ioUtil.isRooted(tool)) {\n const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);\n if (filePath) {\n return [filePath];\n }\n return [];\n }\n // if any path separators, return empty\n if (tool.includes(path.sep)) {\n return [];\n }\n // build the list of directories\n //\n // Note, technically \"where\" checks the current directory on Windows. From a toolkit perspective,\n // it feels like we should not do this. Checking the current directory seems like more of a use\n // case of a shell, and the which() function exposed by the toolkit should strive for consistency\n // across platforms.\n const directories = [];\n if (process.env.PATH) {\n for (const p of process.env.PATH.split(path.delimiter)) {\n if (p) {\n directories.push(p);\n }\n }\n }\n // find all matches\n const matches = [];\n for (const directory of directories) {\n const filePath = yield ioUtil.tryGetExecutablePath(path.join(directory, tool), extensions);\n if (filePath) {\n matches.push(filePath);\n }\n }\n return matches;\n });\n}\nexports.findInPath = findInPath;\nfunction readCopyOptions(options) {\n const force = options.force == null ? true : options.force;\n const recursive = Boolean(options.recursive);\n const copySourceDirectory = options.copySourceDirectory == null\n ? true\n : Boolean(options.copySourceDirectory);\n return { force, recursive, copySourceDirectory };\n}\nfunction cpDirRecursive(sourceDir, destDir, currentDepth, force) {\n return __awaiter(this, void 0, void 0, function* () {\n // Ensure there is not a run away recursive copy\n if (currentDepth >= 255)\n return;\n currentDepth++;\n yield mkdirP(destDir);\n const files = yield ioUtil.readdir(sourceDir);\n for (const fileName of files) {\n const srcFile = `${sourceDir}/${fileName}`;\n const destFile = `${destDir}/${fileName}`;\n const srcFileStat = yield ioUtil.lstat(srcFile);\n if (srcFileStat.isDirectory()) {\n // Recurse\n yield cpDirRecursive(srcFile, destFile, currentDepth, force);\n }\n else {\n yield copyFile(srcFile, destFile, force);\n }\n }\n // Change the mode for the newly created directory\n yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);\n });\n}\n// Buffered file copy\nfunction copyFile(srcFile, destFile, force) {\n return __awaiter(this, void 0, void 0, function* () {\n if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {\n // unlink/re-link it\n try {\n yield ioUtil.lstat(destFile);\n yield ioUtil.unlink(destFile);\n }\n catch (e) {\n // Try to override file permission\n if (e.code === 'EPERM') {\n yield ioUtil.chmod(destFile, '0666');\n yield ioUtil.unlink(destFile);\n }\n // other errors = it doesn't exist, no work to do\n }\n // Copy over symlink\n const symlinkFull = yield ioUtil.readlink(srcFile);\n yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);\n }\n else if (!(yield ioUtil.exists(destFile)) || force) {\n yield ioUtil.copyFile(srcFile, destFile);\n }\n });\n}\n//# sourceMappingURL=io.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.argStringToArray = exports.ToolRunner = void 0;\nconst os = __importStar(require(\"os\"));\nconst events = __importStar(require(\"events\"));\nconst child = __importStar(require(\"child_process\"));\nconst path = __importStar(require(\"path\"));\nconst io = __importStar(require(\"@actions/io\"));\nconst ioUtil = __importStar(require(\"@actions/io/lib/io-util\"));\nconst timers_1 = require(\"timers\");\n/* eslint-disable @typescript-eslint/unbound-method */\nconst IS_WINDOWS = process.platform === 'win32';\n/*\n * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.\n */\nclass ToolRunner extends events.EventEmitter {\n constructor(toolPath, args, options) {\n super();\n if (!toolPath) {\n throw new Error(\"Parameter 'toolPath' cannot be null or empty.\");\n }\n this.toolPath = toolPath;\n this.args = args || [];\n this.options = options || {};\n }\n _debug(message) {\n if (this.options.listeners && this.options.listeners.debug) {\n this.options.listeners.debug(message);\n }\n }\n _getCommandString(options, noPrefix) {\n const toolPath = this._getSpawnFileName();\n const args = this._getSpawnArgs(options);\n let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool\n if (IS_WINDOWS) {\n // Windows + cmd file\n if (this._isCmdFile()) {\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows + verbatim\n else if (options.windowsVerbatimArguments) {\n cmd += `\"${toolPath}\"`;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n // Windows (regular)\n else {\n cmd += this._windowsQuoteCmdArg(toolPath);\n for (const a of args) {\n cmd += ` ${this._windowsQuoteCmdArg(a)}`;\n }\n }\n }\n else {\n // OSX/Linux - this can likely be improved with some form of quoting.\n // creating processes on Unix is fundamentally different than Windows.\n // on Unix, execvp() takes an arg array.\n cmd += toolPath;\n for (const a of args) {\n cmd += ` ${a}`;\n }\n }\n return cmd;\n }\n _processLineBuffer(data, strBuffer, onLine) {\n try {\n let s = strBuffer + data.toString();\n let n = s.indexOf(os.EOL);\n while (n > -1) {\n const line = s.substring(0, n);\n onLine(line);\n // the rest of the string ...\n s = s.substring(n + os.EOL.length);\n n = s.indexOf(os.EOL);\n }\n return s;\n }\n catch (err) {\n // streaming lines to console is best effort. Don't fail a build.\n this._debug(`error processing line. Failed with error ${err}`);\n return '';\n }\n }\n _getSpawnFileName() {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n return process.env['COMSPEC'] || 'cmd.exe';\n }\n }\n return this.toolPath;\n }\n _getSpawnArgs(options) {\n if (IS_WINDOWS) {\n if (this._isCmdFile()) {\n let argline = `/D /S /C \"${this._windowsQuoteCmdArg(this.toolPath)}`;\n for (const a of this.args) {\n argline += ' ';\n argline += options.windowsVerbatimArguments\n ? a\n : this._windowsQuoteCmdArg(a);\n }\n argline += '\"';\n return [argline];\n }\n }\n return this.args;\n }\n _endsWith(str, end) {\n return str.endsWith(end);\n }\n _isCmdFile() {\n const upperToolPath = this.toolPath.toUpperCase();\n return (this._endsWith(upperToolPath, '.CMD') ||\n this._endsWith(upperToolPath, '.BAT'));\n }\n _windowsQuoteCmdArg(arg) {\n // for .exe, apply the normal quoting rules that libuv applies\n if (!this._isCmdFile()) {\n return this._uvQuoteCmdArg(arg);\n }\n // otherwise apply quoting rules specific to the cmd.exe command line parser.\n // the libuv rules are generic and are not designed specifically for cmd.exe\n // command line parser.\n //\n // for a detailed description of the cmd.exe command line parser, refer to\n // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912\n // need quotes for empty arg\n if (!arg) {\n return '\"\"';\n }\n // determine whether the arg needs to be quoted\n const cmdSpecialChars = [\n ' ',\n '\\t',\n '&',\n '(',\n ')',\n '[',\n ']',\n '{',\n '}',\n '^',\n '=',\n ';',\n '!',\n \"'\",\n '+',\n ',',\n '`',\n '~',\n '|',\n '<',\n '>',\n '\"'\n ];\n let needsQuotes = false;\n for (const char of arg) {\n if (cmdSpecialChars.some(x => x === char)) {\n needsQuotes = true;\n break;\n }\n }\n // short-circuit if quotes not needed\n if (!needsQuotes) {\n return arg;\n }\n // the following quoting rules are very similar to the rules that by libuv applies.\n //\n // 1) wrap the string in quotes\n //\n // 2) double-up quotes - i.e. \" => \"\"\n //\n // this is different from the libuv quoting rules. libuv replaces \" with \\\", which unfortunately\n // doesn't work well with a cmd.exe command line.\n //\n // note, replacing \" with \"\" also works well if the arg is passed to a downstream .NET console app.\n // for example, the command line:\n // foo.exe \"myarg:\"\"my val\"\"\"\n // is parsed by a .NET console app into an arg array:\n // [ \"myarg:\\\"my val\\\"\" ]\n // which is the same end result when applying libuv quoting rules. although the actual\n // command line from libuv quoting rules would look like:\n // foo.exe \"myarg:\\\"my val\\\"\"\n //\n // 3) double-up slashes that precede a quote,\n // e.g. hello \\world => \"hello \\world\"\n // hello\\\"world => \"hello\\\\\"\"world\"\n // hello\\\\\"world => \"hello\\\\\\\\\"\"world\"\n // hello world\\ => \"hello world\\\\\"\n //\n // technically this is not required for a cmd.exe command line, or the batch argument parser.\n // the reasons for including this as a .cmd quoting rule are:\n //\n // a) this is optimized for the scenario where the argument is passed from the .cmd file to an\n // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.\n //\n // b) it's what we've been doing previously (by deferring to node default behavior) and we\n // haven't heard any complaints about that aspect.\n //\n // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be\n // escaped when used on the command line directly - even though within a .cmd file % can be escaped\n // by using %%.\n //\n // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts\n // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.\n //\n // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would\n // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the\n // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args\n // to an external program.\n //\n // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.\n // % can be escaped within a .cmd file.\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\'; // double the slash\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\"'; // double the quote\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _uvQuoteCmdArg(arg) {\n // Tool runner wraps child_process.spawn() and needs to apply the same quoting as\n // Node in certain cases where the undocumented spawn option windowsVerbatimArguments\n // is used.\n //\n // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,\n // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),\n // pasting copyright notice from Node within this function:\n //\n // Copyright Joyent, Inc. and other Node contributors. All rights reserved.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the \"Software\"), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n // IN THE SOFTWARE.\n if (!arg) {\n // Need double quotation for empty argument\n return '\"\"';\n }\n if (!arg.includes(' ') && !arg.includes('\\t') && !arg.includes('\"')) {\n // No quotation needed\n return arg;\n }\n if (!arg.includes('\"') && !arg.includes('\\\\')) {\n // No embedded double quotes or backslashes, so I can just wrap\n // quote marks around the whole thing.\n return `\"${arg}\"`;\n }\n // Expected input/output:\n // input : hello\"world\n // output: \"hello\\\"world\"\n // input : hello\"\"world\n // output: \"hello\\\"\\\"world\"\n // input : hello\\world\n // output: hello\\world\n // input : hello\\\\world\n // output: hello\\\\world\n // input : hello\\\"world\n // output: \"hello\\\\\\\"world\"\n // input : hello\\\\\"world\n // output: \"hello\\\\\\\\\\\"world\"\n // input : hello world\\\n // output: \"hello world\\\\\" - note the comment in libuv actually reads \"hello world\\\"\n // but it appears the comment is wrong, it should be \"hello world\\\\\"\n let reverse = '\"';\n let quoteHit = true;\n for (let i = arg.length; i > 0; i--) {\n // walk the string in reverse\n reverse += arg[i - 1];\n if (quoteHit && arg[i - 1] === '\\\\') {\n reverse += '\\\\';\n }\n else if (arg[i - 1] === '\"') {\n quoteHit = true;\n reverse += '\\\\';\n }\n else {\n quoteHit = false;\n }\n }\n reverse += '\"';\n return reverse\n .split('')\n .reverse()\n .join('');\n }\n _cloneExecOptions(options) {\n options = options || {};\n const result = {\n cwd: options.cwd || process.cwd(),\n env: options.env || process.env,\n silent: options.silent || false,\n windowsVerbatimArguments: options.windowsVerbatimArguments || false,\n failOnStdErr: options.failOnStdErr || false,\n ignoreReturnCode: options.ignoreReturnCode || false,\n delay: options.delay || 10000\n };\n result.outStream = options.outStream || process.stdout;\n result.errStream = options.errStream || process.stderr;\n return result;\n }\n _getSpawnOptions(options, toolPath) {\n options = options || {};\n const result = {};\n result.cwd = options.cwd;\n result.env = options.env;\n result['windowsVerbatimArguments'] =\n options.windowsVerbatimArguments || this._isCmdFile();\n if (options.windowsVerbatimArguments) {\n result.argv0 = `\"${toolPath}\"`;\n }\n return result;\n }\n /**\n * Exec a tool.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param tool path to tool to exec\n * @param options optional exec options. See ExecOptions\n * @returns number\n */\n exec() {\n return __awaiter(this, void 0, void 0, function* () {\n // root the tool path if it is unrooted and contains relative pathing\n if (!ioUtil.isRooted(this.toolPath) &&\n (this.toolPath.includes('/') ||\n (IS_WINDOWS && this.toolPath.includes('\\\\')))) {\n // prefer options.cwd if it is specified, however options.cwd may also need to be rooted\n this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);\n }\n // if the tool is only a file name, then resolve it from the PATH\n // otherwise verify it exists (add extension on Windows if necessary)\n this.toolPath = yield io.which(this.toolPath, true);\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n this._debug(`exec tool: ${this.toolPath}`);\n this._debug('arguments:');\n for (const arg of this.args) {\n this._debug(` ${arg}`);\n }\n const optionsNonNull = this._cloneExecOptions(this.options);\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);\n }\n const state = new ExecState(optionsNonNull, this.toolPath);\n state.on('debug', (message) => {\n this._debug(message);\n });\n if (this.options.cwd && !(yield ioUtil.exists(this.options.cwd))) {\n return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`));\n }\n const fileName = this._getSpawnFileName();\n const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));\n let stdbuffer = '';\n if (cp.stdout) {\n cp.stdout.on('data', (data) => {\n if (this.options.listeners && this.options.listeners.stdout) {\n this.options.listeners.stdout(data);\n }\n if (!optionsNonNull.silent && optionsNonNull.outStream) {\n optionsNonNull.outStream.write(data);\n }\n stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.stdline) {\n this.options.listeners.stdline(line);\n }\n });\n });\n }\n let errbuffer = '';\n if (cp.stderr) {\n cp.stderr.on('data', (data) => {\n state.processStderr = true;\n if (this.options.listeners && this.options.listeners.stderr) {\n this.options.listeners.stderr(data);\n }\n if (!optionsNonNull.silent &&\n optionsNonNull.errStream &&\n optionsNonNull.outStream) {\n const s = optionsNonNull.failOnStdErr\n ? optionsNonNull.errStream\n : optionsNonNull.outStream;\n s.write(data);\n }\n errbuffer = this._processLineBuffer(data, errbuffer, (line) => {\n if (this.options.listeners && this.options.listeners.errline) {\n this.options.listeners.errline(line);\n }\n });\n });\n }\n cp.on('error', (err) => {\n state.processError = err.message;\n state.processExited = true;\n state.processClosed = true;\n state.CheckComplete();\n });\n cp.on('exit', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n cp.on('close', (code) => {\n state.processExitCode = code;\n state.processExited = true;\n state.processClosed = true;\n this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);\n state.CheckComplete();\n });\n state.on('done', (error, exitCode) => {\n if (stdbuffer.length > 0) {\n this.emit('stdline', stdbuffer);\n }\n if (errbuffer.length > 0) {\n this.emit('errline', errbuffer);\n }\n cp.removeAllListeners();\n if (error) {\n reject(error);\n }\n else {\n resolve(exitCode);\n }\n });\n if (this.options.input) {\n if (!cp.stdin) {\n throw new Error('child process missing stdin');\n }\n cp.stdin.end(this.options.input);\n }\n }));\n });\n }\n}\nexports.ToolRunner = ToolRunner;\n/**\n * Convert an arg string to an array of args. Handles escaping\n *\n * @param argString string of arguments\n * @returns string[] array of arguments\n */\nfunction argStringToArray(argString) {\n const args = [];\n let inQuotes = false;\n let escaped = false;\n let arg = '';\n function append(c) {\n // we only escape double quotes.\n if (escaped && c !== '\"') {\n arg += '\\\\';\n }\n arg += c;\n escaped = false;\n }\n for (let i = 0; i < argString.length; i++) {\n const c = argString.charAt(i);\n if (c === '\"') {\n if (!escaped) {\n inQuotes = !inQuotes;\n }\n else {\n append(c);\n }\n continue;\n }\n if (c === '\\\\' && escaped) {\n append(c);\n continue;\n }\n if (c === '\\\\' && inQuotes) {\n escaped = true;\n continue;\n }\n if (c === ' ' && !inQuotes) {\n if (arg.length > 0) {\n args.push(arg);\n arg = '';\n }\n continue;\n }\n append(c);\n }\n if (arg.length > 0) {\n args.push(arg.trim());\n }\n return args;\n}\nexports.argStringToArray = argStringToArray;\nclass ExecState extends events.EventEmitter {\n constructor(options, toolPath) {\n super();\n this.processClosed = false; // tracks whether the process has exited and stdio is closed\n this.processError = '';\n this.processExitCode = 0;\n this.processExited = false; // tracks whether the process has exited\n this.processStderr = false; // tracks whether stderr was written to\n this.delay = 10000; // 10 seconds\n this.done = false;\n this.timeout = null;\n if (!toolPath) {\n throw new Error('toolPath must not be empty');\n }\n this.options = options;\n this.toolPath = toolPath;\n if (options.delay) {\n this.delay = options.delay;\n }\n }\n CheckComplete() {\n if (this.done) {\n return;\n }\n if (this.processClosed) {\n this._setResult();\n }\n else if (this.processExited) {\n this.timeout = timers_1.setTimeout(ExecState.HandleTimeout, this.delay, this);\n }\n }\n _debug(message) {\n this.emit('debug', message);\n }\n _setResult() {\n // determine whether there is an error\n let error;\n if (this.processExited) {\n if (this.processError) {\n error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);\n }\n else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) {\n error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);\n }\n else if (this.processStderr && this.options.failOnStdErr) {\n error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);\n }\n }\n // clear the timeout\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.done = true;\n this.emit('done', error, this.processExitCode);\n }\n static HandleTimeout(state) {\n if (state.done) {\n return;\n }\n if (!state.processClosed && state.processExited) {\n const message = `The STDIO streams did not close within ${state.delay /\n 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;\n state._debug(message);\n }\n state._setResult();\n }\n}\n//# sourceMappingURL=toolrunner.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getExecOutput = exports.exec = void 0;\nconst string_decoder_1 = require(\"string_decoder\");\nconst tr = __importStar(require(\"./toolrunner\"));\n/**\n * Exec a command.\n * Output will be streamed to the live console.\n * Returns promise with return code\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code\n */\nfunction exec(commandLine, args, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const commandArgs = tr.argStringToArray(commandLine);\n if (commandArgs.length === 0) {\n throw new Error(`Parameter 'commandLine' cannot be null or empty.`);\n }\n // Path to tool to execute should be first arg\n const toolPath = commandArgs[0];\n args = commandArgs.slice(1).concat(args || []);\n const runner = new tr.ToolRunner(toolPath, args, options);\n return runner.exec();\n });\n}\nexports.exec = exec;\n/**\n * Exec a command and get the output.\n * Output will be streamed to the live console.\n * Returns promise with the exit code and collected stdout and stderr\n *\n * @param commandLine command to execute (can include additional args). Must be correctly escaped.\n * @param args optional arguments for tool. Escaping is handled by the lib.\n * @param options optional exec options. See ExecOptions\n * @returns Promise exit code, stdout, and stderr\n */\nfunction getExecOutput(commandLine, args, options) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n let stdout = '';\n let stderr = '';\n //Using string decoder covers the case where a mult-byte character is split\n const stdoutDecoder = new string_decoder_1.StringDecoder('utf8');\n const stderrDecoder = new string_decoder_1.StringDecoder('utf8');\n const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout;\n const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr;\n const stdErrListener = (data) => {\n stderr += stderrDecoder.write(data);\n if (originalStdErrListener) {\n originalStdErrListener(data);\n }\n };\n const stdOutListener = (data) => {\n stdout += stdoutDecoder.write(data);\n if (originalStdoutListener) {\n originalStdoutListener(data);\n }\n };\n const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener });\n const exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners }));\n //flush any remaining characters\n stdout += stdoutDecoder.end();\n stderr += stderrDecoder.end();\n return {\n exitCode,\n stdout,\n stderr\n };\n });\n}\nexports.getExecOutput = getExecOutput;\n//# sourceMappingURL=exec.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDetails = exports.isLinux = exports.isMacOS = exports.isWindows = exports.arch = exports.platform = void 0;\nconst os_1 = __importDefault(require(\"os\"));\nconst exec = __importStar(require(\"@actions/exec\"));\nconst getWindowsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout: version } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Version\"', undefined, {\n silent: true\n });\n const { stdout: name } = yield exec.getExecOutput('powershell -command \"(Get-CimInstance -ClassName Win32_OperatingSystem).Caption\"', undefined, {\n silent: true\n });\n return {\n name: name.trim(),\n version: version.trim()\n };\n});\nconst getMacOsInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n const { stdout } = yield exec.getExecOutput('sw_vers', undefined, {\n silent: true\n });\n const version = (_b = (_a = stdout.match(/ProductVersion:\\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : '';\n const name = (_d = (_c = stdout.match(/ProductName:\\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : '';\n return {\n name,\n version\n };\n});\nconst getLinuxInfo = () => __awaiter(void 0, void 0, void 0, function* () {\n const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {\n silent: true\n });\n const [name, version] = stdout.trim().split('\\n');\n return {\n name,\n version\n };\n});\nexports.platform = os_1.default.platform();\nexports.arch = os_1.default.arch();\nexports.isWindows = exports.platform === 'win32';\nexports.isMacOS = exports.platform === 'darwin';\nexports.isLinux = exports.platform === 'linux';\nfunction getDetails() {\n return __awaiter(this, void 0, void 0, function* () {\n return Object.assign(Object.assign({}, (yield (exports.isWindows\n ? getWindowsInfo()\n : exports.isMacOS\n ? getMacOsInfo()\n : getLinuxInfo()))), { platform: exports.platform,\n arch: exports.arch,\n isWindows: exports.isWindows,\n isMacOS: exports.isMacOS,\n isLinux: exports.isLinux });\n });\n}\nexports.getDetails = getDetails;\n//# sourceMappingURL=platform.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.platform = exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = exports.markdownSummary = exports.summary = exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode || (exports.ExitCode = ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = (0, utils_1.toCommandValue)(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('ENV', (0, file_command_1.prepareKeyValueMessage)(name, val));\n }\n (0, command_1.issueCommand)('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n (0, command_1.issueCommand)('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n (0, file_command_1.issueFileCommand)('PATH', inputPath);\n }\n else {\n (0, command_1.issueCommand)('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('OUTPUT', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n process.stdout.write(os.EOL);\n (0, command_1.issueCommand)('set-output', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n (0, command_1.issue)('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n (0, command_1.issueCommand)('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n (0, command_1.issueCommand)('error', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n (0, command_1.issueCommand)('warning', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n (0, command_1.issueCommand)('notice', (0, utils_1.toCommandProperties)(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n (0, command_1.issue)('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n (0, command_1.issue)('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return (0, file_command_1.issueFileCommand)('STATE', (0, file_command_1.prepareKeyValueMessage)(name, value));\n }\n (0, command_1.issueCommand)('save-state', { name }, (0, utils_1.toCommandValue)(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n/**\n * Platform utilities exports\n */\nexports.platform = __importStar(require(\"./platform\"));\n//# sourceMappingURL=core.js.map","/*!\n * Tmp\n *\n * Copyright (c) 2011-2017 KARASZI Istvan \n *\n * MIT Licensed\n */\n\n/*\n * Module dependencies.\n */\nconst fs = require('fs');\nconst os = require('os');\nconst path = require('path');\nconst crypto = require('crypto');\nconst _c = { fs: fs.constants, os: os.constants };\n\n/*\n * The working inner variables.\n */\nconst // the random characters to choose from\n RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n TEMPLATE_PATTERN = /XXXXXX/,\n DEFAULT_TRIES = 3,\n CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR),\n // constants are off on the windows platform and will not match the actual errno codes\n IS_WIN32 = os.platform() === 'win32',\n EBADF = _c.EBADF || _c.os.errno.EBADF,\n ENOENT = _c.ENOENT || _c.os.errno.ENOENT,\n DIR_MODE = 0o700 /* 448 */,\n FILE_MODE = 0o600 /* 384 */,\n EXIT = 'exit',\n // this will hold the objects need to be removed on exit\n _removeObjects = [],\n // API change in fs.rmdirSync leads to error when passing in a second parameter, e.g. the callback\n FN_RMDIR_SYNC = fs.rmdirSync.bind(fs);\n\nlet _gracefulCleanup = false;\n\n/**\n * Recursively remove a directory and its contents.\n *\n * @param {string} dirPath path of directory to remove\n * @param {Function} callback\n * @private\n */\nfunction rimraf(dirPath, callback) {\n return fs.rm(dirPath, { recursive: true }, callback);\n}\n\n/**\n * Recursively remove a directory and its contents, synchronously.\n *\n * @param {string} dirPath path of directory to remove\n * @private\n */\nfunction FN_RIMRAF_SYNC(dirPath) {\n return fs.rmSync(dirPath, { recursive: true });\n}\n\n/**\n * Gets a temporary file name.\n *\n * @param {(Options|tmpNameCallback)} options options or callback\n * @param {?tmpNameCallback} callback the callback function\n */\nfunction tmpName(options, callback) {\n const args = _parseArguments(options, callback),\n opts = args[0],\n cb = args[1];\n\n _assertAndSanitizeOptions(opts, function (err, sanitizedOptions) {\n if (err) return cb(err);\n\n let tries = sanitizedOptions.tries;\n (function _getUniqueName() {\n try {\n const name = _generateTmpName(sanitizedOptions);\n\n // check whether the path exists then retry if needed\n fs.stat(name, function (err) {\n /* istanbul ignore else */\n if (!err) {\n /* istanbul ignore else */\n if (tries-- > 0) return _getUniqueName();\n\n return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));\n }\n\n cb(null, name);\n });\n } catch (err) {\n cb(err);\n }\n })();\n });\n}\n\n/**\n * Synchronous version of tmpName.\n *\n * @param {Object} options\n * @returns {string} the generated random name\n * @throws {Error} if the options are invalid or could not generate a filename\n */\nfunction tmpNameSync(options) {\n const args = _parseArguments(options),\n opts = args[0];\n\n const sanitizedOptions = _assertAndSanitizeOptionsSync(opts);\n\n let tries = sanitizedOptions.tries;\n do {\n const name = _generateTmpName(sanitizedOptions);\n try {\n fs.statSync(name);\n } catch (e) {\n return name;\n }\n } while (tries-- > 0);\n\n throw new Error('Could not get a unique tmp filename, max tries reached');\n}\n\n/**\n * Creates and opens a temporary file.\n *\n * @param {(Options|null|undefined|fileCallback)} options the config options or the callback function or null or undefined\n * @param {?fileCallback} callback\n */\nfunction file(options, callback) {\n const args = _parseArguments(options, callback),\n opts = args[0],\n cb = args[1];\n\n // gets a temporary filename\n tmpName(opts, function _tmpNameCreated(err, name) {\n /* istanbul ignore else */\n if (err) return cb(err);\n\n // create and open the file\n fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {\n /* istanbu ignore else */\n if (err) return cb(err);\n\n if (opts.discardDescriptor) {\n return fs.close(fd, function _discardCallback(possibleErr) {\n // the chance of getting an error on close here is rather low and might occur in the most edgiest cases only\n return cb(possibleErr, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts, false));\n });\n } else {\n // detachDescriptor passes the descriptor whereas discardDescriptor closes it, either way, we no longer care\n // about the descriptor\n const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;\n cb(null, name, fd, _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts, false));\n }\n });\n });\n}\n\n/**\n * Synchronous version of file.\n *\n * @param {Options} options\n * @returns {FileSyncObject} object consists of name, fd and removeCallback\n * @throws {Error} if cannot create a file\n */\nfunction fileSync(options) {\n const args = _parseArguments(options),\n opts = args[0];\n\n const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;\n const name = tmpNameSync(opts);\n let fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);\n /* istanbul ignore else */\n if (opts.discardDescriptor) {\n fs.closeSync(fd);\n fd = undefined;\n }\n\n return {\n name: name,\n fd: fd,\n removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts, true)\n };\n}\n\n/**\n * Creates a temporary directory.\n *\n * @param {(Options|dirCallback)} options the options or the callback function\n * @param {?dirCallback} callback\n */\nfunction dir(options, callback) {\n const args = _parseArguments(options, callback),\n opts = args[0],\n cb = args[1];\n\n // gets a temporary filename\n tmpName(opts, function _tmpNameCreated(err, name) {\n /* istanbul ignore else */\n if (err) return cb(err);\n\n // create the directory\n fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {\n /* istanbul ignore else */\n if (err) return cb(err);\n\n cb(null, name, _prepareTmpDirRemoveCallback(name, opts, false));\n });\n });\n}\n\n/**\n * Synchronous version of dir.\n *\n * @param {Options} options\n * @returns {DirSyncObject} object consists of name and removeCallback\n * @throws {Error} if it cannot create a directory\n */\nfunction dirSync(options) {\n const args = _parseArguments(options),\n opts = args[0];\n\n const name = tmpNameSync(opts);\n fs.mkdirSync(name, opts.mode || DIR_MODE);\n\n return {\n name: name,\n removeCallback: _prepareTmpDirRemoveCallback(name, opts, true)\n };\n}\n\n/**\n * Removes files asynchronously.\n *\n * @param {Object} fdPath\n * @param {Function} next\n * @private\n */\nfunction _removeFileAsync(fdPath, next) {\n const _handler = function (err) {\n if (err && !_isENOENT(err)) {\n // reraise any unanticipated error\n return next(err);\n }\n next();\n };\n\n if (0 <= fdPath[0])\n fs.close(fdPath[0], function () {\n fs.unlink(fdPath[1], _handler);\n });\n else fs.unlink(fdPath[1], _handler);\n}\n\n/**\n * Removes files synchronously.\n *\n * @param {Object} fdPath\n * @private\n */\nfunction _removeFileSync(fdPath) {\n let rethrownException = null;\n try {\n if (0 <= fdPath[0]) fs.closeSync(fdPath[0]);\n } catch (e) {\n // reraise any unanticipated error\n if (!_isEBADF(e) && !_isENOENT(e)) throw e;\n } finally {\n try {\n fs.unlinkSync(fdPath[1]);\n } catch (e) {\n // reraise any unanticipated error\n if (!_isENOENT(e)) rethrownException = e;\n }\n }\n if (rethrownException !== null) {\n throw rethrownException;\n }\n}\n\n/**\n * Prepares the callback for removal of the temporary file.\n *\n * Returns either a sync callback or a async callback depending on whether\n * fileSync or file was called, which is expressed by the sync parameter.\n *\n * @param {string} name the path of the file\n * @param {number} fd file descriptor\n * @param {Object} opts\n * @param {boolean} sync\n * @returns {fileCallback | fileCallbackSync}\n * @private\n */\nfunction _prepareTmpFileRemoveCallback(name, fd, opts, sync) {\n const removeCallbackSync = _prepareRemoveCallback(_removeFileSync, [fd, name], sync);\n const removeCallback = _prepareRemoveCallback(_removeFileAsync, [fd, name], sync, removeCallbackSync);\n\n if (!opts.keep) _removeObjects.unshift(removeCallbackSync);\n\n return sync ? removeCallbackSync : removeCallback;\n}\n\n/**\n * Prepares the callback for removal of the temporary directory.\n *\n * Returns either a sync callback or a async callback depending on whether\n * tmpFileSync or tmpFile was called, which is expressed by the sync parameter.\n *\n * @param {string} name\n * @param {Object} opts\n * @param {boolean} sync\n * @returns {Function} the callback\n * @private\n */\nfunction _prepareTmpDirRemoveCallback(name, opts, sync) {\n const removeFunction = opts.unsafeCleanup ? rimraf : fs.rmdir.bind(fs);\n const removeFunctionSync = opts.unsafeCleanup ? FN_RIMRAF_SYNC : FN_RMDIR_SYNC;\n const removeCallbackSync = _prepareRemoveCallback(removeFunctionSync, name, sync);\n const removeCallback = _prepareRemoveCallback(removeFunction, name, sync, removeCallbackSync);\n if (!opts.keep) _removeObjects.unshift(removeCallbackSync);\n\n return sync ? removeCallbackSync : removeCallback;\n}\n\n/**\n * Creates a guarded function wrapping the removeFunction call.\n *\n * The cleanup callback is save to be called multiple times.\n * Subsequent invocations will be ignored.\n *\n * @param {Function} removeFunction\n * @param {string} fileOrDirName\n * @param {boolean} sync\n * @param {cleanupCallbackSync?} cleanupCallbackSync\n * @returns {cleanupCallback | cleanupCallbackSync}\n * @private\n */\nfunction _prepareRemoveCallback(removeFunction, fileOrDirName, sync, cleanupCallbackSync) {\n let called = false;\n\n // if sync is true, the next parameter will be ignored\n return function _cleanupCallback(next) {\n /* istanbul ignore else */\n if (!called) {\n // remove cleanupCallback from cache\n const toRemove = cleanupCallbackSync || _cleanupCallback;\n const index = _removeObjects.indexOf(toRemove);\n /* istanbul ignore else */\n if (index >= 0) _removeObjects.splice(index, 1);\n\n called = true;\n if (sync || removeFunction === FN_RMDIR_SYNC || removeFunction === FN_RIMRAF_SYNC) {\n return removeFunction(fileOrDirName);\n } else {\n return removeFunction(fileOrDirName, next || function () {});\n }\n }\n };\n}\n\n/**\n * The garbage collector.\n *\n * @private\n */\nfunction _garbageCollector() {\n /* istanbul ignore else */\n if (!_gracefulCleanup) return;\n\n // the function being called removes itself from _removeObjects,\n // loop until _removeObjects is empty\n while (_removeObjects.length) {\n try {\n _removeObjects[0]();\n } catch (e) {\n // already removed?\n }\n }\n}\n\n/**\n * Random name generator based on crypto.\n * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript\n *\n * @param {number} howMany\n * @returns {string} the generated random name\n * @private\n */\nfunction _randomChars(howMany) {\n let value = [],\n rnd = null;\n\n // make sure that we do not fail because we ran out of entropy\n try {\n rnd = crypto.randomBytes(howMany);\n } catch (e) {\n rnd = crypto.pseudoRandomBytes(howMany);\n }\n\n for (let i = 0; i < howMany; i++) {\n value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);\n }\n\n return value.join('');\n}\n\n/**\n * Checks whether the `obj` parameter is defined or not.\n *\n * @param {Object} obj\n * @returns {boolean} true if the object is undefined\n * @private\n */\nfunction _isUndefined(obj) {\n return typeof obj === 'undefined';\n}\n\n/**\n * Parses the function arguments.\n *\n * This function helps to have optional arguments.\n *\n * @param {(Options|null|undefined|Function)} options\n * @param {?Function} callback\n * @returns {Array} parsed arguments\n * @private\n */\nfunction _parseArguments(options, callback) {\n /* istanbul ignore else */\n if (typeof options === 'function') {\n return [{}, options];\n }\n\n /* istanbul ignore else */\n if (_isUndefined(options)) {\n return [{}, callback];\n }\n\n // copy options so we do not leak the changes we make internally\n const actualOptions = {};\n for (const key of Object.getOwnPropertyNames(options)) {\n actualOptions[key] = options[key];\n }\n\n return [actualOptions, callback];\n}\n\n/**\n * Resolve the specified path name in respect to tmpDir.\n *\n * The specified name might include relative path components, e.g. ../\n * so we need to resolve in order to be sure that is is located inside tmpDir\n *\n * @private\n */\nfunction _resolvePath(name, tmpDir, cb) {\n const pathToResolve = path.isAbsolute(name) ? name : path.join(tmpDir, name);\n\n fs.stat(pathToResolve, function (err) {\n if (err) {\n fs.realpath(path.dirname(pathToResolve), function (err, parentDir) {\n if (err) return cb(err);\n\n cb(null, path.join(parentDir, path.basename(pathToResolve)));\n });\n } else {\n fs.realpath(pathToResolve, cb);\n }\n });\n}\n\n/**\n * Resolve the specified path name in respect to tmpDir.\n *\n * The specified name might include relative path components, e.g. ../\n * so we need to resolve in order to be sure that is is located inside tmpDir\n *\n * @private\n */\nfunction _resolvePathSync(name, tmpDir) {\n const pathToResolve = path.isAbsolute(name) ? name : path.join(tmpDir, name);\n\n try {\n fs.statSync(pathToResolve);\n return fs.realpathSync(pathToResolve);\n } catch (_err) {\n const parentDir = fs.realpathSync(path.dirname(pathToResolve));\n\n return path.join(parentDir, path.basename(pathToResolve));\n }\n}\n\n/**\n * Generates a new temporary name.\n *\n * @param {Object} opts\n * @returns {string} the new random name according to opts\n * @private\n */\nfunction _generateTmpName(opts) {\n const tmpDir = opts.tmpdir;\n\n /* istanbul ignore else */\n if (!_isUndefined(opts.name)) {\n return path.join(tmpDir, opts.dir, opts.name);\n }\n\n /* istanbul ignore else */\n if (!_isUndefined(opts.template)) {\n return path.join(tmpDir, opts.dir, opts.template).replace(TEMPLATE_PATTERN, _randomChars(6));\n }\n\n // prefix and postfix\n const name = [\n opts.prefix ? opts.prefix : 'tmp',\n '-',\n process.pid,\n '-',\n _randomChars(12),\n opts.postfix ? '-' + opts.postfix : ''\n ].join('');\n\n return path.join(tmpDir, opts.dir, name);\n}\n\n/**\n * Asserts and sanitizes the basic options.\n *\n * @private\n */\nfunction _assertOptionsBase(options) {\n if (!_isUndefined(options.name)) {\n const name = options.name;\n\n // assert that name is not absolute and does not contain a path\n if (path.isAbsolute(name)) throw new Error(`name option must not contain an absolute path, found \"${name}\".`);\n\n // must not fail on valid . or .. or similar such constructs\n const basename = path.basename(name);\n if (basename === '..' || basename === '.' || basename !== name)\n throw new Error(`name option must not contain a path, found \"${name}\".`);\n }\n\n /* istanbul ignore else */\n if (!_isUndefined(options.template) && !options.template.match(TEMPLATE_PATTERN)) {\n throw new Error(`Invalid template, found \"${options.template}\".`);\n }\n\n /* istanbul ignore else */\n if ((!_isUndefined(options.tries) && isNaN(options.tries)) || options.tries < 0) {\n throw new Error(`Invalid tries, found \"${options.tries}\".`);\n }\n\n // if a name was specified we will try once\n options.tries = _isUndefined(options.name) ? options.tries || DEFAULT_TRIES : 1;\n options.keep = !!options.keep;\n options.detachDescriptor = !!options.detachDescriptor;\n options.discardDescriptor = !!options.discardDescriptor;\n options.unsafeCleanup = !!options.unsafeCleanup;\n\n // for completeness' sake only, also keep (multiple) blanks if the user, purportedly sane, requests us to\n options.prefix = _isUndefined(options.prefix) ? '' : options.prefix;\n options.postfix = _isUndefined(options.postfix) ? '' : options.postfix;\n}\n\n/**\n * Gets the relative directory to tmpDir.\n *\n * @private\n */\nfunction _getRelativePath(option, name, tmpDir, cb) {\n if (_isUndefined(name)) return cb(null);\n\n _resolvePath(name, tmpDir, function (err, resolvedPath) {\n if (err) return cb(err);\n\n const relativePath = path.relative(tmpDir, resolvedPath);\n\n if (!resolvedPath.startsWith(tmpDir)) {\n return cb(new Error(`${option} option must be relative to \"${tmpDir}\", found \"${relativePath}\".`));\n }\n\n cb(null, relativePath);\n });\n}\n\n/**\n * Gets the relative path to tmpDir.\n *\n * @private\n */\nfunction _getRelativePathSync(option, name, tmpDir) {\n if (_isUndefined(name)) return;\n\n const resolvedPath = _resolvePathSync(name, tmpDir);\n const relativePath = path.relative(tmpDir, resolvedPath);\n\n if (!resolvedPath.startsWith(tmpDir)) {\n throw new Error(`${option} option must be relative to \"${tmpDir}\", found \"${relativePath}\".`);\n }\n\n return relativePath;\n}\n\n/**\n * Asserts whether the specified options are valid, also sanitizes options and provides sane defaults for missing\n * options.\n *\n * @private\n */\nfunction _assertAndSanitizeOptions(options, cb) {\n _getTmpDir(options, function (err, tmpDir) {\n if (err) return cb(err);\n\n options.tmpdir = tmpDir;\n\n try {\n _assertOptionsBase(options, tmpDir);\n } catch (err) {\n return cb(err);\n }\n\n // sanitize dir, also keep (multiple) blanks if the user, purportedly sane, requests us to\n _getRelativePath('dir', options.dir, tmpDir, function (err, dir) {\n if (err) return cb(err);\n\n options.dir = _isUndefined(dir) ? '' : dir;\n\n // sanitize further if template is relative to options.dir\n _getRelativePath('template', options.template, tmpDir, function (err, template) {\n if (err) return cb(err);\n\n options.template = template;\n\n cb(null, options);\n });\n });\n });\n}\n\n/**\n * Asserts whether the specified options are valid, also sanitizes options and provides sane defaults for missing\n * options.\n *\n * @private\n */\nfunction _assertAndSanitizeOptionsSync(options) {\n const tmpDir = (options.tmpdir = _getTmpDirSync(options));\n\n _assertOptionsBase(options, tmpDir);\n\n const dir = _getRelativePathSync('dir', options.dir, tmpDir);\n options.dir = _isUndefined(dir) ? '' : dir;\n\n options.template = _getRelativePathSync('template', options.template, tmpDir);\n\n return options;\n}\n\n/**\n * Helper for testing against EBADF to compensate changes made to Node 7.x under Windows.\n *\n * @private\n */\nfunction _isEBADF(error) {\n return _isExpectedError(error, -EBADF, 'EBADF');\n}\n\n/**\n * Helper for testing against ENOENT to compensate changes made to Node 7.x under Windows.\n *\n * @private\n */\nfunction _isENOENT(error) {\n return _isExpectedError(error, -ENOENT, 'ENOENT');\n}\n\n/**\n * Helper to determine whether the expected error code matches the actual code and errno,\n * which will differ between the supported node versions.\n *\n * - Node >= 7.0:\n * error.code {string}\n * error.errno {number} any numerical value will be negated\n *\n * CAVEAT\n *\n * On windows, the errno for EBADF is -4083 but os.constants.errno.EBADF is different and we must assume that ENOENT\n * is no different here.\n *\n * @param {SystemError} error\n * @param {number} errno\n * @param {string} code\n * @private\n */\nfunction _isExpectedError(error, errno, code) {\n return IS_WIN32 ? error.code === code : error.code === code && error.errno === errno;\n}\n\n/**\n * Sets the graceful cleanup.\n *\n * If graceful cleanup is set, tmp will remove all controlled temporary objects on process exit, otherwise the\n * temporary objects will remain in place, waiting to be cleaned up on system restart or otherwise scheduled temporary\n * object removals.\n */\nfunction setGracefulCleanup() {\n _gracefulCleanup = true;\n}\n\n/**\n * Returns the currently configured tmp dir from os.tmpdir().\n *\n * @private\n */\nfunction _getTmpDir(options, cb) {\n return fs.realpath((options && options.tmpdir) || os.tmpdir(), cb);\n}\n\n/**\n * Returns the currently configured tmp dir from os.tmpdir().\n *\n * @private\n */\nfunction _getTmpDirSync(options) {\n return fs.realpathSync((options && options.tmpdir) || os.tmpdir());\n}\n\n// Install process exit listener\nprocess.addListener(EXIT, _garbageCollector);\n\n/**\n * Configuration options.\n *\n * @typedef {Object} Options\n * @property {?boolean} keep the temporary object (file or dir) will not be garbage collected\n * @property {?number} tries the number of tries before give up the name generation\n * @property (?int) mode the access mode, defaults are 0o700 for directories and 0o600 for files\n * @property {?string} template the \"mkstemp\" like filename template\n * @property {?string} name fixed name relative to tmpdir or the specified dir option\n * @property {?string} dir tmp directory relative to the root tmp directory in use\n * @property {?string} prefix prefix for the generated name\n * @property {?string} postfix postfix for the generated name\n * @property {?string} tmpdir the root tmp directory which overrides the os tmpdir\n * @property {?boolean} unsafeCleanup recursively removes the created temporary directory, even when it's not empty\n * @property {?boolean} detachDescriptor detaches the file descriptor, caller is responsible for closing the file, tmp will no longer try closing the file during garbage collection\n * @property {?boolean} discardDescriptor discards the file descriptor (closes file, fd is -1), tmp will no longer try closing the file during garbage collection\n */\n\n/**\n * @typedef {Object} FileSyncObject\n * @property {string} name the name of the file\n * @property {string} fd the file descriptor or -1 if the fd has been discarded\n * @property {fileCallback} removeCallback the callback function to remove the file\n */\n\n/**\n * @typedef {Object} DirSyncObject\n * @property {string} name the name of the directory\n * @property {fileCallback} removeCallback the callback function to remove the directory\n */\n\n/**\n * @callback tmpNameCallback\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n */\n\n/**\n * @callback fileCallback\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {number} fd the file descriptor or -1 if the fd had been discarded\n * @param {cleanupCallback} fn the cleanup callback function\n */\n\n/**\n * @callback fileCallbackSync\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {number} fd the file descriptor or -1 if the fd had been discarded\n * @param {cleanupCallbackSync} fn the cleanup callback function\n */\n\n/**\n * @callback dirCallback\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {cleanupCallback} fn the cleanup callback function\n */\n\n/**\n * @callback dirCallbackSync\n * @param {?Error} err the error object if anything goes wrong\n * @param {string} name the temporary file name\n * @param {cleanupCallbackSync} fn the cleanup callback function\n */\n\n/**\n * Removes the temporary created file or directory.\n *\n * @callback cleanupCallback\n * @param {simpleCallback} [next] function to call whenever the tmp object needs to be removed\n */\n\n/**\n * Removes the temporary created file or directory.\n *\n * @callback cleanupCallbackSync\n */\n\n/**\n * Callback function for function composition.\n * @see {@link https://github.com/raszi/node-tmp/issues/57|raszi/node-tmp#57}\n *\n * @callback simpleCallback\n */\n\n// exporting all the needed methods\n\n// evaluate _getTmpDir() lazily, mainly for simplifying testing but it also will\n// allow users to reconfigure the temporary directory\nObject.defineProperty(module.exports, 'tmpdir', {\n enumerable: true,\n configurable: false,\n get: function () {\n return _getTmpDirSync();\n }\n});\n\nmodule.exports.dir = dir;\nmodule.exports.dirSync = dirSync;\n\nmodule.exports.file = file;\nmodule.exports.fileSync = fileSync;\n\nmodule.exports.tmpName = tmpName;\nmodule.exports.tmpNameSync = tmpNameSync;\n\nmodule.exports.setGracefulCleanup = setGracefulCleanup;\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n ? Error.captureStackTrace\n : (..._args) => { };\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nexport const _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp =\n// /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\nexport const hostname = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 0,\n patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const orig = payload.value;\n const url = new URL(orig);\n const href = url.href;\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // payload.value = url.href;\n if (!orig.endsWith(\"/\") && href.endsWith(\"/\")) {\n payload.value = href.slice(0, -1);\n }\n else {\n payload.value = href;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n if (normalized.optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n return def.innerType._zod.run(payload, ctx);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new Map();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new Map();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n return { ...pm, ...this._map.get(schema) };\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// export function _refine(\n// Class: util.SchemaClass,\n// fn: (arg: NoInfer) => util.MaybeAsync,\n// _params: string | $ZodCustomParams = {}\n// ): checks.$ZodCheck {\n// return _custom(Class, fn, _params);\n// }\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const _Transform = Classes.Transform ?? schemas.$ZodTransform;\n const tx = new _Transform({\n type: \"transform\",\n transform: (input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: tx,\n });\n return {};\n }\n },\n error: params.error,\n });\n // params.error;\n const innerPipe = new _Pipe({\n type: \"pipe\",\n in: new _String({ type: \"string\", error: params.error }),\n out: tx,\n error: params.error,\n });\n const outerPipe = new _Pipe({\n type: \"pipe\",\n in: innerPipe,\n out: new _Boolean({\n type: \"boolean\",\n error: params.error,\n }),\n error: params.error,\n });\n return outerPipe;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","// zod-compat.ts\n// ----------------------------------------------------\n// Unified types + helpers to accept Zod v3 and v4 (Mini)\n// ----------------------------------------------------\nimport * as z3rt from 'zod/v3';\nimport * as z4mini from 'zod/v4-mini';\n// --- Runtime detection ---\nexport function isZ4Schema(s) {\n // Present on Zod 4 (Classic & Mini) schemas; absent on Zod 3\n const schema = s;\n return !!schema._zod;\n}\n// --- Schema construction ---\nexport function objectFromShape(shape) {\n const values = Object.values(shape);\n if (values.length === 0)\n return z4mini.object({}); // default to v4 Mini\n const allV4 = values.every(isZ4Schema);\n const allV3 = values.every(s => !isZ4Schema(s));\n if (allV4)\n return z4mini.object(shape);\n if (allV3)\n return z3rt.object(shape);\n throw new Error('Mixed Zod versions detected in object shape.');\n}\n// --- Unified parsing ---\nexport function safeParse(schema, data) {\n if (isZ4Schema(schema)) {\n // Mini exposes top-level safeParse\n const result = z4mini.safeParse(schema, data);\n return result;\n }\n const v3Schema = schema;\n const result = v3Schema.safeParse(data);\n return result;\n}\nexport async function safeParseAsync(schema, data) {\n if (isZ4Schema(schema)) {\n // Mini exposes top-level safeParseAsync\n const result = await z4mini.safeParseAsync(schema, data);\n return result;\n }\n const v3Schema = schema;\n const result = await v3Schema.safeParseAsync(data);\n return result;\n}\n// --- Shape extraction ---\nexport function getObjectShape(schema) {\n if (!schema)\n return undefined;\n // Zod v3 exposes `.shape`; Zod v4 keeps the shape on `_zod.def.shape`\n let rawShape;\n if (isZ4Schema(schema)) {\n const v4Schema = schema;\n rawShape = v4Schema._zod?.def?.shape;\n }\n else {\n const v3Schema = schema;\n rawShape = v3Schema.shape;\n }\n if (!rawShape)\n return undefined;\n if (typeof rawShape === 'function') {\n try {\n return rawShape();\n }\n catch {\n return undefined;\n }\n }\n return rawShape;\n}\n// --- Schema normalization ---\n/**\n * Normalizes a schema to an object schema. Handles both:\n * - Already-constructed object schemas (v3 or v4)\n * - Raw shapes that need to be wrapped into object schemas\n */\nexport function normalizeObjectSchema(schema) {\n if (!schema)\n return undefined;\n // First check if it's a raw shape (Record)\n // Raw shapes don't have _def or _zod properties and aren't schemas themselves\n if (typeof schema === 'object') {\n // Check if it's actually a ZodRawShapeCompat (not a schema instance)\n // by checking if it lacks schema-like internal properties\n const asV3 = schema;\n const asV4 = schema;\n // If it's not a schema instance (no _def or _zod), it might be a raw shape\n if (!asV3._def && !asV4._zod) {\n // Check if all values are schemas (heuristic to confirm it's a raw shape)\n const values = Object.values(schema);\n if (values.length > 0 &&\n values.every(v => typeof v === 'object' &&\n v !== null &&\n (v._def !== undefined ||\n v._zod !== undefined ||\n typeof v.parse === 'function'))) {\n return objectFromShape(schema);\n }\n }\n }\n // If we get here, it should be an AnySchema (not a raw shape)\n // Check if it's already an object schema\n if (isZ4Schema(schema)) {\n // Check if it's a v4 object\n const v4Schema = schema;\n const def = v4Schema._zod?.def;\n if (def && (def.type === 'object' || def.shape !== undefined)) {\n return schema;\n }\n }\n else {\n // Check if it's a v3 object\n const v3Schema = schema;\n if (v3Schema.shape !== undefined) {\n return schema;\n }\n }\n return undefined;\n}\n// --- Error message extraction ---\n/**\n * Safely extracts an error message from a parse result error.\n * Zod errors can have different structures, so we handle various cases.\n */\nexport function getParseErrorMessage(error) {\n if (error && typeof error === 'object') {\n // Try common error structures\n if ('message' in error && typeof error.message === 'string') {\n return error.message;\n }\n if ('issues' in error && Array.isArray(error.issues) && error.issues.length > 0) {\n const firstIssue = error.issues[0];\n if (firstIssue && typeof firstIssue === 'object' && 'message' in firstIssue) {\n return String(firstIssue.message);\n }\n }\n // Fallback: try to stringify the error\n try {\n return JSON.stringify(error);\n }\n catch {\n return String(error);\n }\n }\n return String(error);\n}\n// --- Schema metadata access ---\n/**\n * Gets the description from a schema, if available.\n * Works with both Zod v3 and v4.\n *\n * Both versions expose a `.description` getter that returns the description\n * from their respective internal storage (v3: _def, v4: globalRegistry).\n */\nexport function getSchemaDescription(schema) {\n return schema.description;\n}\n/**\n * Checks if a schema is optional.\n * Works with both Zod v3 and v4.\n */\nexport function isSchemaOptional(schema) {\n if (isZ4Schema(schema)) {\n const v4Schema = schema;\n return v4Schema._zod?.def?.type === 'optional';\n }\n const v3Schema = schema;\n // v3 has isOptional() method\n if (typeof schema.isOptional === 'function') {\n return schema.isOptional();\n }\n return v3Schema._def?.typeName === 'ZodOptional';\n}\n/**\n * Gets the literal value from a schema, if it's a literal schema.\n * Works with both Zod v3 and v4.\n * Returns undefined if the schema is not a literal or the value cannot be determined.\n */\nexport function getLiteralValue(schema) {\n if (isZ4Schema(schema)) {\n const v4Schema = schema;\n const def = v4Schema._zod?.def;\n if (def) {\n // Try various ways to get the literal value\n if (def.value !== undefined)\n return def.value;\n if (Array.isArray(def.values) && def.values.length > 0) {\n return def.values[0];\n }\n }\n }\n const v3Schema = schema;\n const def = v3Schema._def;\n if (def) {\n if (def.value !== undefined)\n return def.value;\n if (Array.isArray(def.values) && def.values.length > 0) {\n return def.values[0];\n }\n }\n // Fallback: check for direct value property (some Zod versions)\n const directValue = schema.value;\n if (directValue !== undefined)\n return directValue;\n return undefined;\n}\n//# sourceMappingURL=zod-compat.js.map","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => inst.issues.push(issue),\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => inst.issues.push(...issues),\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n // inst.nonstrict = () => inst.clone({ ...inst._zod.def, catchall: api.unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output;\nexport function partialRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n _issue.continue ?? (_issue.continue = true);\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n const ch = check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodPipe,\n Boolean: ZodBoolean,\n String: ZodString,\n Transform: ZodTransform,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","import * as z from 'zod/v4';\nexport const LATEST_PROTOCOL_VERSION = '2025-11-25';\nexport const DEFAULT_NEGOTIATED_PROTOCOL_VERSION = '2025-03-26';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, '2025-06-18', '2025-03-26', '2024-11-05', '2024-10-07'];\nexport const RELATED_TASK_META_KEY = 'io.modelcontextprotocol/related-task';\n/* JSON-RPC types */\nexport const JSONRPC_VERSION = '2.0';\n/**\n * Assert 'object' type schema.\n *\n * @internal\n */\nconst AssertObjectSchema = z.custom((v) => v !== null && (typeof v === 'object' || typeof v === 'function'));\n/**\n * A progress token, used to associate progress notifications with the original request.\n */\nexport const ProgressTokenSchema = z.union([z.string(), z.number().int()]);\n/**\n * An opaque token used to represent a cursor for pagination.\n */\nexport const CursorSchema = z.string();\n/**\n * Task creation parameters, used to ask that the server create a task to represent a request.\n */\nexport const TaskCreationParamsSchema = z.looseObject({\n /**\n * Time in milliseconds to keep task results available after completion.\n * If null, the task has unlimited lifetime until manually cleaned up.\n */\n ttl: z.union([z.number(), z.null()]).optional(),\n /**\n * Time in milliseconds to wait between task status requests.\n */\n pollInterval: z.number().optional()\n});\nexport const TaskMetadataSchema = z.object({\n ttl: z.number().optional()\n});\n/**\n * Metadata for associating messages with a task.\n * Include this in the `_meta` field under the key `io.modelcontextprotocol/related-task`.\n */\nexport const RelatedTaskMetadataSchema = z.object({\n taskId: z.string()\n});\nconst RequestMetaSchema = z.looseObject({\n /**\n * If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.\n */\n progressToken: ProgressTokenSchema.optional(),\n /**\n * If specified, this request is related to the provided task.\n */\n [RELATED_TASK_META_KEY]: RelatedTaskMetadataSchema.optional()\n});\n/**\n * Common params for any request.\n */\nconst BaseRequestParamsSchema = z.object({\n /**\n * See [General fields: `_meta`](/specification/draft/basic/index#meta) for notes on `_meta` usage.\n */\n _meta: RequestMetaSchema.optional()\n});\n/**\n * Common params for any task-augmented request.\n */\nexport const TaskAugmentedRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * If specified, the caller is requesting task-augmented execution for this request.\n * The request will return a CreateTaskResult immediately, and the actual result can be\n * retrieved later via tasks/result.\n *\n * Task augmentation is subject to capability negotiation - receivers MUST declare support\n * for task augmentation of specific request types in their capabilities.\n */\n task: TaskMetadataSchema.optional()\n});\n/**\n * Checks if a value is a valid TaskAugmentedRequestParams.\n * @param value - The value to check.\n *\n * @returns True if the value is a valid TaskAugmentedRequestParams, false otherwise.\n */\nexport const isTaskAugmentedRequestParams = (value) => TaskAugmentedRequestParamsSchema.safeParse(value).success;\nexport const RequestSchema = z.object({\n method: z.string(),\n params: BaseRequestParamsSchema.loose().optional()\n});\nconst NotificationsParamsSchema = z.object({\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: RequestMetaSchema.optional()\n});\nexport const NotificationSchema = z.object({\n method: z.string(),\n params: NotificationsParamsSchema.loose().optional()\n});\nexport const ResultSchema = z.looseObject({\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: RequestMetaSchema.optional()\n});\n/**\n * A uniquely identifying ID for a request in JSON-RPC.\n */\nexport const RequestIdSchema = z.union([z.string(), z.number().int()]);\n/**\n * A request that expects a response.\n */\nexport const JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n ...RequestSchema.shape\n})\n .strict();\nexport const isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;\n/**\n * A notification which does not expect a response.\n */\nexport const JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n ...NotificationSchema.shape\n})\n .strict();\nexport const isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;\n/**\n * A successful (non-error) response to a request.\n */\nexport const JSONRPCResultResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n result: ResultSchema\n})\n .strict();\n/**\n * Checks if a value is a valid JSONRPCResultResponse.\n * @param value - The value to check.\n *\n * @returns True if the value is a valid JSONRPCResultResponse, false otherwise.\n */\nexport const isJSONRPCResultResponse = (value) => JSONRPCResultResponseSchema.safeParse(value).success;\n/**\n * @deprecated Use {@link isJSONRPCResultResponse} instead.\n *\n * Please note that {@link JSONRPCResponse} is a union of {@link JSONRPCResultResponse} and {@link JSONRPCErrorResponse} as per the updated JSON-RPC specification. (was previously just {@link JSONRPCResultResponse})\n */\nexport const isJSONRPCResponse = isJSONRPCResultResponse;\n/**\n * Error codes defined by the JSON-RPC specification.\n */\nexport var ErrorCode;\n(function (ErrorCode) {\n // SDK error codes\n ErrorCode[ErrorCode[\"ConnectionClosed\"] = -32000] = \"ConnectionClosed\";\n ErrorCode[ErrorCode[\"RequestTimeout\"] = -32001] = \"RequestTimeout\";\n // Standard JSON-RPC error codes\n ErrorCode[ErrorCode[\"ParseError\"] = -32700] = \"ParseError\";\n ErrorCode[ErrorCode[\"InvalidRequest\"] = -32600] = \"InvalidRequest\";\n ErrorCode[ErrorCode[\"MethodNotFound\"] = -32601] = \"MethodNotFound\";\n ErrorCode[ErrorCode[\"InvalidParams\"] = -32602] = \"InvalidParams\";\n ErrorCode[ErrorCode[\"InternalError\"] = -32603] = \"InternalError\";\n // MCP-specific error codes\n ErrorCode[ErrorCode[\"UrlElicitationRequired\"] = -32042] = \"UrlElicitationRequired\";\n})(ErrorCode || (ErrorCode = {}));\n/**\n * A response to a request that indicates an error occurred.\n */\nexport const JSONRPCErrorResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema.optional(),\n error: z.object({\n /**\n * The error type that occurred.\n */\n code: z.number().int(),\n /**\n * A short description of the error. The message SHOULD be limited to a concise single sentence.\n */\n message: z.string(),\n /**\n * Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).\n */\n data: z.unknown().optional()\n })\n})\n .strict();\n/**\n * @deprecated Use {@link JSONRPCErrorResponseSchema} instead.\n */\nexport const JSONRPCErrorSchema = JSONRPCErrorResponseSchema;\n/**\n * Checks if a value is a valid JSONRPCErrorResponse.\n * @param value - The value to check.\n *\n * @returns True if the value is a valid JSONRPCErrorResponse, false otherwise.\n */\nexport const isJSONRPCErrorResponse = (value) => JSONRPCErrorResponseSchema.safeParse(value).success;\n/**\n * @deprecated Use {@link isJSONRPCErrorResponse} instead.\n */\nexport const isJSONRPCError = isJSONRPCErrorResponse;\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResultResponseSchema,\n JSONRPCErrorResponseSchema\n]);\nexport const JSONRPCResponseSchema = z.union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]);\n/* Empty result */\n/**\n * A response that indicates success but carries no data.\n */\nexport const EmptyResultSchema = ResultSchema.strict();\nexport const CancelledNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The ID of the request to cancel.\n *\n * This MUST correspond to the ID of a request previously issued in the same direction.\n */\n requestId: RequestIdSchema.optional(),\n /**\n * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.\n */\n reason: z.string().optional()\n});\n/* Cancellation */\n/**\n * This notification can be sent by either side to indicate that it is cancelling a previously-issued request.\n *\n * The request SHOULD still be in-flight, but due to communication latency, it is always possible that this notification MAY arrive after the request has already finished.\n *\n * This notification indicates that the result will be unused, so any associated processing SHOULD cease.\n *\n * A client MUST NOT attempt to cancel its `initialize` request.\n */\nexport const CancelledNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/cancelled'),\n params: CancelledNotificationParamsSchema\n});\n/* Base Metadata */\n/**\n * Icon schema for use in tools, prompts, resources, and implementations.\n */\nexport const IconSchema = z.object({\n /**\n * URL or data URI for the icon.\n */\n src: z.string(),\n /**\n * Optional MIME type for the icon.\n */\n mimeType: z.string().optional(),\n /**\n * Optional array of strings that specify sizes at which the icon can be used.\n * Each string should be in WxH format (e.g., `\"48x48\"`, `\"96x96\"`) or `\"any\"` for scalable formats like SVG.\n *\n * If not provided, the client should assume that the icon can be used at any size.\n */\n sizes: z.array(z.string()).optional(),\n /**\n * Optional specifier for the theme this icon is designed for. `light` indicates\n * the icon is designed to be used with a light background, and `dark` indicates\n * the icon is designed to be used with a dark background.\n *\n * If not provided, the client should assume the icon can be used with any theme.\n */\n theme: z.enum(['light', 'dark']).optional()\n});\n/**\n * Base schema to add `icons` property.\n *\n */\nexport const IconsSchema = z.object({\n /**\n * Optional set of sized icons that the client can display in a user interface.\n *\n * Clients that support rendering icons MUST support at least the following MIME types:\n * - `image/png` - PNG images (safe, universal compatibility)\n * - `image/jpeg` (and `image/jpg`) - JPEG images (safe, universal compatibility)\n *\n * Clients that support rendering icons SHOULD also support:\n * - `image/svg+xml` - SVG images (scalable but requires security precautions)\n * - `image/webp` - WebP images (modern, efficient format)\n */\n icons: z.array(IconSchema).optional()\n});\n/**\n * Base metadata interface for common properties across resources, tools, prompts, and implementations.\n */\nexport const BaseMetadataSchema = z.object({\n /** Intended for programmatic or logical use, but used as a display name in past specs or fallback */\n name: z.string(),\n /**\n * Intended for UI and end-user contexts — optimized to be human-readable and easily understood,\n * even by those unfamiliar with domain-specific terminology.\n *\n * If not provided, the name should be used for display (except for Tool,\n * where `annotations.title` should be given precedence over using `name`,\n * if present).\n */\n title: z.string().optional()\n});\n/* Initialization */\n/**\n * Describes the name and version of an MCP implementation.\n */\nexport const ImplementationSchema = BaseMetadataSchema.extend({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n version: z.string(),\n /**\n * An optional URL of the website for this implementation.\n */\n websiteUrl: z.string().optional(),\n /**\n * An optional human-readable description of what this implementation does.\n *\n * This can be used by clients or servers to provide context about their purpose\n * and capabilities. For example, a server might describe the types of resources\n * or tools it provides, while a client might describe its intended use case.\n */\n description: z.string().optional()\n});\nconst FormElicitationCapabilitySchema = z.intersection(z.object({\n applyDefaults: z.boolean().optional()\n}), z.record(z.string(), z.unknown()));\nconst ElicitationCapabilitySchema = z.preprocess(value => {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n if (Object.keys(value).length === 0) {\n return { form: {} };\n }\n }\n return value;\n}, z.intersection(z.object({\n form: FormElicitationCapabilitySchema.optional(),\n url: AssertObjectSchema.optional()\n}), z.record(z.string(), z.unknown()).optional()));\n/**\n * Task capabilities for clients, indicating which request types support task creation.\n */\nexport const ClientTasksCapabilitySchema = z.looseObject({\n /**\n * Present if the client supports listing tasks.\n */\n list: AssertObjectSchema.optional(),\n /**\n * Present if the client supports cancelling tasks.\n */\n cancel: AssertObjectSchema.optional(),\n /**\n * Capabilities for task creation on specific request types.\n */\n requests: z\n .looseObject({\n /**\n * Task support for sampling requests.\n */\n sampling: z\n .looseObject({\n createMessage: AssertObjectSchema.optional()\n })\n .optional(),\n /**\n * Task support for elicitation requests.\n */\n elicitation: z\n .looseObject({\n create: AssertObjectSchema.optional()\n })\n .optional()\n })\n .optional()\n});\n/**\n * Task capabilities for servers, indicating which request types support task creation.\n */\nexport const ServerTasksCapabilitySchema = z.looseObject({\n /**\n * Present if the server supports listing tasks.\n */\n list: AssertObjectSchema.optional(),\n /**\n * Present if the server supports cancelling tasks.\n */\n cancel: AssertObjectSchema.optional(),\n /**\n * Capabilities for task creation on specific request types.\n */\n requests: z\n .looseObject({\n /**\n * Task support for tool requests.\n */\n tools: z\n .looseObject({\n call: AssertObjectSchema.optional()\n })\n .optional()\n })\n .optional()\n});\n/**\n * Capabilities a client may support. Known capabilities are defined here, in this schema, but this is not a closed set: any client can define its own, additional capabilities.\n */\nexport const ClientCapabilitiesSchema = z.object({\n /**\n * Experimental, non-standard capabilities that the client supports.\n */\n experimental: z.record(z.string(), AssertObjectSchema).optional(),\n /**\n * Present if the client supports sampling from an LLM.\n */\n sampling: z\n .object({\n /**\n * Present if the client supports context inclusion via includeContext parameter.\n * If not declared, servers SHOULD only use `includeContext: \"none\"` (or omit it).\n */\n context: AssertObjectSchema.optional(),\n /**\n * Present if the client supports tool use via tools and toolChoice parameters.\n */\n tools: AssertObjectSchema.optional()\n })\n .optional(),\n /**\n * Present if the client supports eliciting user input.\n */\n elicitation: ElicitationCapabilitySchema.optional(),\n /**\n * Present if the client supports listing roots.\n */\n roots: z\n .object({\n /**\n * Whether the client supports issuing notifications for changes to the roots list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the client supports task creation.\n */\n tasks: ClientTasksCapabilitySchema.optional()\n});\nexport const InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.\n */\n protocolVersion: z.string(),\n capabilities: ClientCapabilitiesSchema,\n clientInfo: ImplementationSchema\n});\n/**\n * This request is sent from the client to the server when it first connects, asking it to begin initialization.\n */\nexport const InitializeRequestSchema = RequestSchema.extend({\n method: z.literal('initialize'),\n params: InitializeRequestParamsSchema\n});\nexport const isInitializeRequest = (value) => InitializeRequestSchema.safeParse(value).success;\n/**\n * Capabilities that a server may support. Known capabilities are defined here, in this schema, but this is not a closed set: any server can define its own, additional capabilities.\n */\nexport const ServerCapabilitiesSchema = z.object({\n /**\n * Experimental, non-standard capabilities that the server supports.\n */\n experimental: z.record(z.string(), AssertObjectSchema).optional(),\n /**\n * Present if the server supports sending log messages to the client.\n */\n logging: AssertObjectSchema.optional(),\n /**\n * Present if the server supports sending completions to the client.\n */\n completions: AssertObjectSchema.optional(),\n /**\n * Present if the server offers any prompt templates.\n */\n prompts: z\n .object({\n /**\n * Whether this server supports issuing notifications for changes to the prompt list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the server offers any resources to read.\n */\n resources: z\n .object({\n /**\n * Whether this server supports clients subscribing to resource updates.\n */\n subscribe: z.boolean().optional(),\n /**\n * Whether this server supports issuing notifications for changes to the resource list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the server offers any tools to call.\n */\n tools: z\n .object({\n /**\n * Whether this server supports issuing notifications for changes to the tool list.\n */\n listChanged: z.boolean().optional()\n })\n .optional(),\n /**\n * Present if the server supports task creation.\n */\n tasks: ServerTasksCapabilitySchema.optional()\n});\n/**\n * After receiving an initialize request from the client, the server sends this response.\n */\nexport const InitializeResultSchema = ResultSchema.extend({\n /**\n * The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.\n */\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ImplementationSchema,\n /**\n * Instructions describing how to use the server and its features.\n *\n * This can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a \"hint\" to the model. For example, this information MAY be added to the system prompt.\n */\n instructions: z.string().optional()\n});\n/**\n * This notification is sent from the client to the server after initialization has finished.\n */\nexport const InitializedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/initialized'),\n params: NotificationsParamsSchema.optional()\n});\nexport const isInitializedNotification = (value) => InitializedNotificationSchema.safeParse(value).success;\n/* Ping */\n/**\n * A ping, issued by either the server or the client, to check that the other party is still alive. The receiver must promptly respond, or else may be disconnected.\n */\nexport const PingRequestSchema = RequestSchema.extend({\n method: z.literal('ping'),\n params: BaseRequestParamsSchema.optional()\n});\n/* Progress notifications */\nexport const ProgressSchema = z.object({\n /**\n * The progress thus far. This should increase every time progress is made, even if the total is unknown.\n */\n progress: z.number(),\n /**\n * Total number of items to process (or total progress required), if known.\n */\n total: z.optional(z.number()),\n /**\n * An optional message describing the current progress.\n */\n message: z.optional(z.string())\n});\nexport const ProgressNotificationParamsSchema = z.object({\n ...NotificationsParamsSchema.shape,\n ...ProgressSchema.shape,\n /**\n * The progress token which was given in the initial request, used to associate this notification with the request that is proceeding.\n */\n progressToken: ProgressTokenSchema\n});\n/**\n * An out-of-band notification used to inform the receiver of a progress update for a long-running request.\n *\n * @category notifications/progress\n */\nexport const ProgressNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/progress'),\n params: ProgressNotificationParamsSchema\n});\nexport const PaginatedRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * An opaque token representing the current pagination position.\n * If provided, the server should return results starting after this cursor.\n */\n cursor: CursorSchema.optional()\n});\n/* Pagination */\nexport const PaginatedRequestSchema = RequestSchema.extend({\n params: PaginatedRequestParamsSchema.optional()\n});\nexport const PaginatedResultSchema = ResultSchema.extend({\n /**\n * An opaque token representing the pagination position after the last returned result.\n * If present, there may be more results available.\n */\n nextCursor: CursorSchema.optional()\n});\n/**\n * The status of a task.\n * */\nexport const TaskStatusSchema = z.enum(['working', 'input_required', 'completed', 'failed', 'cancelled']);\n/* Tasks */\n/**\n * A pollable state object associated with a request.\n */\nexport const TaskSchema = z.object({\n taskId: z.string(),\n status: TaskStatusSchema,\n /**\n * Time in milliseconds to keep task results available after completion.\n * If null, the task has unlimited lifetime until manually cleaned up.\n */\n ttl: z.union([z.number(), z.null()]),\n /**\n * ISO 8601 timestamp when the task was created.\n */\n createdAt: z.string(),\n /**\n * ISO 8601 timestamp when the task was last updated.\n */\n lastUpdatedAt: z.string(),\n pollInterval: z.optional(z.number()),\n /**\n * Optional diagnostic message for failed tasks or other status information.\n */\n statusMessage: z.optional(z.string())\n});\n/**\n * Result returned when a task is created, containing the task data wrapped in a task field.\n */\nexport const CreateTaskResultSchema = ResultSchema.extend({\n task: TaskSchema\n});\n/**\n * Parameters for task status notification.\n */\nexport const TaskStatusNotificationParamsSchema = NotificationsParamsSchema.merge(TaskSchema);\n/**\n * A notification sent when a task's status changes.\n */\nexport const TaskStatusNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/tasks/status'),\n params: TaskStatusNotificationParamsSchema\n});\n/**\n * A request to get the state of a specific task.\n */\nexport const GetTaskRequestSchema = RequestSchema.extend({\n method: z.literal('tasks/get'),\n params: BaseRequestParamsSchema.extend({\n taskId: z.string()\n })\n});\n/**\n * The response to a tasks/get request.\n */\nexport const GetTaskResultSchema = ResultSchema.merge(TaskSchema);\n/**\n * A request to get the result of a specific task.\n */\nexport const GetTaskPayloadRequestSchema = RequestSchema.extend({\n method: z.literal('tasks/result'),\n params: BaseRequestParamsSchema.extend({\n taskId: z.string()\n })\n});\n/**\n * The response to a tasks/result request.\n * The structure matches the result type of the original request.\n * For example, a tools/call task would return the CallToolResult structure.\n *\n */\nexport const GetTaskPayloadResultSchema = ResultSchema.loose();\n/**\n * A request to list tasks.\n */\nexport const ListTasksRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('tasks/list')\n});\n/**\n * The response to a tasks/list request.\n */\nexport const ListTasksResultSchema = PaginatedResultSchema.extend({\n tasks: z.array(TaskSchema)\n});\n/**\n * A request to cancel a specific task.\n */\nexport const CancelTaskRequestSchema = RequestSchema.extend({\n method: z.literal('tasks/cancel'),\n params: BaseRequestParamsSchema.extend({\n taskId: z.string()\n })\n});\n/**\n * The response to a tasks/cancel request.\n */\nexport const CancelTaskResultSchema = ResultSchema.merge(TaskSchema);\n/* Resources */\n/**\n * The contents of a specific resource or sub-resource.\n */\nexport const ResourceContentsSchema = z.object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\nexport const TextResourceContentsSchema = ResourceContentsSchema.extend({\n /**\n * The text of the item. This must only be set if the item can actually be represented as text (not binary data).\n */\n text: z.string()\n});\n/**\n * A Zod schema for validating Base64 strings that is more performant and\n * robust for very large inputs than the default regex-based check. It avoids\n * stack overflows by using the native `atob` function for validation.\n */\nconst Base64Schema = z.string().refine(val => {\n try {\n // atob throws a DOMException if the string contains characters\n // that are not part of the Base64 character set.\n atob(val);\n return true;\n }\n catch {\n return false;\n }\n}, { message: 'Invalid Base64 string' });\nexport const BlobResourceContentsSchema = ResourceContentsSchema.extend({\n /**\n * A base64-encoded string representing the binary data of the item.\n */\n blob: Base64Schema\n});\n/**\n * The sender or recipient of messages and data in a conversation.\n */\nexport const RoleSchema = z.enum(['user', 'assistant']);\n/**\n * Optional annotations providing clients additional context about a resource.\n */\nexport const AnnotationsSchema = z.object({\n /**\n * Intended audience(s) for the resource.\n */\n audience: z.array(RoleSchema).optional(),\n /**\n * Importance hint for the resource, from 0 (least) to 1 (most).\n */\n priority: z.number().min(0).max(1).optional(),\n /**\n * ISO 8601 timestamp for the most recent modification.\n */\n lastModified: z.iso.datetime({ offset: true }).optional()\n});\n/**\n * A known resource that the server is capable of reading.\n */\nexport const ResourceSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * A description of what this resource represents.\n *\n * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.\n */\n description: z.optional(z.string()),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.looseObject({}))\n});\n/**\n * A template description for resources available on the server.\n */\nexport const ResourceTemplateSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * A URI template (according to RFC 6570) that can be used to construct resource URIs.\n */\n uriTemplate: z.string(),\n /**\n * A description of what this template is for.\n *\n * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.\n */\n description: z.optional(z.string()),\n /**\n * The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.\n */\n mimeType: z.optional(z.string()),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.looseObject({}))\n});\n/**\n * Sent from the client to request a list of resources the server has.\n */\nexport const ListResourcesRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('resources/list')\n});\n/**\n * The server's response to a resources/list request from the client.\n */\nexport const ListResourcesResultSchema = PaginatedResultSchema.extend({\n resources: z.array(ResourceSchema)\n});\n/**\n * Sent from the client to request a list of resource templates the server has.\n */\nexport const ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('resources/templates/list')\n});\n/**\n * The server's response to a resources/templates/list request from the client.\n */\nexport const ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({\n resourceTemplates: z.array(ResourceTemplateSchema)\n});\nexport const ResourceRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The URI of the resource to read. The URI can use any protocol; it is up to the server how to interpret it.\n *\n * @format uri\n */\n uri: z.string()\n});\n/**\n * Parameters for a `resources/read` request.\n */\nexport const ReadResourceRequestParamsSchema = ResourceRequestParamsSchema;\n/**\n * Sent from the client to the server, to read a specific resource URI.\n */\nexport const ReadResourceRequestSchema = RequestSchema.extend({\n method: z.literal('resources/read'),\n params: ReadResourceRequestParamsSchema\n});\n/**\n * The server's response to a resources/read request from the client.\n */\nexport const ReadResourceResultSchema = ResultSchema.extend({\n contents: z.array(z.union([TextResourceContentsSchema, BlobResourceContentsSchema]))\n});\n/**\n * An optional notification from the server to the client, informing it that the list of resources it can read from has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const ResourceListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/resources/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\nexport const SubscribeRequestParamsSchema = ResourceRequestParamsSchema;\n/**\n * Sent from the client to request resources/updated notifications from the server whenever a particular resource changes.\n */\nexport const SubscribeRequestSchema = RequestSchema.extend({\n method: z.literal('resources/subscribe'),\n params: SubscribeRequestParamsSchema\n});\nexport const UnsubscribeRequestParamsSchema = ResourceRequestParamsSchema;\n/**\n * Sent from the client to request cancellation of resources/updated notifications from the server. This should follow a previous resources/subscribe request.\n */\nexport const UnsubscribeRequestSchema = RequestSchema.extend({\n method: z.literal('resources/unsubscribe'),\n params: UnsubscribeRequestParamsSchema\n});\n/**\n * Parameters for a `notifications/resources/updated` notification.\n */\nexport const ResourceUpdatedNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to.\n */\n uri: z.string()\n});\n/**\n * A notification from the server to the client, informing it that a resource has changed and may need to be read again. This should only be sent if the client previously sent a resources/subscribe request.\n */\nexport const ResourceUpdatedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/resources/updated'),\n params: ResourceUpdatedNotificationParamsSchema\n});\n/* Prompts */\n/**\n * Describes an argument that a prompt can accept.\n */\nexport const PromptArgumentSchema = z.object({\n /**\n * The name of the argument.\n */\n name: z.string(),\n /**\n * A human-readable description of the argument.\n */\n description: z.optional(z.string()),\n /**\n * Whether this argument must be provided.\n */\n required: z.optional(z.boolean())\n});\n/**\n * A prompt or prompt template that the server offers.\n */\nexport const PromptSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * An optional description of what this prompt provides\n */\n description: z.optional(z.string()),\n /**\n * A list of arguments to use for templating the prompt.\n */\n arguments: z.optional(z.array(PromptArgumentSchema)),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.looseObject({}))\n});\n/**\n * Sent from the client to request a list of prompts and prompt templates the server has.\n */\nexport const ListPromptsRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('prompts/list')\n});\n/**\n * The server's response to a prompts/list request from the client.\n */\nexport const ListPromptsResultSchema = PaginatedResultSchema.extend({\n prompts: z.array(PromptSchema)\n});\n/**\n * Parameters for a `prompts/get` request.\n */\nexport const GetPromptRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The name of the prompt or prompt template.\n */\n name: z.string(),\n /**\n * Arguments to use for templating the prompt.\n */\n arguments: z.record(z.string(), z.string()).optional()\n});\n/**\n * Used by the client to get a prompt provided by the server.\n */\nexport const GetPromptRequestSchema = RequestSchema.extend({\n method: z.literal('prompts/get'),\n params: GetPromptRequestParamsSchema\n});\n/**\n * Text provided to or from an LLM.\n */\nexport const TextContentSchema = z.object({\n type: z.literal('text'),\n /**\n * The text content of the message.\n */\n text: z.string(),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * An image provided to or from an LLM.\n */\nexport const ImageContentSchema = z.object({\n type: z.literal('image'),\n /**\n * The base64-encoded image data.\n */\n data: Base64Schema,\n /**\n * The MIME type of the image. Different providers may support different image types.\n */\n mimeType: z.string(),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * An Audio provided to or from an LLM.\n */\nexport const AudioContentSchema = z.object({\n type: z.literal('audio'),\n /**\n * The base64-encoded audio data.\n */\n data: Base64Schema,\n /**\n * The MIME type of the audio. Different providers may support different audio types.\n */\n mimeType: z.string(),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * A tool call request from an assistant (LLM).\n * Represents the assistant's request to use a tool.\n */\nexport const ToolUseContentSchema = z.object({\n type: z.literal('tool_use'),\n /**\n * The name of the tool to invoke.\n * Must match a tool name from the request's tools array.\n */\n name: z.string(),\n /**\n * Unique identifier for this tool call.\n * Used to correlate with ToolResultContent in subsequent messages.\n */\n id: z.string(),\n /**\n * Arguments to pass to the tool.\n * Must conform to the tool's inputSchema.\n */\n input: z.record(z.string(), z.unknown()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * The contents of a resource, embedded into a prompt or tool call result.\n */\nexport const EmbeddedResourceSchema = z.object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n /**\n * Optional annotations for the client.\n */\n annotations: AnnotationsSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * A resource that the server is capable of reading, included in a prompt or tool call result.\n *\n * Note: resource links returned by tools are not guaranteed to appear in the results of `resources/list` requests.\n */\nexport const ResourceLinkSchema = ResourceSchema.extend({\n type: z.literal('resource_link')\n});\n/**\n * A content block that can be used in prompts and tool results.\n */\nexport const ContentBlockSchema = z.union([\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema,\n ResourceLinkSchema,\n EmbeddedResourceSchema\n]);\n/**\n * Describes a message returned as part of a prompt.\n */\nexport const PromptMessageSchema = z.object({\n role: RoleSchema,\n content: ContentBlockSchema\n});\n/**\n * The server's response to a prompts/get request from the client.\n */\nexport const GetPromptResultSchema = ResultSchema.extend({\n /**\n * An optional description for the prompt.\n */\n description: z.string().optional(),\n messages: z.array(PromptMessageSchema)\n});\n/**\n * An optional notification from the server to the client, informing it that the list of prompts it offers has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const PromptListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/prompts/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\n/* Tools */\n/**\n * Additional properties describing a Tool to clients.\n *\n * NOTE: all properties in ToolAnnotations are **hints**.\n * They are not guaranteed to provide a faithful description of\n * tool behavior (including descriptive properties like `title`).\n *\n * Clients should never make tool use decisions based on ToolAnnotations\n * received from untrusted servers.\n */\nexport const ToolAnnotationsSchema = z.object({\n /**\n * A human-readable title for the tool.\n */\n title: z.string().optional(),\n /**\n * If true, the tool does not modify its environment.\n *\n * Default: false\n */\n readOnlyHint: z.boolean().optional(),\n /**\n * If true, the tool may perform destructive updates to its environment.\n * If false, the tool performs only additive updates.\n *\n * (This property is meaningful only when `readOnlyHint == false`)\n *\n * Default: true\n */\n destructiveHint: z.boolean().optional(),\n /**\n * If true, calling the tool repeatedly with the same arguments\n * will have no additional effect on the its environment.\n *\n * (This property is meaningful only when `readOnlyHint == false`)\n *\n * Default: false\n */\n idempotentHint: z.boolean().optional(),\n /**\n * If true, this tool may interact with an \"open world\" of external\n * entities. If false, the tool's domain of interaction is closed.\n * For example, the world of a web search tool is open, whereas that\n * of a memory tool is not.\n *\n * Default: true\n */\n openWorldHint: z.boolean().optional()\n});\n/**\n * Execution-related properties for a tool.\n */\nexport const ToolExecutionSchema = z.object({\n /**\n * Indicates the tool's preference for task-augmented execution.\n * - \"required\": Clients MUST invoke the tool as a task\n * - \"optional\": Clients MAY invoke the tool as a task or normal request\n * - \"forbidden\": Clients MUST NOT attempt to invoke the tool as a task\n *\n * If not present, defaults to \"forbidden\".\n */\n taskSupport: z.enum(['required', 'optional', 'forbidden']).optional()\n});\n/**\n * Definition for a tool the client can call.\n */\nexport const ToolSchema = z.object({\n ...BaseMetadataSchema.shape,\n ...IconsSchema.shape,\n /**\n * A human-readable description of the tool.\n */\n description: z.string().optional(),\n /**\n * A JSON Schema 2020-12 object defining the expected parameters for the tool.\n * Must have type: 'object' at the root level per MCP spec.\n */\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), AssertObjectSchema).optional(),\n required: z.array(z.string()).optional()\n })\n .catchall(z.unknown()),\n /**\n * An optional JSON Schema 2020-12 object defining the structure of the tool's output\n * returned in the structuredContent field of a CallToolResult.\n * Must have type: 'object' at the root level per MCP spec.\n */\n outputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), AssertObjectSchema).optional(),\n required: z.array(z.string()).optional()\n })\n .catchall(z.unknown())\n .optional(),\n /**\n * Optional additional tool information.\n */\n annotations: ToolAnnotationsSchema.optional(),\n /**\n * Execution-related properties for this tool.\n */\n execution: ToolExecutionSchema.optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Sent from the client to request a list of tools the server has.\n */\nexport const ListToolsRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('tools/list')\n});\n/**\n * The server's response to a tools/list request from the client.\n */\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema)\n});\n/**\n * The server's response to a tool call.\n */\nexport const CallToolResultSchema = ResultSchema.extend({\n /**\n * A list of content objects that represent the result of the tool call.\n *\n * If the Tool does not define an outputSchema, this field MUST be present in the result.\n * For backwards compatibility, this field is always present, but it may be empty.\n */\n content: z.array(ContentBlockSchema).default([]),\n /**\n * An object containing structured tool output.\n *\n * If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.\n */\n structuredContent: z.record(z.string(), z.unknown()).optional(),\n /**\n * Whether the tool call ended in an error.\n *\n * If not set, this is assumed to be false (the call was successful).\n *\n * Any errors that originate from the tool SHOULD be reported inside the result\n * object, with `isError` set to true, _not_ as an MCP protocol-level error\n * response. Otherwise, the LLM would not be able to see that an error occurred\n * and self-correct.\n *\n * However, any errors in _finding_ the tool, an error indicating that the\n * server does not support tool calls, or any other exceptional conditions,\n * should be reported as an MCP error response.\n */\n isError: z.boolean().optional()\n});\n/**\n * CallToolResultSchema extended with backwards compatibility to protocol version 2024-10-07.\n */\nexport const CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({\n toolResult: z.unknown()\n}));\n/**\n * Parameters for a `tools/call` request.\n */\nexport const CallToolRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n /**\n * The name of the tool to call.\n */\n name: z.string(),\n /**\n * Arguments to pass to the tool.\n */\n arguments: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Used by the client to invoke a tool provided by the server.\n */\nexport const CallToolRequestSchema = RequestSchema.extend({\n method: z.literal('tools/call'),\n params: CallToolRequestParamsSchema\n});\n/**\n * An optional notification from the server to the client, informing it that the list of tools it offers has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const ToolListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/tools/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\n/**\n * Base schema for list changed subscription options (without callback).\n * Used internally for Zod validation of autoRefresh and debounceMs.\n */\nexport const ListChangedOptionsBaseSchema = z.object({\n /**\n * If true, the list will be refreshed automatically when a list changed notification is received.\n * The callback will be called with the updated list.\n *\n * If false, the callback will be called with null items, allowing manual refresh.\n *\n * @default true\n */\n autoRefresh: z.boolean().default(true),\n /**\n * Debounce time in milliseconds for list changed notification processing.\n *\n * Multiple notifications received within this timeframe will only trigger one refresh.\n * Set to 0 to disable debouncing.\n *\n * @default 300\n */\n debounceMs: z.number().int().nonnegative().default(300)\n});\n/* Logging */\n/**\n * The severity of a log message.\n */\nexport const LoggingLevelSchema = z.enum(['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency']);\n/**\n * Parameters for a `logging/setLevel` request.\n */\nexport const SetLevelRequestParamsSchema = BaseRequestParamsSchema.extend({\n /**\n * The level of logging that the client wants to receive from the server. The server should send all logs at this level and higher (i.e., more severe) to the client as notifications/logging/message.\n */\n level: LoggingLevelSchema\n});\n/**\n * A request from the client to the server, to enable or adjust logging.\n */\nexport const SetLevelRequestSchema = RequestSchema.extend({\n method: z.literal('logging/setLevel'),\n params: SetLevelRequestParamsSchema\n});\n/**\n * Parameters for a `notifications/message` notification.\n */\nexport const LoggingMessageNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The severity of this log message.\n */\n level: LoggingLevelSchema,\n /**\n * An optional name of the logger issuing this message.\n */\n logger: z.string().optional(),\n /**\n * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.\n */\n data: z.unknown()\n});\n/**\n * Notification of a log message passed from server to client. If no logging/setLevel request has been sent from the client, the server MAY decide which messages to send automatically.\n */\nexport const LoggingMessageNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/message'),\n params: LoggingMessageNotificationParamsSchema\n});\n/* Sampling */\n/**\n * Hints to use for model selection.\n */\nexport const ModelHintSchema = z.object({\n /**\n * A hint for a model name.\n */\n name: z.string().optional()\n});\n/**\n * The server's preferences for model selection, requested of the client during sampling.\n */\nexport const ModelPreferencesSchema = z.object({\n /**\n * Optional hints to use for model selection.\n */\n hints: z.array(ModelHintSchema).optional(),\n /**\n * How much to prioritize cost when selecting a model.\n */\n costPriority: z.number().min(0).max(1).optional(),\n /**\n * How much to prioritize sampling speed (latency) when selecting a model.\n */\n speedPriority: z.number().min(0).max(1).optional(),\n /**\n * How much to prioritize intelligence and capabilities when selecting a model.\n */\n intelligencePriority: z.number().min(0).max(1).optional()\n});\n/**\n * Controls tool usage behavior in sampling requests.\n */\nexport const ToolChoiceSchema = z.object({\n /**\n * Controls when tools are used:\n * - \"auto\": Model decides whether to use tools (default)\n * - \"required\": Model MUST use at least one tool before completing\n * - \"none\": Model MUST NOT use any tools\n */\n mode: z.enum(['auto', 'required', 'none']).optional()\n});\n/**\n * The result of a tool execution, provided by the user (server).\n * Represents the outcome of invoking a tool requested via ToolUseContent.\n */\nexport const ToolResultContentSchema = z.object({\n type: z.literal('tool_result'),\n toolUseId: z.string().describe('The unique identifier for the corresponding tool call.'),\n content: z.array(ContentBlockSchema).default([]),\n structuredContent: z.object({}).loose().optional(),\n isError: z.boolean().optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Basic content types for sampling responses (without tool use).\n * Used for backwards-compatible CreateMessageResult when tools are not used.\n */\nexport const SamplingContentSchema = z.discriminatedUnion('type', [TextContentSchema, ImageContentSchema, AudioContentSchema]);\n/**\n * Content block types allowed in sampling messages.\n * This includes text, image, audio, tool use requests, and tool results.\n */\nexport const SamplingMessageContentBlockSchema = z.discriminatedUnion('type', [\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema,\n ToolUseContentSchema,\n ToolResultContentSchema\n]);\n/**\n * Describes a message issued to or received from an LLM API.\n */\nexport const SamplingMessageSchema = z.object({\n role: RoleSchema,\n content: z.union([SamplingMessageContentBlockSchema, z.array(SamplingMessageContentBlockSchema)]),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Parameters for a `sampling/createMessage` request.\n */\nexport const CreateMessageRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n messages: z.array(SamplingMessageSchema),\n /**\n * The server's preferences for which model to select. The client MAY modify or omit this request.\n */\n modelPreferences: ModelPreferencesSchema.optional(),\n /**\n * An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.\n */\n systemPrompt: z.string().optional(),\n /**\n * A request to include context from one or more MCP servers (including the caller), to be attached to the prompt.\n * The client MAY ignore this request.\n *\n * Default is \"none\". Values \"thisServer\" and \"allServers\" are soft-deprecated. Servers SHOULD only use these values if the client\n * declares ClientCapabilities.sampling.context. These values may be removed in future spec releases.\n */\n includeContext: z.enum(['none', 'thisServer', 'allServers']).optional(),\n temperature: z.number().optional(),\n /**\n * The requested maximum number of tokens to sample (to prevent runaway completions).\n *\n * The client MAY choose to sample fewer tokens than the requested maximum.\n */\n maxTokens: z.number().int(),\n stopSequences: z.array(z.string()).optional(),\n /**\n * Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.\n */\n metadata: AssertObjectSchema.optional(),\n /**\n * Tools that the model may use during generation.\n * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.\n */\n tools: z.array(ToolSchema).optional(),\n /**\n * Controls how the model uses tools.\n * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.\n * Default is `{ mode: \"auto\" }`.\n */\n toolChoice: ToolChoiceSchema.optional()\n});\n/**\n * A request from the server to sample an LLM via the client. The client has full discretion over which model to select. The client should also inform the user before beginning sampling, to allow them to inspect the request (human in the loop) and decide whether to approve it.\n */\nexport const CreateMessageRequestSchema = RequestSchema.extend({\n method: z.literal('sampling/createMessage'),\n params: CreateMessageRequestParamsSchema\n});\n/**\n * The client's response to a sampling/create_message request from the server.\n * This is the backwards-compatible version that returns single content (no arrays).\n * Used when the request does not include tools.\n */\nexport const CreateMessageResultSchema = ResultSchema.extend({\n /**\n * The name of the model that generated the message.\n */\n model: z.string(),\n /**\n * The reason why sampling stopped, if known.\n *\n * Standard values:\n * - \"endTurn\": Natural end of the assistant's turn\n * - \"stopSequence\": A stop sequence was encountered\n * - \"maxTokens\": Maximum token limit was reached\n *\n * This field is an open string to allow for provider-specific stop reasons.\n */\n stopReason: z.optional(z.enum(['endTurn', 'stopSequence', 'maxTokens']).or(z.string())),\n role: RoleSchema,\n /**\n * Response content. Single content block (text, image, or audio).\n */\n content: SamplingContentSchema\n});\n/**\n * The client's response to a sampling/create_message request when tools were provided.\n * This version supports array content for tool use flows.\n */\nexport const CreateMessageResultWithToolsSchema = ResultSchema.extend({\n /**\n * The name of the model that generated the message.\n */\n model: z.string(),\n /**\n * The reason why sampling stopped, if known.\n *\n * Standard values:\n * - \"endTurn\": Natural end of the assistant's turn\n * - \"stopSequence\": A stop sequence was encountered\n * - \"maxTokens\": Maximum token limit was reached\n * - \"toolUse\": The model wants to use one or more tools\n *\n * This field is an open string to allow for provider-specific stop reasons.\n */\n stopReason: z.optional(z.enum(['endTurn', 'stopSequence', 'maxTokens', 'toolUse']).or(z.string())),\n role: RoleSchema,\n /**\n * Response content. May be a single block or array. May include ToolUseContent if stopReason is \"toolUse\".\n */\n content: z.union([SamplingMessageContentBlockSchema, z.array(SamplingMessageContentBlockSchema)])\n});\n/* Elicitation */\n/**\n * Primitive schema definition for boolean fields.\n */\nexport const BooleanSchemaSchema = z.object({\n type: z.literal('boolean'),\n title: z.string().optional(),\n description: z.string().optional(),\n default: z.boolean().optional()\n});\n/**\n * Primitive schema definition for string fields.\n */\nexport const StringSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n minLength: z.number().optional(),\n maxLength: z.number().optional(),\n format: z.enum(['email', 'uri', 'date', 'date-time']).optional(),\n default: z.string().optional()\n});\n/**\n * Primitive schema definition for number fields.\n */\nexport const NumberSchemaSchema = z.object({\n type: z.enum(['number', 'integer']),\n title: z.string().optional(),\n description: z.string().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n default: z.number().optional()\n});\n/**\n * Schema for single-selection enumeration without display titles for options.\n */\nexport const UntitledSingleSelectEnumSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n enum: z.array(z.string()),\n default: z.string().optional()\n});\n/**\n * Schema for single-selection enumeration with display titles for each option.\n */\nexport const TitledSingleSelectEnumSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n oneOf: z.array(z.object({\n const: z.string(),\n title: z.string()\n })),\n default: z.string().optional()\n});\n/**\n * Use TitledSingleSelectEnumSchema instead.\n * This interface will be removed in a future version.\n */\nexport const LegacyTitledEnumSchemaSchema = z.object({\n type: z.literal('string'),\n title: z.string().optional(),\n description: z.string().optional(),\n enum: z.array(z.string()),\n enumNames: z.array(z.string()).optional(),\n default: z.string().optional()\n});\n// Combined single selection enumeration\nexport const SingleSelectEnumSchemaSchema = z.union([UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema]);\n/**\n * Schema for multiple-selection enumeration without display titles for options.\n */\nexport const UntitledMultiSelectEnumSchemaSchema = z.object({\n type: z.literal('array'),\n title: z.string().optional(),\n description: z.string().optional(),\n minItems: z.number().optional(),\n maxItems: z.number().optional(),\n items: z.object({\n type: z.literal('string'),\n enum: z.array(z.string())\n }),\n default: z.array(z.string()).optional()\n});\n/**\n * Schema for multiple-selection enumeration with display titles for each option.\n */\nexport const TitledMultiSelectEnumSchemaSchema = z.object({\n type: z.literal('array'),\n title: z.string().optional(),\n description: z.string().optional(),\n minItems: z.number().optional(),\n maxItems: z.number().optional(),\n items: z.object({\n anyOf: z.array(z.object({\n const: z.string(),\n title: z.string()\n }))\n }),\n default: z.array(z.string()).optional()\n});\n/**\n * Combined schema for multiple-selection enumeration\n */\nexport const MultiSelectEnumSchemaSchema = z.union([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]);\n/**\n * Primitive schema definition for enum fields.\n */\nexport const EnumSchemaSchema = z.union([LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema]);\n/**\n * Union of all primitive schema definitions.\n */\nexport const PrimitiveSchemaDefinitionSchema = z.union([EnumSchemaSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema]);\n/**\n * Parameters for an `elicitation/create` request for form-based elicitation.\n */\nexport const ElicitRequestFormParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n /**\n * The elicitation mode.\n *\n * Optional for backward compatibility. Clients MUST treat missing mode as \"form\".\n */\n mode: z.literal('form').optional(),\n /**\n * The message to present to the user describing what information is being requested.\n */\n message: z.string(),\n /**\n * A restricted subset of JSON Schema.\n * Only top-level properties are allowed, without nesting.\n */\n requestedSchema: z.object({\n type: z.literal('object'),\n properties: z.record(z.string(), PrimitiveSchemaDefinitionSchema),\n required: z.array(z.string()).optional()\n })\n});\n/**\n * Parameters for an `elicitation/create` request for URL-based elicitation.\n */\nexport const ElicitRequestURLParamsSchema = TaskAugmentedRequestParamsSchema.extend({\n /**\n * The elicitation mode.\n */\n mode: z.literal('url'),\n /**\n * The message to present to the user explaining why the interaction is needed.\n */\n message: z.string(),\n /**\n * The ID of the elicitation, which must be unique within the context of the server.\n * The client MUST treat this ID as an opaque value.\n */\n elicitationId: z.string(),\n /**\n * The URL that the user should navigate to.\n */\n url: z.string().url()\n});\n/**\n * The parameters for a request to elicit additional information from the user via the client.\n */\nexport const ElicitRequestParamsSchema = z.union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]);\n/**\n * A request from the server to elicit user input via the client.\n * The client should present the message and form fields to the user (form mode)\n * or navigate to a URL (URL mode).\n */\nexport const ElicitRequestSchema = RequestSchema.extend({\n method: z.literal('elicitation/create'),\n params: ElicitRequestParamsSchema\n});\n/**\n * Parameters for a `notifications/elicitation/complete` notification.\n *\n * @category notifications/elicitation/complete\n */\nexport const ElicitationCompleteNotificationParamsSchema = NotificationsParamsSchema.extend({\n /**\n * The ID of the elicitation that completed.\n */\n elicitationId: z.string()\n});\n/**\n * A notification from the server to the client, informing it of a completion of an out-of-band elicitation request.\n *\n * @category notifications/elicitation/complete\n */\nexport const ElicitationCompleteNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/elicitation/complete'),\n params: ElicitationCompleteNotificationParamsSchema\n});\n/**\n * The client's response to an elicitation/create request from the server.\n */\nexport const ElicitResultSchema = ResultSchema.extend({\n /**\n * The user action in response to the elicitation.\n * - \"accept\": User submitted the form/confirmed the action\n * - \"decline\": User explicitly decline the action\n * - \"cancel\": User dismissed without making an explicit choice\n */\n action: z.enum(['accept', 'decline', 'cancel']),\n /**\n * The submitted form data, only present when action is \"accept\".\n * Contains values matching the requested schema.\n * Per MCP spec, content is \"typically omitted\" for decline/cancel actions.\n * We normalize null to undefined for leniency while maintaining type compatibility.\n */\n content: z.preprocess(val => (val === null ? undefined : val), z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.string())])).optional())\n});\n/* Autocomplete */\n/**\n * A reference to a resource or resource template definition.\n */\nexport const ResourceTemplateReferenceSchema = z.object({\n type: z.literal('ref/resource'),\n /**\n * The URI or URI template of the resource.\n */\n uri: z.string()\n});\n/**\n * @deprecated Use ResourceTemplateReferenceSchema instead\n */\nexport const ResourceReferenceSchema = ResourceTemplateReferenceSchema;\n/**\n * Identifies a prompt.\n */\nexport const PromptReferenceSchema = z.object({\n type: z.literal('ref/prompt'),\n /**\n * The name of the prompt or prompt template\n */\n name: z.string()\n});\n/**\n * Parameters for a `completion/complete` request.\n */\nexport const CompleteRequestParamsSchema = BaseRequestParamsSchema.extend({\n ref: z.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),\n /**\n * The argument's information\n */\n argument: z.object({\n /**\n * The name of the argument\n */\n name: z.string(),\n /**\n * The value of the argument to use for completion matching.\n */\n value: z.string()\n }),\n context: z\n .object({\n /**\n * Previously-resolved variables in a URI template or prompt.\n */\n arguments: z.record(z.string(), z.string()).optional()\n })\n .optional()\n});\n/**\n * A request from the client to the server, to ask for completion options.\n */\nexport const CompleteRequestSchema = RequestSchema.extend({\n method: z.literal('completion/complete'),\n params: CompleteRequestParamsSchema\n});\nexport function assertCompleteRequestPrompt(request) {\n if (request.params.ref.type !== 'ref/prompt') {\n throw new TypeError(`Expected CompleteRequestPrompt, but got ${request.params.ref.type}`);\n }\n void request;\n}\nexport function assertCompleteRequestResourceTemplate(request) {\n if (request.params.ref.type !== 'ref/resource') {\n throw new TypeError(`Expected CompleteRequestResourceTemplate, but got ${request.params.ref.type}`);\n }\n void request;\n}\n/**\n * The server's response to a completion/complete request\n */\nexport const CompleteResultSchema = ResultSchema.extend({\n completion: z.looseObject({\n /**\n * An array of completion values. Must not exceed 100 items.\n */\n values: z.array(z.string()).max(100),\n /**\n * The total number of completion options available. This can exceed the number of values actually sent in the response.\n */\n total: z.optional(z.number().int()),\n /**\n * Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.\n */\n hasMore: z.optional(z.boolean())\n })\n});\n/* Roots */\n/**\n * Represents a root directory or file that the server can operate on.\n */\nexport const RootSchema = z.object({\n /**\n * The URI identifying the root. This *must* start with file:// for now.\n */\n uri: z.string().startsWith('file://'),\n /**\n * An optional name for the root.\n */\n name: z.string().optional(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.record(z.string(), z.unknown()).optional()\n});\n/**\n * Sent from the server to request a list of root URIs from the client.\n */\nexport const ListRootsRequestSchema = RequestSchema.extend({\n method: z.literal('roots/list'),\n params: BaseRequestParamsSchema.optional()\n});\n/**\n * The client's response to a roots/list request from the server.\n */\nexport const ListRootsResultSchema = ResultSchema.extend({\n roots: z.array(RootSchema)\n});\n/**\n * A notification from the client to the server, informing it that the list of roots has changed.\n */\nexport const RootsListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/roots/list_changed'),\n params: NotificationsParamsSchema.optional()\n});\n/* Client messages */\nexport const ClientRequestSchema = z.union([\n PingRequestSchema,\n InitializeRequestSchema,\n CompleteRequestSchema,\n SetLevelRequestSchema,\n GetPromptRequestSchema,\n ListPromptsRequestSchema,\n ListResourcesRequestSchema,\n ListResourceTemplatesRequestSchema,\n ReadResourceRequestSchema,\n SubscribeRequestSchema,\n UnsubscribeRequestSchema,\n CallToolRequestSchema,\n ListToolsRequestSchema,\n GetTaskRequestSchema,\n GetTaskPayloadRequestSchema,\n ListTasksRequestSchema,\n CancelTaskRequestSchema\n]);\nexport const ClientNotificationSchema = z.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n InitializedNotificationSchema,\n RootsListChangedNotificationSchema,\n TaskStatusNotificationSchema\n]);\nexport const ClientResultSchema = z.union([\n EmptyResultSchema,\n CreateMessageResultSchema,\n CreateMessageResultWithToolsSchema,\n ElicitResultSchema,\n ListRootsResultSchema,\n GetTaskResultSchema,\n ListTasksResultSchema,\n CreateTaskResultSchema\n]);\n/* Server messages */\nexport const ServerRequestSchema = z.union([\n PingRequestSchema,\n CreateMessageRequestSchema,\n ElicitRequestSchema,\n ListRootsRequestSchema,\n GetTaskRequestSchema,\n GetTaskPayloadRequestSchema,\n ListTasksRequestSchema,\n CancelTaskRequestSchema\n]);\nexport const ServerNotificationSchema = z.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n LoggingMessageNotificationSchema,\n ResourceUpdatedNotificationSchema,\n ResourceListChangedNotificationSchema,\n ToolListChangedNotificationSchema,\n PromptListChangedNotificationSchema,\n TaskStatusNotificationSchema,\n ElicitationCompleteNotificationSchema\n]);\nexport const ServerResultSchema = z.union([\n EmptyResultSchema,\n InitializeResultSchema,\n CompleteResultSchema,\n GetPromptResultSchema,\n ListPromptsResultSchema,\n ListResourcesResultSchema,\n ListResourceTemplatesResultSchema,\n ReadResourceResultSchema,\n CallToolResultSchema,\n ListToolsResultSchema,\n GetTaskResultSchema,\n ListTasksResultSchema,\n CreateTaskResultSchema\n]);\nexport class McpError extends Error {\n constructor(code, message, data) {\n super(`MCP error ${code}: ${message}`);\n this.code = code;\n this.data = data;\n this.name = 'McpError';\n }\n /**\n * Factory method to create the appropriate error type based on the error code and data\n */\n static fromError(code, message, data) {\n // Check for specific error types\n if (code === ErrorCode.UrlElicitationRequired && data) {\n const errorData = data;\n if (errorData.elicitations) {\n return new UrlElicitationRequiredError(errorData.elicitations, message);\n }\n }\n // Default to generic McpError\n return new McpError(code, message, data);\n }\n}\n/**\n * Specialized error type when a tool requires a URL mode elicitation.\n * This makes it nicer for the client to handle since there is specific data to work with instead of just a code to check against.\n */\nexport class UrlElicitationRequiredError extends McpError {\n constructor(elicitations, message = `URL elicitation${elicitations.length > 1 ? 's' : ''} required`) {\n super(ErrorCode.UrlElicitationRequired, message, {\n elicitations: elicitations\n });\n }\n get elicitations() {\n return this.data?.elicitations ?? [];\n }\n}\n//# sourceMappingURL=types.js.map","/**\n * Experimental task interfaces for MCP SDK.\n * WARNING: These APIs are experimental and may change without notice.\n */\n/**\n * Checks if a task status represents a terminal state.\n * Terminal states are those where the task has finished and will not change.\n *\n * @param status - The task status to check\n * @returns True if the status is terminal (completed, failed, or cancelled)\n * @experimental\n */\nexport function isTerminal(status) {\n return status === 'completed' || status === 'failed' || status === 'cancelled';\n}\n//# sourceMappingURL=interfaces.js.map","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n","// zod-json-schema-compat.ts\n// ----------------------------------------------------\n// JSON Schema conversion for both Zod v3 and Zod v4 (Mini)\n// v3 uses your vendored converter; v4 uses Mini's toJSONSchema\n// ----------------------------------------------------\nimport * as z4mini from 'zod/v4-mini';\nimport { getObjectShape, safeParse, isZ4Schema, getLiteralValue } from './zod-compat.js';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nfunction mapMiniTarget(t) {\n if (!t)\n return 'draft-7';\n if (t === 'jsonSchema7' || t === 'draft-7')\n return 'draft-7';\n if (t === 'jsonSchema2019-09' || t === 'draft-2020-12')\n return 'draft-2020-12';\n return 'draft-7'; // fallback\n}\nexport function toJsonSchemaCompat(schema, opts) {\n if (isZ4Schema(schema)) {\n // v4 branch — use Mini's built-in toJSONSchema\n return z4mini.toJSONSchema(schema, {\n target: mapMiniTarget(opts?.target),\n io: opts?.pipeStrategy ?? 'input'\n });\n }\n // v3 branch — use vendored converter\n return zodToJsonSchema(schema, {\n strictUnions: opts?.strictUnions ?? true,\n pipeStrategy: opts?.pipeStrategy ?? 'input'\n });\n}\nexport function getMethodLiteral(schema) {\n const shape = getObjectShape(schema);\n const methodSchema = shape?.method;\n if (!methodSchema) {\n throw new Error('Schema is missing a method literal');\n }\n const value = getLiteralValue(methodSchema);\n if (typeof value !== 'string') {\n throw new Error('Schema method literal must be a string');\n }\n return value;\n}\nexport function parseWithCompat(schema, data) {\n const result = safeParse(schema, data);\n if (!result.success) {\n throw result.error;\n }\n return result.data;\n}\n//# sourceMappingURL=zod-json-schema-compat.js.map","import { safeParse } from '../server/zod-compat.js';\nimport { CancelledNotificationSchema, CreateTaskResultSchema, ErrorCode, GetTaskRequestSchema, GetTaskResultSchema, GetTaskPayloadRequestSchema, ListTasksRequestSchema, ListTasksResultSchema, CancelTaskRequestSchema, CancelTaskResultSchema, isJSONRPCErrorResponse, isJSONRPCRequest, isJSONRPCResultResponse, isJSONRPCNotification, McpError, PingRequestSchema, ProgressNotificationSchema, RELATED_TASK_META_KEY, TaskStatusNotificationSchema, isTaskAugmentedRequestParams } from '../types.js';\nimport { isTerminal } from '../experimental/tasks/interfaces.js';\nimport { getMethodLiteral, parseWithCompat } from '../server/zod-json-schema-compat.js';\n/**\n * The default request timeout, in miliseconds.\n */\nexport const DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;\n/**\n * Implements MCP protocol framing on top of a pluggable transport, including\n * features like request/response linking, notifications, and progress.\n */\nexport class Protocol {\n constructor(_options) {\n this._options = _options;\n this._requestMessageId = 0;\n this._requestHandlers = new Map();\n this._requestHandlerAbortControllers = new Map();\n this._notificationHandlers = new Map();\n this._responseHandlers = new Map();\n this._progressHandlers = new Map();\n this._timeoutInfo = new Map();\n this._pendingDebouncedNotifications = new Set();\n // Maps task IDs to progress tokens to keep handlers alive after CreateTaskResult\n this._taskProgressTokens = new Map();\n this._requestResolvers = new Map();\n this.setNotificationHandler(CancelledNotificationSchema, notification => {\n this._oncancel(notification);\n });\n this.setNotificationHandler(ProgressNotificationSchema, notification => {\n this._onprogress(notification);\n });\n this.setRequestHandler(PingRequestSchema, \n // Automatic pong by default.\n _request => ({}));\n // Install task handlers if TaskStore is provided\n this._taskStore = _options?.taskStore;\n this._taskMessageQueue = _options?.taskMessageQueue;\n if (this._taskStore) {\n this.setRequestHandler(GetTaskRequestSchema, async (request, extra) => {\n const task = await this._taskStore.getTask(request.params.taskId, extra.sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');\n }\n // Per spec: tasks/get responses SHALL NOT include related-task metadata\n // as the taskId parameter is the source of truth\n // @ts-expect-error SendResultT cannot contain GetTaskResult, but we include it in our derived types everywhere else\n return {\n ...task\n };\n });\n this.setRequestHandler(GetTaskPayloadRequestSchema, async (request, extra) => {\n const handleTaskResult = async () => {\n const taskId = request.params.taskId;\n // Deliver queued messages\n if (this._taskMessageQueue) {\n let queuedMessage;\n while ((queuedMessage = await this._taskMessageQueue.dequeue(taskId, extra.sessionId))) {\n // Handle response and error messages by routing them to the appropriate resolver\n if (queuedMessage.type === 'response' || queuedMessage.type === 'error') {\n const message = queuedMessage.message;\n const requestId = message.id;\n // Lookup resolver in _requestResolvers map\n const resolver = this._requestResolvers.get(requestId);\n if (resolver) {\n // Remove resolver from map after invocation\n this._requestResolvers.delete(requestId);\n // Invoke resolver with response or error\n if (queuedMessage.type === 'response') {\n resolver(message);\n }\n else {\n // Convert JSONRPCError to McpError\n const errorMessage = message;\n const error = new McpError(errorMessage.error.code, errorMessage.error.message, errorMessage.error.data);\n resolver(error);\n }\n }\n else {\n // Handle missing resolver gracefully with error logging\n const messageType = queuedMessage.type === 'response' ? 'Response' : 'Error';\n this._onerror(new Error(`${messageType} handler missing for request ${requestId}`));\n }\n // Continue to next message\n continue;\n }\n // Send the message on the response stream by passing the relatedRequestId\n // This tells the transport to write the message to the tasks/result response stream\n await this._transport?.send(queuedMessage.message, { relatedRequestId: extra.requestId });\n }\n }\n // Now check task status\n const task = await this._taskStore.getTask(taskId, extra.sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, `Task not found: ${taskId}`);\n }\n // Block if task is not terminal (we've already delivered all queued messages above)\n if (!isTerminal(task.status)) {\n // Wait for status change or new messages\n await this._waitForTaskUpdate(taskId, extra.signal);\n // After waking up, recursively call to deliver any new messages or result\n return await handleTaskResult();\n }\n // If task is terminal, return the result\n if (isTerminal(task.status)) {\n const result = await this._taskStore.getTaskResult(taskId, extra.sessionId);\n this._clearTaskQueue(taskId);\n return {\n ...result,\n _meta: {\n ...result._meta,\n [RELATED_TASK_META_KEY]: {\n taskId: taskId\n }\n }\n };\n }\n return await handleTaskResult();\n };\n return await handleTaskResult();\n });\n this.setRequestHandler(ListTasksRequestSchema, async (request, extra) => {\n try {\n const { tasks, nextCursor } = await this._taskStore.listTasks(request.params?.cursor, extra.sessionId);\n // @ts-expect-error SendResultT cannot contain ListTasksResult, but we include it in our derived types everywhere else\n return {\n tasks,\n nextCursor,\n _meta: {}\n };\n }\n catch (error) {\n throw new McpError(ErrorCode.InvalidParams, `Failed to list tasks: ${error instanceof Error ? error.message : String(error)}`);\n }\n });\n this.setRequestHandler(CancelTaskRequestSchema, async (request, extra) => {\n try {\n // Get the current task to check if it's in a terminal state, in case the implementation is not atomic\n const task = await this._taskStore.getTask(request.params.taskId, extra.sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, `Task not found: ${request.params.taskId}`);\n }\n // Reject cancellation of terminal tasks\n if (isTerminal(task.status)) {\n throw new McpError(ErrorCode.InvalidParams, `Cannot cancel task in terminal status: ${task.status}`);\n }\n await this._taskStore.updateTaskStatus(request.params.taskId, 'cancelled', 'Client cancelled task execution.', extra.sessionId);\n this._clearTaskQueue(request.params.taskId);\n const cancelledTask = await this._taskStore.getTask(request.params.taskId, extra.sessionId);\n if (!cancelledTask) {\n // Task was deleted during cancellation (e.g., cleanup happened)\n throw new McpError(ErrorCode.InvalidParams, `Task not found after cancellation: ${request.params.taskId}`);\n }\n return {\n _meta: {},\n ...cancelledTask\n };\n }\n catch (error) {\n // Re-throw McpError as-is\n if (error instanceof McpError) {\n throw error;\n }\n throw new McpError(ErrorCode.InvalidRequest, `Failed to cancel task: ${error instanceof Error ? error.message : String(error)}`);\n }\n });\n }\n }\n async _oncancel(notification) {\n if (!notification.params.requestId) {\n return;\n }\n // Handle request cancellation\n const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);\n controller?.abort(notification.params.reason);\n }\n _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {\n this._timeoutInfo.set(messageId, {\n timeoutId: setTimeout(onTimeout, timeout),\n startTime: Date.now(),\n timeout,\n maxTotalTimeout,\n resetTimeoutOnProgress,\n onTimeout\n });\n }\n _resetTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (!info)\n return false;\n const totalElapsed = Date.now() - info.startTime;\n if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {\n this._timeoutInfo.delete(messageId);\n throw McpError.fromError(ErrorCode.RequestTimeout, 'Maximum total timeout exceeded', {\n maxTotalTimeout: info.maxTotalTimeout,\n totalElapsed\n });\n }\n clearTimeout(info.timeoutId);\n info.timeoutId = setTimeout(info.onTimeout, info.timeout);\n return true;\n }\n _cleanupTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (info) {\n clearTimeout(info.timeoutId);\n this._timeoutInfo.delete(messageId);\n }\n }\n /**\n * Attaches to the given transport, starts it, and starts listening for messages.\n *\n * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.\n */\n async connect(transport) {\n this._transport = transport;\n const _onclose = this.transport?.onclose;\n this._transport.onclose = () => {\n _onclose?.();\n this._onclose();\n };\n const _onerror = this.transport?.onerror;\n this._transport.onerror = (error) => {\n _onerror?.(error);\n this._onerror(error);\n };\n const _onmessage = this._transport?.onmessage;\n this._transport.onmessage = (message, extra) => {\n _onmessage?.(message, extra);\n if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {\n this._onresponse(message);\n }\n else if (isJSONRPCRequest(message)) {\n this._onrequest(message, extra);\n }\n else if (isJSONRPCNotification(message)) {\n this._onnotification(message);\n }\n else {\n this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));\n }\n };\n await this._transport.start();\n }\n _onclose() {\n const responseHandlers = this._responseHandlers;\n this._responseHandlers = new Map();\n this._progressHandlers.clear();\n this._taskProgressTokens.clear();\n this._pendingDebouncedNotifications.clear();\n const error = McpError.fromError(ErrorCode.ConnectionClosed, 'Connection closed');\n this._transport = undefined;\n this.onclose?.();\n for (const handler of responseHandlers.values()) {\n handler(error);\n }\n }\n _onerror(error) {\n this.onerror?.(error);\n }\n _onnotification(notification) {\n const handler = this._notificationHandlers.get(notification.method) ?? this.fallbackNotificationHandler;\n // Ignore notifications not being subscribed to.\n if (handler === undefined) {\n return;\n }\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(notification))\n .catch(error => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));\n }\n _onrequest(request, extra) {\n const handler = this._requestHandlers.get(request.method) ?? this.fallbackRequestHandler;\n // Capture the current transport at request time to ensure responses go to the correct client\n const capturedTransport = this._transport;\n // Extract taskId from request metadata if present (needed early for method not found case)\n const relatedTaskId = request.params?._meta?.[RELATED_TASK_META_KEY]?.taskId;\n if (handler === undefined) {\n const errorResponse = {\n jsonrpc: '2.0',\n id: request.id,\n error: {\n code: ErrorCode.MethodNotFound,\n message: 'Method not found'\n }\n };\n // Queue or send the error response based on whether this is a task-related request\n if (relatedTaskId && this._taskMessageQueue) {\n this._enqueueTaskMessage(relatedTaskId, {\n type: 'error',\n message: errorResponse,\n timestamp: Date.now()\n }, capturedTransport?.sessionId).catch(error => this._onerror(new Error(`Failed to enqueue error response: ${error}`)));\n }\n else {\n capturedTransport\n ?.send(errorResponse)\n .catch(error => this._onerror(new Error(`Failed to send an error response: ${error}`)));\n }\n return;\n }\n const abortController = new AbortController();\n this._requestHandlerAbortControllers.set(request.id, abortController);\n const taskCreationParams = isTaskAugmentedRequestParams(request.params) ? request.params.task : undefined;\n const taskStore = this._taskStore ? this.requestTaskStore(request, capturedTransport?.sessionId) : undefined;\n const fullExtra = {\n signal: abortController.signal,\n sessionId: capturedTransport?.sessionId,\n _meta: request.params?._meta,\n sendNotification: async (notification) => {\n // Include related-task metadata if this request is part of a task\n const notificationOptions = { relatedRequestId: request.id };\n if (relatedTaskId) {\n notificationOptions.relatedTask = { taskId: relatedTaskId };\n }\n await this.notification(notification, notificationOptions);\n },\n sendRequest: async (r, resultSchema, options) => {\n // Include related-task metadata if this request is part of a task\n const requestOptions = { ...options, relatedRequestId: request.id };\n if (relatedTaskId && !requestOptions.relatedTask) {\n requestOptions.relatedTask = { taskId: relatedTaskId };\n }\n // Set task status to input_required when sending a request within a task context\n // Use the taskId from options (explicit) or fall back to relatedTaskId (inherited)\n const effectiveTaskId = requestOptions.relatedTask?.taskId ?? relatedTaskId;\n if (effectiveTaskId && taskStore) {\n await taskStore.updateTaskStatus(effectiveTaskId, 'input_required');\n }\n return await this.request(r, resultSchema, requestOptions);\n },\n authInfo: extra?.authInfo,\n requestId: request.id,\n requestInfo: extra?.requestInfo,\n taskId: relatedTaskId,\n taskStore: taskStore,\n taskRequestedTtl: taskCreationParams?.ttl,\n closeSSEStream: extra?.closeSSEStream,\n closeStandaloneSSEStream: extra?.closeStandaloneSSEStream\n };\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => {\n // If this request asked for task creation, check capability first\n if (taskCreationParams) {\n // Check if the request method supports task creation\n this.assertTaskHandlerCapability(request.method);\n }\n })\n .then(() => handler(request, fullExtra))\n .then(async (result) => {\n if (abortController.signal.aborted) {\n // Request was cancelled\n return;\n }\n const response = {\n result,\n jsonrpc: '2.0',\n id: request.id\n };\n // Queue or send the response based on whether this is a task-related request\n if (relatedTaskId && this._taskMessageQueue) {\n await this._enqueueTaskMessage(relatedTaskId, {\n type: 'response',\n message: response,\n timestamp: Date.now()\n }, capturedTransport?.sessionId);\n }\n else {\n await capturedTransport?.send(response);\n }\n }, async (error) => {\n if (abortController.signal.aborted) {\n // Request was cancelled\n return;\n }\n const errorResponse = {\n jsonrpc: '2.0',\n id: request.id,\n error: {\n code: Number.isSafeInteger(error['code']) ? error['code'] : ErrorCode.InternalError,\n message: error.message ?? 'Internal error',\n ...(error['data'] !== undefined && { data: error['data'] })\n }\n };\n // Queue or send the error response based on whether this is a task-related request\n if (relatedTaskId && this._taskMessageQueue) {\n await this._enqueueTaskMessage(relatedTaskId, {\n type: 'error',\n message: errorResponse,\n timestamp: Date.now()\n }, capturedTransport?.sessionId);\n }\n else {\n await capturedTransport?.send(errorResponse);\n }\n })\n .catch(error => this._onerror(new Error(`Failed to send response: ${error}`)))\n .finally(() => {\n this._requestHandlerAbortControllers.delete(request.id);\n });\n }\n _onprogress(notification) {\n const { progressToken, ...params } = notification.params;\n const messageId = Number(progressToken);\n const handler = this._progressHandlers.get(messageId);\n if (!handler) {\n this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));\n return;\n }\n const responseHandler = this._responseHandlers.get(messageId);\n const timeoutInfo = this._timeoutInfo.get(messageId);\n if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {\n try {\n this._resetTimeout(messageId);\n }\n catch (error) {\n // Clean up if maxTotalTimeout was exceeded\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n responseHandler(error);\n return;\n }\n }\n handler(params);\n }\n _onresponse(response) {\n const messageId = Number(response.id);\n // Check if this is a response to a queued request\n const resolver = this._requestResolvers.get(messageId);\n if (resolver) {\n this._requestResolvers.delete(messageId);\n if (isJSONRPCResultResponse(response)) {\n resolver(response);\n }\n else {\n const error = new McpError(response.error.code, response.error.message, response.error.data);\n resolver(error);\n }\n return;\n }\n const handler = this._responseHandlers.get(messageId);\n if (handler === undefined) {\n this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));\n return;\n }\n this._responseHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n // Keep progress handler alive for CreateTaskResult responses\n let isTaskResponse = false;\n if (isJSONRPCResultResponse(response) && response.result && typeof response.result === 'object') {\n const result = response.result;\n if (result.task && typeof result.task === 'object') {\n const task = result.task;\n if (typeof task.taskId === 'string') {\n isTaskResponse = true;\n this._taskProgressTokens.set(task.taskId, messageId);\n }\n }\n }\n if (!isTaskResponse) {\n this._progressHandlers.delete(messageId);\n }\n if (isJSONRPCResultResponse(response)) {\n handler(response);\n }\n else {\n const error = McpError.fromError(response.error.code, response.error.message, response.error.data);\n handler(error);\n }\n }\n get transport() {\n return this._transport;\n }\n /**\n * Closes the connection.\n */\n async close() {\n await this._transport?.close();\n }\n /**\n * Sends a request and returns an AsyncGenerator that yields response messages.\n * The generator is guaranteed to end with either a 'result' or 'error' message.\n *\n * @example\n * ```typescript\n * const stream = protocol.requestStream(request, resultSchema, options);\n * for await (const message of stream) {\n * switch (message.type) {\n * case 'taskCreated':\n * console.log('Task created:', message.task.taskId);\n * break;\n * case 'taskStatus':\n * console.log('Task status:', message.task.status);\n * break;\n * case 'result':\n * console.log('Final result:', message.result);\n * break;\n * case 'error':\n * console.error('Error:', message.error);\n * break;\n * }\n * }\n * ```\n *\n * @experimental Use `client.experimental.tasks.requestStream()` to access this method.\n */\n async *requestStream(request, resultSchema, options) {\n const { task } = options ?? {};\n // For non-task requests, just yield the result\n if (!task) {\n try {\n const result = await this.request(request, resultSchema, options);\n yield { type: 'result', result };\n }\n catch (error) {\n yield {\n type: 'error',\n error: error instanceof McpError ? error : new McpError(ErrorCode.InternalError, String(error))\n };\n }\n return;\n }\n // For task-augmented requests, we need to poll for status\n // First, make the request to create the task\n let taskId;\n try {\n // Send the request and get the CreateTaskResult\n const createResult = await this.request(request, CreateTaskResultSchema, options);\n // Extract taskId from the result\n if (createResult.task) {\n taskId = createResult.task.taskId;\n yield { type: 'taskCreated', task: createResult.task };\n }\n else {\n throw new McpError(ErrorCode.InternalError, 'Task creation did not return a task');\n }\n // Poll for task completion\n while (true) {\n // Get current task status\n const task = await this.getTask({ taskId }, options);\n yield { type: 'taskStatus', task };\n // Check if task is terminal\n if (isTerminal(task.status)) {\n if (task.status === 'completed') {\n // Get the final result\n const result = await this.getTaskResult({ taskId }, resultSchema, options);\n yield { type: 'result', result };\n }\n else if (task.status === 'failed') {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InternalError, `Task ${taskId} failed`)\n };\n }\n else if (task.status === 'cancelled') {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InternalError, `Task ${taskId} was cancelled`)\n };\n }\n return;\n }\n // When input_required, call tasks/result to deliver queued messages\n // (elicitation, sampling) via SSE and block until terminal\n if (task.status === 'input_required') {\n const result = await this.getTaskResult({ taskId }, resultSchema, options);\n yield { type: 'result', result };\n return;\n }\n // Wait before polling again\n const pollInterval = task.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1000;\n await new Promise(resolve => setTimeout(resolve, pollInterval));\n // Check if cancelled\n options?.signal?.throwIfAborted();\n }\n }\n catch (error) {\n yield {\n type: 'error',\n error: error instanceof McpError ? error : new McpError(ErrorCode.InternalError, String(error))\n };\n }\n }\n /**\n * Sends a request and waits for a response.\n *\n * Do not use this method to emit notifications! Use notification() instead.\n */\n request(request, resultSchema, options) {\n const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};\n // Send the request\n return new Promise((resolve, reject) => {\n const earlyReject = (error) => {\n reject(error);\n };\n if (!this._transport) {\n earlyReject(new Error('Not connected'));\n return;\n }\n if (this._options?.enforceStrictCapabilities === true) {\n try {\n this.assertCapabilityForMethod(request.method);\n // If task creation is requested, also check task capabilities\n if (task) {\n this.assertTaskCapability(request.method);\n }\n }\n catch (e) {\n earlyReject(e);\n return;\n }\n }\n options?.signal?.throwIfAborted();\n const messageId = this._requestMessageId++;\n const jsonrpcRequest = {\n ...request,\n jsonrpc: '2.0',\n id: messageId\n };\n if (options?.onprogress) {\n this._progressHandlers.set(messageId, options.onprogress);\n jsonrpcRequest.params = {\n ...request.params,\n _meta: {\n ...(request.params?._meta || {}),\n progressToken: messageId\n }\n };\n }\n // Augment with task creation parameters if provided\n if (task) {\n jsonrpcRequest.params = {\n ...jsonrpcRequest.params,\n task: task\n };\n }\n // Augment with related task metadata if relatedTask is provided\n if (relatedTask) {\n jsonrpcRequest.params = {\n ...jsonrpcRequest.params,\n _meta: {\n ...(jsonrpcRequest.params?._meta || {}),\n [RELATED_TASK_META_KEY]: relatedTask\n }\n };\n }\n const cancel = (reason) => {\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n this._transport\n ?.send({\n jsonrpc: '2.0',\n method: 'notifications/cancelled',\n params: {\n requestId: messageId,\n reason: String(reason)\n }\n }, { relatedRequestId, resumptionToken, onresumptiontoken })\n .catch(error => this._onerror(new Error(`Failed to send cancellation: ${error}`)));\n // Wrap the reason in an McpError if it isn't already\n const error = reason instanceof McpError ? reason : new McpError(ErrorCode.RequestTimeout, String(reason));\n reject(error);\n };\n this._responseHandlers.set(messageId, response => {\n if (options?.signal?.aborted) {\n return;\n }\n if (response instanceof Error) {\n return reject(response);\n }\n try {\n const parseResult = safeParse(resultSchema, response.result);\n if (!parseResult.success) {\n // Type guard: if success is false, error is guaranteed to exist\n reject(parseResult.error);\n }\n else {\n resolve(parseResult.data);\n }\n }\n catch (error) {\n reject(error);\n }\n });\n options?.signal?.addEventListener('abort', () => {\n cancel(options?.signal?.reason);\n });\n const timeout = options?.timeout ?? DEFAULT_REQUEST_TIMEOUT_MSEC;\n const timeoutHandler = () => cancel(McpError.fromError(ErrorCode.RequestTimeout, 'Request timed out', { timeout }));\n this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? false);\n // Queue request if related to a task\n const relatedTaskId = relatedTask?.taskId;\n if (relatedTaskId) {\n // Store the response resolver for this request so responses can be routed back\n const responseResolver = (response) => {\n const handler = this._responseHandlers.get(messageId);\n if (handler) {\n handler(response);\n }\n else {\n // Log error when resolver is missing, but don't fail\n this._onerror(new Error(`Response handler missing for side-channeled request ${messageId}`));\n }\n };\n this._requestResolvers.set(messageId, responseResolver);\n this._enqueueTaskMessage(relatedTaskId, {\n type: 'request',\n message: jsonrpcRequest,\n timestamp: Date.now()\n }).catch(error => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n // Don't send through transport - queued messages are delivered via tasks/result only\n // This prevents duplicate delivery for bidirectional transports\n }\n else {\n // No related task - send through transport normally\n this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch(error => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n }\n });\n }\n /**\n * Gets the current status of a task.\n *\n * @experimental Use `client.experimental.tasks.getTask()` to access this method.\n */\n async getTask(params, options) {\n // @ts-expect-error SendRequestT cannot directly contain GetTaskRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/get', params }, GetTaskResultSchema, options);\n }\n /**\n * Retrieves the result of a completed task.\n *\n * @experimental Use `client.experimental.tasks.getTaskResult()` to access this method.\n */\n async getTaskResult(params, resultSchema, options) {\n // @ts-expect-error SendRequestT cannot directly contain GetTaskPayloadRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/result', params }, resultSchema, options);\n }\n /**\n * Lists tasks, optionally starting from a pagination cursor.\n *\n * @experimental Use `client.experimental.tasks.listTasks()` to access this method.\n */\n async listTasks(params, options) {\n // @ts-expect-error SendRequestT cannot directly contain ListTasksRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/list', params }, ListTasksResultSchema, options);\n }\n /**\n * Cancels a specific task.\n *\n * @experimental Use `client.experimental.tasks.cancelTask()` to access this method.\n */\n async cancelTask(params, options) {\n // @ts-expect-error SendRequestT cannot directly contain CancelTaskRequest, but we ensure all type instantiations contain it anyways\n return this.request({ method: 'tasks/cancel', params }, CancelTaskResultSchema, options);\n }\n /**\n * Emits a notification, which is a one-way message that does not expect a response.\n */\n async notification(notification, options) {\n if (!this._transport) {\n throw new Error('Not connected');\n }\n this.assertNotificationCapability(notification.method);\n // Queue notification if related to a task\n const relatedTaskId = options?.relatedTask?.taskId;\n if (relatedTaskId) {\n // Build the JSONRPC notification with metadata\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0',\n params: {\n ...notification.params,\n _meta: {\n ...(notification.params?._meta || {}),\n [RELATED_TASK_META_KEY]: options.relatedTask\n }\n }\n };\n await this._enqueueTaskMessage(relatedTaskId, {\n type: 'notification',\n message: jsonrpcNotification,\n timestamp: Date.now()\n });\n // Don't send through transport - queued messages are delivered via tasks/result only\n // This prevents duplicate delivery for bidirectional transports\n return;\n }\n const debouncedMethods = this._options?.debouncedNotificationMethods ?? [];\n // A notification can only be debounced if it's in the list AND it's \"simple\"\n // (i.e., has no parameters and no related request ID or related task that could be lost).\n const canDebounce = debouncedMethods.includes(notification.method) && !notification.params && !options?.relatedRequestId && !options?.relatedTask;\n if (canDebounce) {\n // If a notification of this type is already scheduled, do nothing.\n if (this._pendingDebouncedNotifications.has(notification.method)) {\n return;\n }\n // Mark this notification type as pending.\n this._pendingDebouncedNotifications.add(notification.method);\n // Schedule the actual send to happen in the next microtask.\n // This allows all synchronous calls in the current event loop tick to be coalesced.\n Promise.resolve().then(() => {\n // Un-mark the notification so the next one can be scheduled.\n this._pendingDebouncedNotifications.delete(notification.method);\n // SAFETY CHECK: If the connection was closed while this was pending, abort.\n if (!this._transport) {\n return;\n }\n let jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0'\n };\n // Augment with related task metadata if relatedTask is provided\n if (options?.relatedTask) {\n jsonrpcNotification = {\n ...jsonrpcNotification,\n params: {\n ...jsonrpcNotification.params,\n _meta: {\n ...(jsonrpcNotification.params?._meta || {}),\n [RELATED_TASK_META_KEY]: options.relatedTask\n }\n }\n };\n }\n // Send the notification, but don't await it here to avoid blocking.\n // Handle potential errors with a .catch().\n this._transport?.send(jsonrpcNotification, options).catch(error => this._onerror(error));\n });\n // Return immediately.\n return;\n }\n let jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0'\n };\n // Augment with related task metadata if relatedTask is provided\n if (options?.relatedTask) {\n jsonrpcNotification = {\n ...jsonrpcNotification,\n params: {\n ...jsonrpcNotification.params,\n _meta: {\n ...(jsonrpcNotification.params?._meta || {}),\n [RELATED_TASK_META_KEY]: options.relatedTask\n }\n }\n };\n }\n await this._transport.send(jsonrpcNotification, options);\n }\n /**\n * Registers a handler to invoke when this protocol object receives a request with the given method.\n *\n * Note that this will replace any previous request handler for the same method.\n */\n setRequestHandler(requestSchema, handler) {\n const method = getMethodLiteral(requestSchema);\n this.assertRequestHandlerCapability(method);\n this._requestHandlers.set(method, (request, extra) => {\n const parsed = parseWithCompat(requestSchema, request);\n return Promise.resolve(handler(parsed, extra));\n });\n }\n /**\n * Removes the request handler for the given method.\n */\n removeRequestHandler(method) {\n this._requestHandlers.delete(method);\n }\n /**\n * Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed.\n */\n assertCanSetRequestHandler(method) {\n if (this._requestHandlers.has(method)) {\n throw new Error(`A request handler for ${method} already exists, which would be overridden`);\n }\n }\n /**\n * Registers a handler to invoke when this protocol object receives a notification with the given method.\n *\n * Note that this will replace any previous notification handler for the same method.\n */\n setNotificationHandler(notificationSchema, handler) {\n const method = getMethodLiteral(notificationSchema);\n this._notificationHandlers.set(method, notification => {\n const parsed = parseWithCompat(notificationSchema, notification);\n return Promise.resolve(handler(parsed));\n });\n }\n /**\n * Removes the notification handler for the given method.\n */\n removeNotificationHandler(method) {\n this._notificationHandlers.delete(method);\n }\n /**\n * Cleans up the progress handler associated with a task.\n * This should be called when a task reaches a terminal status.\n */\n _cleanupTaskProgressHandler(taskId) {\n const progressToken = this._taskProgressTokens.get(taskId);\n if (progressToken !== undefined) {\n this._progressHandlers.delete(progressToken);\n this._taskProgressTokens.delete(taskId);\n }\n }\n /**\n * Enqueues a task-related message for side-channel delivery via tasks/result.\n * @param taskId The task ID to associate the message with\n * @param message The message to enqueue\n * @param sessionId Optional session ID for binding the operation to a specific session\n * @throws Error if taskStore is not configured or if enqueue fails (e.g., queue overflow)\n *\n * Note: If enqueue fails, it's the TaskMessageQueue implementation's responsibility to handle\n * the error appropriately (e.g., by failing the task, logging, etc.). The Protocol layer\n * simply propagates the error.\n */\n async _enqueueTaskMessage(taskId, message, sessionId) {\n // Task message queues are only used when taskStore is configured\n if (!this._taskStore || !this._taskMessageQueue) {\n throw new Error('Cannot enqueue task message: taskStore and taskMessageQueue are not configured');\n }\n const maxQueueSize = this._options?.maxTaskQueueSize;\n await this._taskMessageQueue.enqueue(taskId, message, sessionId, maxQueueSize);\n }\n /**\n * Clears the message queue for a task and rejects any pending request resolvers.\n * @param taskId The task ID whose queue should be cleared\n * @param sessionId Optional session ID for binding the operation to a specific session\n */\n async _clearTaskQueue(taskId, sessionId) {\n if (this._taskMessageQueue) {\n // Reject any pending request resolvers\n const messages = await this._taskMessageQueue.dequeueAll(taskId, sessionId);\n for (const message of messages) {\n if (message.type === 'request' && isJSONRPCRequest(message.message)) {\n // Extract request ID from the message\n const requestId = message.message.id;\n const resolver = this._requestResolvers.get(requestId);\n if (resolver) {\n resolver(new McpError(ErrorCode.InternalError, 'Task cancelled or completed'));\n this._requestResolvers.delete(requestId);\n }\n else {\n // Log error when resolver is missing during cleanup for better observability\n this._onerror(new Error(`Resolver missing for request ${requestId} during task ${taskId} cleanup`));\n }\n }\n }\n }\n }\n /**\n * Waits for a task update (new messages or status change) with abort signal support.\n * Uses polling to check for updates at the task's configured poll interval.\n * @param taskId The task ID to wait for\n * @param signal Abort signal to cancel the wait\n * @returns Promise that resolves when an update occurs or rejects if aborted\n */\n async _waitForTaskUpdate(taskId, signal) {\n // Get the task's poll interval, falling back to default\n let interval = this._options?.defaultTaskPollInterval ?? 1000;\n try {\n const task = await this._taskStore?.getTask(taskId);\n if (task?.pollInterval) {\n interval = task.pollInterval;\n }\n }\n catch {\n // Use default interval if task lookup fails\n }\n return new Promise((resolve, reject) => {\n if (signal.aborted) {\n reject(new McpError(ErrorCode.InvalidRequest, 'Request cancelled'));\n return;\n }\n // Wait for the poll interval, then resolve so caller can check for updates\n const timeoutId = setTimeout(resolve, interval);\n // Clean up timeout and reject if aborted\n signal.addEventListener('abort', () => {\n clearTimeout(timeoutId);\n reject(new McpError(ErrorCode.InvalidRequest, 'Request cancelled'));\n }, { once: true });\n });\n }\n requestTaskStore(request, sessionId) {\n const taskStore = this._taskStore;\n if (!taskStore) {\n throw new Error('No task store configured');\n }\n return {\n createTask: async (taskParams) => {\n if (!request) {\n throw new Error('No request provided');\n }\n return await taskStore.createTask(taskParams, request.id, {\n method: request.method,\n params: request.params\n }, sessionId);\n },\n getTask: async (taskId) => {\n const task = await taskStore.getTask(taskId, sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, 'Failed to retrieve task: Task not found');\n }\n return task;\n },\n storeTaskResult: async (taskId, status, result) => {\n await taskStore.storeTaskResult(taskId, status, result, sessionId);\n // Get updated task state and send notification\n const task = await taskStore.getTask(taskId, sessionId);\n if (task) {\n const notification = TaskStatusNotificationSchema.parse({\n method: 'notifications/tasks/status',\n params: task\n });\n await this.notification(notification);\n if (isTerminal(task.status)) {\n this._cleanupTaskProgressHandler(taskId);\n // Don't clear queue here - it will be cleared after delivery via tasks/result\n }\n }\n },\n getTaskResult: taskId => {\n return taskStore.getTaskResult(taskId, sessionId);\n },\n updateTaskStatus: async (taskId, status, statusMessage) => {\n // Check if task exists\n const task = await taskStore.getTask(taskId, sessionId);\n if (!task) {\n throw new McpError(ErrorCode.InvalidParams, `Task \"${taskId}\" not found - it may have been cleaned up`);\n }\n // Don't allow transitions from terminal states\n if (isTerminal(task.status)) {\n throw new McpError(ErrorCode.InvalidParams, `Cannot update task \"${taskId}\" from terminal status \"${task.status}\" to \"${status}\". Terminal states (completed, failed, cancelled) cannot transition to other states.`);\n }\n await taskStore.updateTaskStatus(taskId, status, statusMessage, sessionId);\n // Get updated task state and send notification\n const updatedTask = await taskStore.getTask(taskId, sessionId);\n if (updatedTask) {\n const notification = TaskStatusNotificationSchema.parse({\n method: 'notifications/tasks/status',\n params: updatedTask\n });\n await this.notification(notification);\n if (isTerminal(updatedTask.status)) {\n this._cleanupTaskProgressHandler(taskId);\n // Don't clear queue here - it will be cleared after delivery via tasks/result\n }\n }\n },\n listTasks: cursor => {\n return taskStore.listTasks(cursor, sessionId);\n }\n };\n }\n}\nfunction isPlainObject(value) {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\nexport function mergeCapabilities(base, additional) {\n const result = { ...base };\n for (const key in additional) {\n const k = key;\n const addValue = additional[k];\n if (addValue === undefined)\n continue;\n const baseValue = result[k];\n if (isPlainObject(baseValue) && isPlainObject(addValue)) {\n result[k] = { ...baseValue, ...addValue };\n }\n else {\n result[k] = addValue;\n }\n }\n return result;\n}\n//# sourceMappingURL=protocol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n buffer.length = 0\n return true\n}\n\n/**\n * @param {Array} buffer\n * @param {Array} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n if (buffer.length) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== '') {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n buffer.length = 0\n }\n return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n /** @type {Array} */\n const address = []\n /** @type {Array} */\n const buffer = []\n let endipv6Encountered = false\n let endIpv6 = false\n\n let consume = consumeHextets\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume(buffer, address, output)) { break }\n if (++tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i > 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n address.push(':')\n continue\n } else if (cursor === '%') {\n if (!consume(buffer, address, output)) { break }\n // switch to zone detection\n consume = consumeIsZone\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (consume === consumeIsZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, isIPV6: true, escapedHost }\n } else {\n return { host, isIPV6: false }\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n const func = esc !== true ? escape : unescape\n if (component.scheme !== undefined) {\n component.scheme = func(component.scheme)\n }\n if (component.userinfo !== undefined) {\n component.userinfo = func(component.userinfo)\n }\n if (component.host !== undefined) {\n component.host = func(component.host)\n }\n if (component.path !== undefined) {\n component.path = func(component.path)\n }\n if (component.query !== undefined) {\n component.query = func(component.query)\n }\n if (component.fragment !== undefined) {\n component.fragment = func(component.fragment)\n }\n return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(component.userinfo)\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = unescape(component.host)\n if (!isIPv4(host)) {\n const ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = component.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(component.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const [path, query] = wsComponent.resourceName.split('?')\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = query\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n","'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (serialize(parse(uri, options), options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\n/**\n * @param {Readonly} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = escape(component.path)\n\n if (component.scheme !== undefined) {\n component.path = component.path.split('%3A').join(':')\n }\n } else {\n component.path = unescape(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', component.query)\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', component.fragment)\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const ipv6result = normalizeIPv6(parsed.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(getTime(true), compareTime),\n \"date-time\": fmtDef(getDateTime(true), compareDateTime),\n \"iso-time\": fmtDef(getTime(), compareIsoTime),\n \"iso-date-time\": fmtDef(getDateTime(), compareIsoDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\dt(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n \"iso-time\": fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoTime),\n \"iso-date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareIsoDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d(?:\\.\\d+)?)(z|([+-])(\\d\\d)(?::?(\\d\\d))?)?$/i;\nfunction getTime(strictTimeZone) {\n return function time(str) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hr = +matches[1];\n const min = +matches[2];\n const sec = +matches[3];\n const tz = matches[4];\n const tzSign = matches[5] === \"-\" ? -1 : 1;\n const tzH = +(matches[6] || 0);\n const tzM = +(matches[7] || 0);\n if (tzH > 23 || tzM > 59 || (strictTimeZone && !tz))\n return false;\n if (hr <= 23 && min <= 59 && sec < 60)\n return true;\n // leap second\n const utcMin = min - tzM * tzSign;\n const utcHr = hr - tzH * tzSign - (utcMin < 0 ? 1 : 0);\n return (utcHr === 23 || utcHr === -1) && (utcMin === 59 || utcMin === -1) && sec < 61;\n };\n}\nfunction compareTime(s1, s2) {\n if (!(s1 && s2))\n return undefined;\n const t1 = new Date(\"2020-01-01T\" + s1).valueOf();\n const t2 = new Date(\"2020-01-01T\" + s2).valueOf();\n if (!(t1 && t2))\n return undefined;\n return t1 - t2;\n}\nfunction compareIsoTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3];\n t2 = a2[1] + a2[2] + a2[3];\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction getDateTime(strictTimeZone) {\n const time = getTime(strictTimeZone);\n return function date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1]);\n };\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const d1 = new Date(dt1).valueOf();\n const d2 = new Date(dt2).valueOf();\n if (!(d1 && d2))\n return undefined;\n return d1 - d2;\n}\nfunction compareIsoDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", (0, codegen_1._) `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data((0, codegen_1.or)((0, codegen_1._) `typeof ${fmt} != \"object\"`, (0, codegen_1._) `${fmt} instanceof RegExp`, (0, codegen_1._) `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return (0, codegen_1._) `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n (0, limit_1.default)(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = (0, codegen_1._) `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","/**\n * AJV-based JSON Schema validator provider\n */\nimport Ajv from 'ajv';\nimport _addFormats from 'ajv-formats';\nfunction createDefaultAjvInstance() {\n const ajv = new Ajv({\n strict: false,\n validateFormats: true,\n validateSchema: false,\n allErrors: true\n });\n const addFormats = _addFormats;\n addFormats(ajv);\n return ajv;\n}\n/**\n * @example\n * ```typescript\n * // Use with default AJV instance (recommended)\n * import { AjvJsonSchemaValidator } from '@modelcontextprotocol/sdk/validation/ajv';\n * const validator = new AjvJsonSchemaValidator();\n *\n * // Use with custom AJV instance\n * import { Ajv } from 'ajv';\n * const ajv = new Ajv({ strict: true, allErrors: true });\n * const validator = new AjvJsonSchemaValidator(ajv);\n * ```\n */\nexport class AjvJsonSchemaValidator {\n /**\n * Create an AJV validator\n *\n * @param ajv - Optional pre-configured AJV instance. If not provided, a default instance will be created.\n *\n * @example\n * ```typescript\n * // Use default configuration (recommended for most cases)\n * import { AjvJsonSchemaValidator } from '@modelcontextprotocol/sdk/validation/ajv';\n * const validator = new AjvJsonSchemaValidator();\n *\n * // Or provide custom AJV instance for advanced configuration\n * import { Ajv } from 'ajv';\n * import addFormats from 'ajv-formats';\n *\n * const ajv = new Ajv({ validateFormats: true });\n * addFormats(ajv);\n * const validator = new AjvJsonSchemaValidator(ajv);\n * ```\n */\n constructor(ajv) {\n this._ajv = ajv ?? createDefaultAjvInstance();\n }\n /**\n * Create a validator for the given JSON Schema\n *\n * The validator is compiled once and can be reused multiple times.\n * If the schema has an $id, it will be cached by AJV automatically.\n *\n * @param schema - Standard JSON Schema object\n * @returns A validator function that validates input data\n */\n getValidator(schema) {\n // Check if schema has $id and is already compiled/cached\n const ajvValidator = '$id' in schema && typeof schema.$id === 'string'\n ? (this._ajv.getSchema(schema.$id) ?? this._ajv.compile(schema))\n : this._ajv.compile(schema);\n return (input) => {\n const valid = ajvValidator(input);\n if (valid) {\n return {\n valid: true,\n data: input,\n errorMessage: undefined\n };\n }\n else {\n return {\n valid: false,\n data: undefined,\n errorMessage: this._ajv.errorsText(ajvValidator.errors)\n };\n }\n };\n }\n}\n//# sourceMappingURL=ajv-provider.js.map","/**\n * Experimental client task features for MCP SDK.\n * WARNING: These APIs are experimental and may change without notice.\n *\n * @experimental\n */\nimport { CallToolResultSchema, McpError, ErrorCode } from '../../types.js';\n/**\n * Experimental task features for MCP clients.\n *\n * Access via `client.experimental.tasks`:\n * ```typescript\n * const stream = client.experimental.tasks.callToolStream({ name: 'tool', arguments: {} });\n * const task = await client.experimental.tasks.getTask(taskId);\n * ```\n *\n * @experimental\n */\nexport class ExperimentalClientTasks {\n constructor(_client) {\n this._client = _client;\n }\n /**\n * Calls a tool and returns an AsyncGenerator that yields response messages.\n * The generator is guaranteed to end with either a 'result' or 'error' message.\n *\n * This method provides streaming access to tool execution, allowing you to\n * observe intermediate task status updates for long-running tool calls.\n * Automatically validates structured output if the tool has an outputSchema.\n *\n * @example\n * ```typescript\n * const stream = client.experimental.tasks.callToolStream({ name: 'myTool', arguments: {} });\n * for await (const message of stream) {\n * switch (message.type) {\n * case 'taskCreated':\n * console.log('Tool execution started:', message.task.taskId);\n * break;\n * case 'taskStatus':\n * console.log('Tool status:', message.task.status);\n * break;\n * case 'result':\n * console.log('Tool result:', message.result);\n * break;\n * case 'error':\n * console.error('Tool error:', message.error);\n * break;\n * }\n * }\n * ```\n *\n * @param params - Tool call parameters (name and arguments)\n * @param resultSchema - Zod schema for validating the result (defaults to CallToolResultSchema)\n * @param options - Optional request options (timeout, signal, task creation params, etc.)\n * @returns AsyncGenerator that yields ResponseMessage objects\n *\n * @experimental\n */\n async *callToolStream(params, resultSchema = CallToolResultSchema, options) {\n // Access Client's internal methods\n const clientInternal = this._client;\n // Add task creation parameters if server supports it and not explicitly provided\n const optionsWithTask = {\n ...options,\n // We check if the tool is known to be a task during auto-configuration, but assume\n // the caller knows what they're doing if they pass this explicitly\n task: options?.task ?? (clientInternal.isToolTask(params.name) ? {} : undefined)\n };\n const stream = clientInternal.requestStream({ method: 'tools/call', params }, resultSchema, optionsWithTask);\n // Get the validator for this tool (if it has an output schema)\n const validator = clientInternal.getToolOutputValidator(params.name);\n // Iterate through the stream and validate the final result if needed\n for await (const message of stream) {\n // If this is a result message and the tool has an output schema, validate it\n if (message.type === 'result' && validator) {\n const result = message.result;\n // If tool has outputSchema, it MUST return structuredContent (unless it's an error)\n if (!result.structuredContent && !result.isError) {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InvalidRequest, `Tool ${params.name} has an output schema but did not return structured content`)\n };\n return;\n }\n // Only validate structured content if present (not when there's an error)\n if (result.structuredContent) {\n try {\n // Validate the structured content against the schema\n const validationResult = validator(result.structuredContent);\n if (!validationResult.valid) {\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InvalidParams, `Structured content does not match the tool's output schema: ${validationResult.errorMessage}`)\n };\n return;\n }\n }\n catch (error) {\n if (error instanceof McpError) {\n yield { type: 'error', error };\n return;\n }\n yield {\n type: 'error',\n error: new McpError(ErrorCode.InvalidParams, `Failed to validate structured content: ${error instanceof Error ? error.message : String(error)}`)\n };\n return;\n }\n }\n }\n // Yield the message (either validated result or any other message type)\n yield message;\n }\n }\n /**\n * Gets the current status of a task.\n *\n * @param taskId - The task identifier\n * @param options - Optional request options\n * @returns The task status\n *\n * @experimental\n */\n async getTask(taskId, options) {\n return this._client.getTask({ taskId }, options);\n }\n /**\n * Retrieves the result of a completed task.\n *\n * @param taskId - The task identifier\n * @param resultSchema - Zod schema for validating the result\n * @param options - Optional request options\n * @returns The task result\n *\n * @experimental\n */\n async getTaskResult(taskId, resultSchema, options) {\n // Delegate to the client's underlying Protocol method\n return this._client.getTaskResult({ taskId }, resultSchema, options);\n }\n /**\n * Lists tasks with optional pagination.\n *\n * @param cursor - Optional pagination cursor\n * @param options - Optional request options\n * @returns List of tasks with optional next cursor\n *\n * @experimental\n */\n async listTasks(cursor, options) {\n // Delegate to the client's underlying Protocol method\n return this._client.listTasks(cursor ? { cursor } : undefined, options);\n }\n /**\n * Cancels a running task.\n *\n * @param taskId - The task identifier\n * @param options - Optional request options\n *\n * @experimental\n */\n async cancelTask(taskId, options) {\n // Delegate to the client's underlying Protocol method\n return this._client.cancelTask({ taskId }, options);\n }\n /**\n * Sends a request and returns an AsyncGenerator that yields response messages.\n * The generator is guaranteed to end with either a 'result' or 'error' message.\n *\n * This method provides streaming access to request processing, allowing you to\n * observe intermediate task status updates for task-augmented requests.\n *\n * @param request - The request to send\n * @param resultSchema - Zod schema for validating the result\n * @param options - Optional request options (timeout, signal, task creation params, etc.)\n * @returns AsyncGenerator that yields ResponseMessage objects\n *\n * @experimental\n */\n requestStream(request, resultSchema, options) {\n return this._client.requestStream(request, resultSchema, options);\n }\n}\n//# sourceMappingURL=client.js.map","/**\n * Experimental task capability assertion helpers.\n * WARNING: These APIs are experimental and may change without notice.\n *\n * @experimental\n */\n/**\n * Asserts that task creation is supported for tools/call.\n * Used by Client.assertTaskCapability and Server.assertTaskHandlerCapability.\n *\n * @param requests - The task requests capability object\n * @param method - The method being checked\n * @param entityName - 'Server' or 'Client' for error messages\n * @throws Error if the capability is not supported\n *\n * @experimental\n */\nexport function assertToolsCallTaskCapability(requests, method, entityName) {\n if (!requests) {\n throw new Error(`${entityName} does not support task creation (required for ${method})`);\n }\n switch (method) {\n case 'tools/call':\n if (!requests.tools?.call) {\n throw new Error(`${entityName} does not support task creation for tools/call (required for ${method})`);\n }\n break;\n default:\n // Method doesn't support tasks, which is fine - no error\n break;\n }\n}\n/**\n * Asserts that task creation is supported for sampling/createMessage or elicitation/create.\n * Used by Server.assertTaskCapability and Client.assertTaskHandlerCapability.\n *\n * @param requests - The task requests capability object\n * @param method - The method being checked\n * @param entityName - 'Server' or 'Client' for error messages\n * @throws Error if the capability is not supported\n *\n * @experimental\n */\nexport function assertClientRequestTaskCapability(requests, method, entityName) {\n if (!requests) {\n throw new Error(`${entityName} does not support task creation (required for ${method})`);\n }\n switch (method) {\n case 'sampling/createMessage':\n if (!requests.sampling?.createMessage) {\n throw new Error(`${entityName} does not support task creation for sampling/createMessage (required for ${method})`);\n }\n break;\n case 'elicitation/create':\n if (!requests.elicitation?.create) {\n throw new Error(`${entityName} does not support task creation for elicitation/create (required for ${method})`);\n }\n break;\n default:\n // Method doesn't support tasks, which is fine - no error\n break;\n }\n}\n//# sourceMappingURL=helpers.js.map","import { mergeCapabilities, Protocol } from '../shared/protocol.js';\nimport { CallToolResultSchema, CompleteResultSchema, EmptyResultSchema, ErrorCode, GetPromptResultSchema, InitializeResultSchema, LATEST_PROTOCOL_VERSION, ListPromptsResultSchema, ListResourcesResultSchema, ListResourceTemplatesResultSchema, ListToolsResultSchema, McpError, ReadResourceResultSchema, SUPPORTED_PROTOCOL_VERSIONS, ElicitResultSchema, ElicitRequestSchema, CreateTaskResultSchema, CreateMessageRequestSchema, CreateMessageResultSchema, ToolListChangedNotificationSchema, PromptListChangedNotificationSchema, ResourceListChangedNotificationSchema, ListChangedOptionsBaseSchema } from '../types.js';\nimport { AjvJsonSchemaValidator } from '../validation/ajv-provider.js';\nimport { getObjectShape, isZ4Schema, safeParse } from '../server/zod-compat.js';\nimport { ExperimentalClientTasks } from '../experimental/tasks/client.js';\nimport { assertToolsCallTaskCapability, assertClientRequestTaskCapability } from '../experimental/tasks/helpers.js';\n/**\n * Elicitation default application helper. Applies defaults to the data based on the schema.\n *\n * @param schema - The schema to apply defaults to.\n * @param data - The data to apply defaults to.\n */\nfunction applyElicitationDefaults(schema, data) {\n if (!schema || data === null || typeof data !== 'object')\n return;\n // Handle object properties\n if (schema.type === 'object' && schema.properties && typeof schema.properties === 'object') {\n const obj = data;\n const props = schema.properties;\n for (const key of Object.keys(props)) {\n const propSchema = props[key];\n // If missing or explicitly undefined, apply default if present\n if (obj[key] === undefined && Object.prototype.hasOwnProperty.call(propSchema, 'default')) {\n obj[key] = propSchema.default;\n }\n // Recurse into existing nested objects/arrays\n if (obj[key] !== undefined) {\n applyElicitationDefaults(propSchema, obj[key]);\n }\n }\n }\n if (Array.isArray(schema.anyOf)) {\n for (const sub of schema.anyOf) {\n // Skip boolean schemas (true/false are valid JSON Schemas but have no defaults)\n if (typeof sub !== 'boolean') {\n applyElicitationDefaults(sub, data);\n }\n }\n }\n // Combine schemas\n if (Array.isArray(schema.oneOf)) {\n for (const sub of schema.oneOf) {\n // Skip boolean schemas (true/false are valid JSON Schemas but have no defaults)\n if (typeof sub !== 'boolean') {\n applyElicitationDefaults(sub, data);\n }\n }\n }\n}\n/**\n * Determines which elicitation modes are supported based on declared client capabilities.\n *\n * According to the spec:\n * - An empty elicitation capability object defaults to form mode support (backwards compatibility)\n * - URL mode is only supported if explicitly declared\n *\n * @param capabilities - The client's elicitation capabilities\n * @returns An object indicating which modes are supported\n */\nexport function getSupportedElicitationModes(capabilities) {\n if (!capabilities) {\n return { supportsFormMode: false, supportsUrlMode: false };\n }\n const hasFormCapability = capabilities.form !== undefined;\n const hasUrlCapability = capabilities.url !== undefined;\n // If neither form nor url are explicitly declared, form mode is supported (backwards compatibility)\n const supportsFormMode = hasFormCapability || (!hasFormCapability && !hasUrlCapability);\n const supportsUrlMode = hasUrlCapability;\n return { supportsFormMode, supportsUrlMode };\n}\n/**\n * An MCP client on top of a pluggable transport.\n *\n * The client will automatically begin the initialization flow with the server when connect() is called.\n *\n * To use with custom types, extend the base Request/Notification/Result types and pass them as type parameters:\n *\n * ```typescript\n * // Custom schemas\n * const CustomRequestSchema = RequestSchema.extend({...})\n * const CustomNotificationSchema = NotificationSchema.extend({...})\n * const CustomResultSchema = ResultSchema.extend({...})\n *\n * // Type aliases\n * type CustomRequest = z.infer\n * type CustomNotification = z.infer\n * type CustomResult = z.infer\n *\n * // Create typed client\n * const client = new Client({\n * name: \"CustomClient\",\n * version: \"1.0.0\"\n * })\n * ```\n */\nexport class Client extends Protocol {\n /**\n * Initializes this client with the given name and version information.\n */\n constructor(_clientInfo, options) {\n super(options);\n this._clientInfo = _clientInfo;\n this._cachedToolOutputValidators = new Map();\n this._cachedKnownTaskTools = new Set();\n this._cachedRequiredTaskTools = new Set();\n this._listChangedDebounceTimers = new Map();\n this._capabilities = options?.capabilities ?? {};\n this._jsonSchemaValidator = options?.jsonSchemaValidator ?? new AjvJsonSchemaValidator();\n // Store list changed config for setup after connection (when we know server capabilities)\n if (options?.listChanged) {\n this._pendingListChangedConfig = options.listChanged;\n }\n }\n /**\n * Set up handlers for list changed notifications based on config and server capabilities.\n * This should only be called after initialization when server capabilities are known.\n * Handlers are silently skipped if the server doesn't advertise the corresponding listChanged capability.\n * @internal\n */\n _setupListChangedHandlers(config) {\n if (config.tools && this._serverCapabilities?.tools?.listChanged) {\n this._setupListChangedHandler('tools', ToolListChangedNotificationSchema, config.tools, async () => {\n const result = await this.listTools();\n return result.tools;\n });\n }\n if (config.prompts && this._serverCapabilities?.prompts?.listChanged) {\n this._setupListChangedHandler('prompts', PromptListChangedNotificationSchema, config.prompts, async () => {\n const result = await this.listPrompts();\n return result.prompts;\n });\n }\n if (config.resources && this._serverCapabilities?.resources?.listChanged) {\n this._setupListChangedHandler('resources', ResourceListChangedNotificationSchema, config.resources, async () => {\n const result = await this.listResources();\n return result.resources;\n });\n }\n }\n /**\n * Access experimental features.\n *\n * WARNING: These APIs are experimental and may change without notice.\n *\n * @experimental\n */\n get experimental() {\n if (!this._experimental) {\n this._experimental = {\n tasks: new ExperimentalClientTasks(this)\n };\n }\n return this._experimental;\n }\n /**\n * Registers new capabilities. This can only be called before connecting to a transport.\n *\n * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).\n */\n registerCapabilities(capabilities) {\n if (this.transport) {\n throw new Error('Cannot register capabilities after connecting to transport');\n }\n this._capabilities = mergeCapabilities(this._capabilities, capabilities);\n }\n /**\n * Override request handler registration to enforce client-side validation for elicitation.\n */\n setRequestHandler(requestSchema, handler) {\n const shape = getObjectShape(requestSchema);\n const methodSchema = shape?.method;\n if (!methodSchema) {\n throw new Error('Schema is missing a method literal');\n }\n // Extract literal value using type-safe property access\n let methodValue;\n if (isZ4Schema(methodSchema)) {\n const v4Schema = methodSchema;\n const v4Def = v4Schema._zod?.def;\n methodValue = v4Def?.value ?? v4Schema.value;\n }\n else {\n const v3Schema = methodSchema;\n const legacyDef = v3Schema._def;\n methodValue = legacyDef?.value ?? v3Schema.value;\n }\n if (typeof methodValue !== 'string') {\n throw new Error('Schema method literal must be a string');\n }\n const method = methodValue;\n if (method === 'elicitation/create') {\n const wrappedHandler = async (request, extra) => {\n const validatedRequest = safeParse(ElicitRequestSchema, request);\n if (!validatedRequest.success) {\n // Type guard: if success is false, error is guaranteed to exist\n const errorMessage = validatedRequest.error instanceof Error ? validatedRequest.error.message : String(validatedRequest.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid elicitation request: ${errorMessage}`);\n }\n const { params } = validatedRequest.data;\n params.mode = params.mode ?? 'form';\n const { supportsFormMode, supportsUrlMode } = getSupportedElicitationModes(this._capabilities.elicitation);\n if (params.mode === 'form' && !supportsFormMode) {\n throw new McpError(ErrorCode.InvalidParams, 'Client does not support form-mode elicitation requests');\n }\n if (params.mode === 'url' && !supportsUrlMode) {\n throw new McpError(ErrorCode.InvalidParams, 'Client does not support URL-mode elicitation requests');\n }\n const result = await Promise.resolve(handler(request, extra));\n // When task creation is requested, validate and return CreateTaskResult\n if (params.task) {\n const taskValidationResult = safeParse(CreateTaskResultSchema, result);\n if (!taskValidationResult.success) {\n const errorMessage = taskValidationResult.error instanceof Error\n ? taskValidationResult.error.message\n : String(taskValidationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid task creation result: ${errorMessage}`);\n }\n return taskValidationResult.data;\n }\n // For non-task requests, validate against ElicitResultSchema\n const validationResult = safeParse(ElicitResultSchema, result);\n if (!validationResult.success) {\n // Type guard: if success is false, error is guaranteed to exist\n const errorMessage = validationResult.error instanceof Error ? validationResult.error.message : String(validationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid elicitation result: ${errorMessage}`);\n }\n const validatedResult = validationResult.data;\n const requestedSchema = params.mode === 'form' ? params.requestedSchema : undefined;\n if (params.mode === 'form' && validatedResult.action === 'accept' && validatedResult.content && requestedSchema) {\n if (this._capabilities.elicitation?.form?.applyDefaults) {\n try {\n applyElicitationDefaults(requestedSchema, validatedResult.content);\n }\n catch {\n // gracefully ignore errors in default application\n }\n }\n }\n return validatedResult;\n };\n // Install the wrapped handler\n return super.setRequestHandler(requestSchema, wrappedHandler);\n }\n if (method === 'sampling/createMessage') {\n const wrappedHandler = async (request, extra) => {\n const validatedRequest = safeParse(CreateMessageRequestSchema, request);\n if (!validatedRequest.success) {\n const errorMessage = validatedRequest.error instanceof Error ? validatedRequest.error.message : String(validatedRequest.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid sampling request: ${errorMessage}`);\n }\n const { params } = validatedRequest.data;\n const result = await Promise.resolve(handler(request, extra));\n // When task creation is requested, validate and return CreateTaskResult\n if (params.task) {\n const taskValidationResult = safeParse(CreateTaskResultSchema, result);\n if (!taskValidationResult.success) {\n const errorMessage = taskValidationResult.error instanceof Error\n ? taskValidationResult.error.message\n : String(taskValidationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid task creation result: ${errorMessage}`);\n }\n return taskValidationResult.data;\n }\n // For non-task requests, validate against CreateMessageResultSchema\n const validationResult = safeParse(CreateMessageResultSchema, result);\n if (!validationResult.success) {\n const errorMessage = validationResult.error instanceof Error ? validationResult.error.message : String(validationResult.error);\n throw new McpError(ErrorCode.InvalidParams, `Invalid sampling result: ${errorMessage}`);\n }\n return validationResult.data;\n };\n // Install the wrapped handler\n return super.setRequestHandler(requestSchema, wrappedHandler);\n }\n // Other handlers use default behavior\n return super.setRequestHandler(requestSchema, handler);\n }\n assertCapability(capability, method) {\n if (!this._serverCapabilities?.[capability]) {\n throw new Error(`Server does not support ${capability} (required for ${method})`);\n }\n }\n async connect(transport, options) {\n await super.connect(transport);\n // When transport sessionId is already set this means we are trying to reconnect.\n // In this case we don't need to initialize again.\n if (transport.sessionId !== undefined) {\n return;\n }\n try {\n const result = await this.request({\n method: 'initialize',\n params: {\n protocolVersion: LATEST_PROTOCOL_VERSION,\n capabilities: this._capabilities,\n clientInfo: this._clientInfo\n }\n }, InitializeResultSchema, options);\n if (result === undefined) {\n throw new Error(`Server sent invalid initialize result: ${result}`);\n }\n if (!SUPPORTED_PROTOCOL_VERSIONS.includes(result.protocolVersion)) {\n throw new Error(`Server's protocol version is not supported: ${result.protocolVersion}`);\n }\n this._serverCapabilities = result.capabilities;\n this._serverVersion = result.serverInfo;\n // HTTP transports must set the protocol version in each header after initialization.\n if (transport.setProtocolVersion) {\n transport.setProtocolVersion(result.protocolVersion);\n }\n this._instructions = result.instructions;\n await this.notification({\n method: 'notifications/initialized'\n });\n // Set up list changed handlers now that we know server capabilities\n if (this._pendingListChangedConfig) {\n this._setupListChangedHandlers(this._pendingListChangedConfig);\n this._pendingListChangedConfig = undefined;\n }\n }\n catch (error) {\n // Disconnect if initialization fails.\n void this.close();\n throw error;\n }\n }\n /**\n * After initialization has completed, this will be populated with the server's reported capabilities.\n */\n getServerCapabilities() {\n return this._serverCapabilities;\n }\n /**\n * After initialization has completed, this will be populated with information about the server's name and version.\n */\n getServerVersion() {\n return this._serverVersion;\n }\n /**\n * After initialization has completed, this may be populated with information about the server's instructions.\n */\n getInstructions() {\n return this._instructions;\n }\n assertCapabilityForMethod(method) {\n switch (method) {\n case 'logging/setLevel':\n if (!this._serverCapabilities?.logging) {\n throw new Error(`Server does not support logging (required for ${method})`);\n }\n break;\n case 'prompts/get':\n case 'prompts/list':\n if (!this._serverCapabilities?.prompts) {\n throw new Error(`Server does not support prompts (required for ${method})`);\n }\n break;\n case 'resources/list':\n case 'resources/templates/list':\n case 'resources/read':\n case 'resources/subscribe':\n case 'resources/unsubscribe':\n if (!this._serverCapabilities?.resources) {\n throw new Error(`Server does not support resources (required for ${method})`);\n }\n if (method === 'resources/subscribe' && !this._serverCapabilities.resources.subscribe) {\n throw new Error(`Server does not support resource subscriptions (required for ${method})`);\n }\n break;\n case 'tools/call':\n case 'tools/list':\n if (!this._serverCapabilities?.tools) {\n throw new Error(`Server does not support tools (required for ${method})`);\n }\n break;\n case 'completion/complete':\n if (!this._serverCapabilities?.completions) {\n throw new Error(`Server does not support completions (required for ${method})`);\n }\n break;\n case 'initialize':\n // No specific capability required for initialize\n break;\n case 'ping':\n // No specific capability required for ping\n break;\n }\n }\n assertNotificationCapability(method) {\n switch (method) {\n case 'notifications/roots/list_changed':\n if (!this._capabilities.roots?.listChanged) {\n throw new Error(`Client does not support roots list changed notifications (required for ${method})`);\n }\n break;\n case 'notifications/initialized':\n // No specific capability required for initialized\n break;\n case 'notifications/cancelled':\n // Cancellation notifications are always allowed\n break;\n case 'notifications/progress':\n // Progress notifications are always allowed\n break;\n }\n }\n assertRequestHandlerCapability(method) {\n // Task handlers are registered in Protocol constructor before _capabilities is initialized\n // Skip capability check for task methods during initialization\n if (!this._capabilities) {\n return;\n }\n switch (method) {\n case 'sampling/createMessage':\n if (!this._capabilities.sampling) {\n throw new Error(`Client does not support sampling capability (required for ${method})`);\n }\n break;\n case 'elicitation/create':\n if (!this._capabilities.elicitation) {\n throw new Error(`Client does not support elicitation capability (required for ${method})`);\n }\n break;\n case 'roots/list':\n if (!this._capabilities.roots) {\n throw new Error(`Client does not support roots capability (required for ${method})`);\n }\n break;\n case 'tasks/get':\n case 'tasks/list':\n case 'tasks/result':\n case 'tasks/cancel':\n if (!this._capabilities.tasks) {\n throw new Error(`Client does not support tasks capability (required for ${method})`);\n }\n break;\n case 'ping':\n // No specific capability required for ping\n break;\n }\n }\n assertTaskCapability(method) {\n assertToolsCallTaskCapability(this._serverCapabilities?.tasks?.requests, method, 'Server');\n }\n assertTaskHandlerCapability(method) {\n // Task handlers are registered in Protocol constructor before _capabilities is initialized\n // Skip capability check for task methods during initialization\n if (!this._capabilities) {\n return;\n }\n assertClientRequestTaskCapability(this._capabilities.tasks?.requests, method, 'Client');\n }\n async ping(options) {\n return this.request({ method: 'ping' }, EmptyResultSchema, options);\n }\n async complete(params, options) {\n return this.request({ method: 'completion/complete', params }, CompleteResultSchema, options);\n }\n async setLoggingLevel(level, options) {\n return this.request({ method: 'logging/setLevel', params: { level } }, EmptyResultSchema, options);\n }\n async getPrompt(params, options) {\n return this.request({ method: 'prompts/get', params }, GetPromptResultSchema, options);\n }\n async listPrompts(params, options) {\n return this.request({ method: 'prompts/list', params }, ListPromptsResultSchema, options);\n }\n async listResources(params, options) {\n return this.request({ method: 'resources/list', params }, ListResourcesResultSchema, options);\n }\n async listResourceTemplates(params, options) {\n return this.request({ method: 'resources/templates/list', params }, ListResourceTemplatesResultSchema, options);\n }\n async readResource(params, options) {\n return this.request({ method: 'resources/read', params }, ReadResourceResultSchema, options);\n }\n async subscribeResource(params, options) {\n return this.request({ method: 'resources/subscribe', params }, EmptyResultSchema, options);\n }\n async unsubscribeResource(params, options) {\n return this.request({ method: 'resources/unsubscribe', params }, EmptyResultSchema, options);\n }\n /**\n * Calls a tool and waits for the result. Automatically validates structured output if the tool has an outputSchema.\n *\n * For task-based execution with streaming behavior, use client.experimental.tasks.callToolStream() instead.\n */\n async callTool(params, resultSchema = CallToolResultSchema, options) {\n // Guard: required-task tools need experimental API\n if (this.isToolTaskRequired(params.name)) {\n throw new McpError(ErrorCode.InvalidRequest, `Tool \"${params.name}\" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);\n }\n const result = await this.request({ method: 'tools/call', params }, resultSchema, options);\n // Check if the tool has an outputSchema\n const validator = this.getToolOutputValidator(params.name);\n if (validator) {\n // If tool has outputSchema, it MUST return structuredContent (unless it's an error)\n if (!result.structuredContent && !result.isError) {\n throw new McpError(ErrorCode.InvalidRequest, `Tool ${params.name} has an output schema but did not return structured content`);\n }\n // Only validate structured content if present (not when there's an error)\n if (result.structuredContent) {\n try {\n // Validate the structured content against the schema\n const validationResult = validator(result.structuredContent);\n if (!validationResult.valid) {\n throw new McpError(ErrorCode.InvalidParams, `Structured content does not match the tool's output schema: ${validationResult.errorMessage}`);\n }\n }\n catch (error) {\n if (error instanceof McpError) {\n throw error;\n }\n throw new McpError(ErrorCode.InvalidParams, `Failed to validate structured content: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n }\n return result;\n }\n isToolTask(toolName) {\n if (!this._serverCapabilities?.tasks?.requests?.tools?.call) {\n return false;\n }\n return this._cachedKnownTaskTools.has(toolName);\n }\n /**\n * Check if a tool requires task-based execution.\n * Unlike isToolTask which includes 'optional' tools, this only checks for 'required'.\n */\n isToolTaskRequired(toolName) {\n return this._cachedRequiredTaskTools.has(toolName);\n }\n /**\n * Cache validators for tool output schemas.\n * Called after listTools() to pre-compile validators for better performance.\n */\n cacheToolMetadata(tools) {\n this._cachedToolOutputValidators.clear();\n this._cachedKnownTaskTools.clear();\n this._cachedRequiredTaskTools.clear();\n for (const tool of tools) {\n // If the tool has an outputSchema, create and cache the validator\n if (tool.outputSchema) {\n const toolValidator = this._jsonSchemaValidator.getValidator(tool.outputSchema);\n this._cachedToolOutputValidators.set(tool.name, toolValidator);\n }\n // If the tool supports task-based execution, cache that information\n const taskSupport = tool.execution?.taskSupport;\n if (taskSupport === 'required' || taskSupport === 'optional') {\n this._cachedKnownTaskTools.add(tool.name);\n }\n if (taskSupport === 'required') {\n this._cachedRequiredTaskTools.add(tool.name);\n }\n }\n }\n /**\n * Get cached validator for a tool\n */\n getToolOutputValidator(toolName) {\n return this._cachedToolOutputValidators.get(toolName);\n }\n async listTools(params, options) {\n const result = await this.request({ method: 'tools/list', params }, ListToolsResultSchema, options);\n // Cache the tools and their output schemas for future validation\n this.cacheToolMetadata(result.tools);\n return result;\n }\n /**\n * Set up a single list changed handler.\n * @internal\n */\n _setupListChangedHandler(listType, notificationSchema, options, fetcher) {\n // Validate options using Zod schema (validates autoRefresh and debounceMs)\n const parseResult = ListChangedOptionsBaseSchema.safeParse(options);\n if (!parseResult.success) {\n throw new Error(`Invalid ${listType} listChanged options: ${parseResult.error.message}`);\n }\n // Validate callback\n if (typeof options.onChanged !== 'function') {\n throw new Error(`Invalid ${listType} listChanged options: onChanged must be a function`);\n }\n const { autoRefresh, debounceMs } = parseResult.data;\n const { onChanged } = options;\n const refresh = async () => {\n if (!autoRefresh) {\n onChanged(null, null);\n return;\n }\n try {\n const items = await fetcher();\n onChanged(null, items);\n }\n catch (e) {\n const error = e instanceof Error ? e : new Error(String(e));\n onChanged(error, null);\n }\n };\n const handler = () => {\n if (debounceMs) {\n // Clear any pending debounce timer for this list type\n const existingTimer = this._listChangedDebounceTimers.get(listType);\n if (existingTimer) {\n clearTimeout(existingTimer);\n }\n // Set up debounced refresh\n const timer = setTimeout(refresh, debounceMs);\n this._listChangedDebounceTimers.set(listType, timer);\n }\n else {\n // No debounce, refresh immediately\n refresh();\n }\n };\n // Register notification handler\n this.setNotificationHandler(notificationSchema, handler);\n }\n async sendRootsListChanged() {\n return this.notification({ method: 'notifications/roots/list_changed' });\n }\n}\n//# sourceMappingURL=index.js.map","/**\n * Normalizes HeadersInit to a plain Record for manipulation.\n * Handles Headers objects, arrays of tuples, and plain objects.\n */\nexport function normalizeHeaders(headers) {\n if (!headers)\n return {};\n if (headers instanceof Headers) {\n return Object.fromEntries(headers.entries());\n }\n if (Array.isArray(headers)) {\n return Object.fromEntries(headers);\n }\n return { ...headers };\n}\n/**\n * Creates a fetch function that includes base RequestInit options.\n * This ensures requests inherit settings like credentials, mode, headers, etc. from the base init.\n *\n * @param baseFetch - The base fetch function to wrap (defaults to global fetch)\n * @param baseInit - The base RequestInit to merge with each request\n * @returns A wrapped fetch function that merges base options with call-specific options\n */\nexport function createFetchWithInit(baseFetch = fetch, baseInit) {\n if (!baseInit) {\n return baseFetch;\n }\n // Return a wrapped fetch that merges base RequestInit with call-specific init\n return async (url, init) => {\n const mergedInit = {\n ...baseInit,\n ...init,\n // Headers need special handling - merge instead of replace\n headers: init?.headers ? { ...normalizeHeaders(baseInit.headers), ...normalizeHeaders(init.headers) } : baseInit.headers\n };\n return baseFetch(url, mergedInit);\n };\n}\n//# sourceMappingURL=transport.js.map","let crypto;\ncrypto =\n globalThis.crypto?.webcrypto ?? // Node.js [18-16] REPL\n globalThis.crypto ?? // Node.js >18\n import(\"node:crypto\").then(m => m.webcrypto); // Node.js <18 Non-REPL\n/**\n * Creates an array of length `size` of random bytes\n * @param size\n * @returns Array of random ints (0 to 255)\n */\nasync function getRandomValues(size) {\n return (await crypto).getRandomValues(new Uint8Array(size));\n}\n/** Generate cryptographically strong random string\n * @param size The desired length of the string\n * @returns The random string\n */\nasync function random(size) {\n const mask = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~\";\n let result = \"\";\n const randomUints = await getRandomValues(size);\n for (let i = 0; i < size; i++) {\n // cap the value of the randomIndex to mask.length - 1\n const randomIndex = randomUints[i] % mask.length;\n result += mask[randomIndex];\n }\n return result;\n}\n/** Generate a PKCE challenge verifier\n * @param length Length of the verifier\n * @returns A random verifier `length` characters long\n */\nasync function generateVerifier(length) {\n return await random(length);\n}\n/** Generate a PKCE code challenge from a code verifier\n * @param code_verifier\n * @returns The base64 url encoded code challenge\n */\nexport async function generateChallenge(code_verifier) {\n const buffer = await (await crypto).subtle.digest(\"SHA-256\", new TextEncoder().encode(code_verifier));\n // Generate base64url string\n // btoa is deprecated in Node.js but is used here for web browser compatibility\n // (which has no good replacement yet, see also https://github.com/whatwg/html/issues/6811)\n return btoa(String.fromCharCode(...new Uint8Array(buffer)))\n .replace(/\\//g, '_')\n .replace(/\\+/g, '-')\n .replace(/=/g, '');\n}\n/** Generate a PKCE challenge pair\n * @param length Length of the verifer (between 43-128). Defaults to 43.\n * @returns PKCE challenge pair\n */\nexport default async function pkceChallenge(length) {\n if (!length)\n length = 43;\n if (length < 43 || length > 128) {\n throw `Expected a length between 43 and 128. Received ${length}.`;\n }\n const verifier = await generateVerifier(length);\n const challenge = await generateChallenge(verifier);\n return {\n code_verifier: verifier,\n code_challenge: challenge,\n };\n}\n/** Verify that a code_verifier produces the expected code challenge\n * @param code_verifier\n * @param expectedChallenge The code challenge to verify\n * @returns True if challenges are equal. False otherwise.\n */\nexport async function verifyChallenge(code_verifier, expectedChallenge) {\n const actualChallenge = await generateChallenge(code_verifier);\n return actualChallenge === expectedChallenge;\n}\n","import * as z from 'zod/v4';\n/**\n * Reusable URL validation that disallows javascript: scheme\n */\nexport const SafeUrlSchema = z\n .url()\n .superRefine((val, ctx) => {\n if (!URL.canParse(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'URL must be parseable',\n fatal: true\n });\n return z.NEVER;\n }\n})\n .refine(url => {\n const u = new URL(url);\n return u.protocol !== 'javascript:' && u.protocol !== 'data:' && u.protocol !== 'vbscript:';\n}, { message: 'URL cannot use javascript:, data:, or vbscript: scheme' });\n/**\n * RFC 9728 OAuth Protected Resource Metadata\n */\nexport const OAuthProtectedResourceMetadataSchema = z.looseObject({\n resource: z.string().url(),\n authorization_servers: z.array(SafeUrlSchema).optional(),\n jwks_uri: z.string().url().optional(),\n scopes_supported: z.array(z.string()).optional(),\n bearer_methods_supported: z.array(z.string()).optional(),\n resource_signing_alg_values_supported: z.array(z.string()).optional(),\n resource_name: z.string().optional(),\n resource_documentation: z.string().optional(),\n resource_policy_uri: z.string().url().optional(),\n resource_tos_uri: z.string().url().optional(),\n tls_client_certificate_bound_access_tokens: z.boolean().optional(),\n authorization_details_types_supported: z.array(z.string()).optional(),\n dpop_signing_alg_values_supported: z.array(z.string()).optional(),\n dpop_bound_access_tokens_required: z.boolean().optional()\n});\n/**\n * RFC 8414 OAuth 2.0 Authorization Server Metadata\n */\nexport const OAuthMetadataSchema = z.looseObject({\n issuer: z.string(),\n authorization_endpoint: SafeUrlSchema,\n token_endpoint: SafeUrlSchema,\n registration_endpoint: SafeUrlSchema.optional(),\n scopes_supported: z.array(z.string()).optional(),\n response_types_supported: z.array(z.string()),\n response_modes_supported: z.array(z.string()).optional(),\n grant_types_supported: z.array(z.string()).optional(),\n token_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n token_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n service_documentation: SafeUrlSchema.optional(),\n revocation_endpoint: SafeUrlSchema.optional(),\n revocation_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n revocation_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n introspection_endpoint: z.string().optional(),\n introspection_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n introspection_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n code_challenge_methods_supported: z.array(z.string()).optional(),\n client_id_metadata_document_supported: z.boolean().optional()\n});\n/**\n * OpenID Connect Discovery 1.0 Provider Metadata\n * see: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata\n */\nexport const OpenIdProviderMetadataSchema = z.looseObject({\n issuer: z.string(),\n authorization_endpoint: SafeUrlSchema,\n token_endpoint: SafeUrlSchema,\n userinfo_endpoint: SafeUrlSchema.optional(),\n jwks_uri: SafeUrlSchema,\n registration_endpoint: SafeUrlSchema.optional(),\n scopes_supported: z.array(z.string()).optional(),\n response_types_supported: z.array(z.string()),\n response_modes_supported: z.array(z.string()).optional(),\n grant_types_supported: z.array(z.string()).optional(),\n acr_values_supported: z.array(z.string()).optional(),\n subject_types_supported: z.array(z.string()),\n id_token_signing_alg_values_supported: z.array(z.string()),\n id_token_encryption_alg_values_supported: z.array(z.string()).optional(),\n id_token_encryption_enc_values_supported: z.array(z.string()).optional(),\n userinfo_signing_alg_values_supported: z.array(z.string()).optional(),\n userinfo_encryption_alg_values_supported: z.array(z.string()).optional(),\n userinfo_encryption_enc_values_supported: z.array(z.string()).optional(),\n request_object_signing_alg_values_supported: z.array(z.string()).optional(),\n request_object_encryption_alg_values_supported: z.array(z.string()).optional(),\n request_object_encryption_enc_values_supported: z.array(z.string()).optional(),\n token_endpoint_auth_methods_supported: z.array(z.string()).optional(),\n token_endpoint_auth_signing_alg_values_supported: z.array(z.string()).optional(),\n display_values_supported: z.array(z.string()).optional(),\n claim_types_supported: z.array(z.string()).optional(),\n claims_supported: z.array(z.string()).optional(),\n service_documentation: z.string().optional(),\n claims_locales_supported: z.array(z.string()).optional(),\n ui_locales_supported: z.array(z.string()).optional(),\n claims_parameter_supported: z.boolean().optional(),\n request_parameter_supported: z.boolean().optional(),\n request_uri_parameter_supported: z.boolean().optional(),\n require_request_uri_registration: z.boolean().optional(),\n op_policy_uri: SafeUrlSchema.optional(),\n op_tos_uri: SafeUrlSchema.optional(),\n client_id_metadata_document_supported: z.boolean().optional()\n});\n/**\n * OpenID Connect Discovery metadata that may include OAuth 2.0 fields\n * This schema represents the real-world scenario where OIDC providers\n * return a mix of OpenID Connect and OAuth 2.0 metadata fields\n */\nexport const OpenIdProviderDiscoveryMetadataSchema = z.object({\n ...OpenIdProviderMetadataSchema.shape,\n ...OAuthMetadataSchema.pick({\n code_challenge_methods_supported: true\n }).shape\n});\n/**\n * OAuth 2.1 token response\n */\nexport const OAuthTokensSchema = z\n .object({\n access_token: z.string(),\n id_token: z.string().optional(), // Optional for OAuth 2.1, but necessary in OpenID Connect\n token_type: z.string(),\n expires_in: z.coerce.number().optional(),\n scope: z.string().optional(),\n refresh_token: z.string().optional()\n})\n .strip();\n/**\n * OAuth 2.1 error response\n */\nexport const OAuthErrorResponseSchema = z.object({\n error: z.string(),\n error_description: z.string().optional(),\n error_uri: z.string().optional()\n});\n/**\n * Optional version of SafeUrlSchema that allows empty string for retrocompatibility on tos_uri and logo_uri\n */\nexport const OptionalSafeUrlSchema = SafeUrlSchema.optional().or(z.literal('').transform(() => undefined));\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration metadata\n */\nexport const OAuthClientMetadataSchema = z\n .object({\n redirect_uris: z.array(SafeUrlSchema),\n token_endpoint_auth_method: z.string().optional(),\n grant_types: z.array(z.string()).optional(),\n response_types: z.array(z.string()).optional(),\n client_name: z.string().optional(),\n client_uri: SafeUrlSchema.optional(),\n logo_uri: OptionalSafeUrlSchema,\n scope: z.string().optional(),\n contacts: z.array(z.string()).optional(),\n tos_uri: OptionalSafeUrlSchema,\n policy_uri: z.string().optional(),\n jwks_uri: SafeUrlSchema.optional(),\n jwks: z.any().optional(),\n software_id: z.string().optional(),\n software_version: z.string().optional(),\n software_statement: z.string().optional()\n})\n .strip();\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration client information\n */\nexport const OAuthClientInformationSchema = z\n .object({\n client_id: z.string(),\n client_secret: z.string().optional(),\n client_id_issued_at: z.number().optional(),\n client_secret_expires_at: z.number().optional()\n})\n .strip();\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration full response (client information plus metadata)\n */\nexport const OAuthClientInformationFullSchema = OAuthClientMetadataSchema.merge(OAuthClientInformationSchema);\n/**\n * RFC 7591 OAuth 2.0 Dynamic Client Registration error response\n */\nexport const OAuthClientRegistrationErrorSchema = z\n .object({\n error: z.string(),\n error_description: z.string().optional()\n})\n .strip();\n/**\n * RFC 7009 OAuth 2.0 Token Revocation request\n */\nexport const OAuthTokenRevocationRequestSchema = z\n .object({\n token: z.string(),\n token_type_hint: z.string().optional()\n})\n .strip();\n//# sourceMappingURL=auth.js.map","/**\n * Utilities for handling OAuth resource URIs.\n */\n/**\n * Converts a server URL to a resource URL by removing the fragment.\n * RFC 8707 section 2 states that resource URIs \"MUST NOT include a fragment component\".\n * Keeps everything else unchanged (scheme, domain, port, path, query).\n */\nexport function resourceUrlFromServerUrl(url) {\n const resourceURL = typeof url === 'string' ? new URL(url) : new URL(url.href);\n resourceURL.hash = ''; // Remove fragment\n return resourceURL;\n}\n/**\n * Checks if a requested resource URL matches a configured resource URL.\n * A requested resource matches if it has the same scheme, domain, port,\n * and its path starts with the configured resource's path.\n *\n * @param requestedResource The resource URL being requested\n * @param configuredResource The resource URL that has been configured\n * @returns true if the requested resource matches the configured resource, false otherwise\n */\nexport function checkResourceAllowed({ requestedResource, configuredResource }) {\n const requested = typeof requestedResource === 'string' ? new URL(requestedResource) : new URL(requestedResource.href);\n const configured = typeof configuredResource === 'string' ? new URL(configuredResource) : new URL(configuredResource.href);\n // Compare the origin (scheme, domain, and port)\n if (requested.origin !== configured.origin) {\n return false;\n }\n // Handle cases like requested=/foo and configured=/foo/\n if (requested.pathname.length < configured.pathname.length) {\n return false;\n }\n // Check if the requested path starts with the configured path\n // Ensure both paths end with / for proper comparison\n // This ensures that if we have paths like \"/api\" and \"/api/users\",\n // we properly detect that \"/api/users\" is a subpath of \"/api\"\n // By adding a trailing slash if missing, we avoid false positives\n // where paths like \"/api123\" would incorrectly match \"/api\"\n const requestedPath = requested.pathname.endsWith('/') ? requested.pathname : requested.pathname + '/';\n const configuredPath = configured.pathname.endsWith('/') ? configured.pathname : configured.pathname + '/';\n return requestedPath.startsWith(configuredPath);\n}\n//# sourceMappingURL=auth-utils.js.map","/**\n * Base class for all OAuth errors\n */\nexport class OAuthError extends Error {\n constructor(message, errorUri) {\n super(message);\n this.errorUri = errorUri;\n this.name = this.constructor.name;\n }\n /**\n * Converts the error to a standard OAuth error response object\n */\n toResponseObject() {\n const response = {\n error: this.errorCode,\n error_description: this.message\n };\n if (this.errorUri) {\n response.error_uri = this.errorUri;\n }\n return response;\n }\n get errorCode() {\n return this.constructor.errorCode;\n }\n}\n/**\n * Invalid request error - The request is missing a required parameter,\n * includes an invalid parameter value, includes a parameter more than once,\n * or is otherwise malformed.\n */\nexport class InvalidRequestError extends OAuthError {\n}\nInvalidRequestError.errorCode = 'invalid_request';\n/**\n * Invalid client error - Client authentication failed (e.g., unknown client, no client\n * authentication included, or unsupported authentication method).\n */\nexport class InvalidClientError extends OAuthError {\n}\nInvalidClientError.errorCode = 'invalid_client';\n/**\n * Invalid grant error - The provided authorization grant or refresh token is\n * invalid, expired, revoked, does not match the redirection URI used in the\n * authorization request, or was issued to another client.\n */\nexport class InvalidGrantError extends OAuthError {\n}\nInvalidGrantError.errorCode = 'invalid_grant';\n/**\n * Unauthorized client error - The authenticated client is not authorized to use\n * this authorization grant type.\n */\nexport class UnauthorizedClientError extends OAuthError {\n}\nUnauthorizedClientError.errorCode = 'unauthorized_client';\n/**\n * Unsupported grant type error - The authorization grant type is not supported\n * by the authorization server.\n */\nexport class UnsupportedGrantTypeError extends OAuthError {\n}\nUnsupportedGrantTypeError.errorCode = 'unsupported_grant_type';\n/**\n * Invalid scope error - The requested scope is invalid, unknown, malformed, or\n * exceeds the scope granted by the resource owner.\n */\nexport class InvalidScopeError extends OAuthError {\n}\nInvalidScopeError.errorCode = 'invalid_scope';\n/**\n * Access denied error - The resource owner or authorization server denied the request.\n */\nexport class AccessDeniedError extends OAuthError {\n}\nAccessDeniedError.errorCode = 'access_denied';\n/**\n * Server error - The authorization server encountered an unexpected condition\n * that prevented it from fulfilling the request.\n */\nexport class ServerError extends OAuthError {\n}\nServerError.errorCode = 'server_error';\n/**\n * Temporarily unavailable error - The authorization server is currently unable to\n * handle the request due to a temporary overloading or maintenance of the server.\n */\nexport class TemporarilyUnavailableError extends OAuthError {\n}\nTemporarilyUnavailableError.errorCode = 'temporarily_unavailable';\n/**\n * Unsupported response type error - The authorization server does not support\n * obtaining an authorization code using this method.\n */\nexport class UnsupportedResponseTypeError extends OAuthError {\n}\nUnsupportedResponseTypeError.errorCode = 'unsupported_response_type';\n/**\n * Unsupported token type error - The authorization server does not support\n * the requested token type.\n */\nexport class UnsupportedTokenTypeError extends OAuthError {\n}\nUnsupportedTokenTypeError.errorCode = 'unsupported_token_type';\n/**\n * Invalid token error - The access token provided is expired, revoked, malformed,\n * or invalid for other reasons.\n */\nexport class InvalidTokenError extends OAuthError {\n}\nInvalidTokenError.errorCode = 'invalid_token';\n/**\n * Method not allowed error - The HTTP method used is not allowed for this endpoint.\n * (Custom, non-standard error)\n */\nexport class MethodNotAllowedError extends OAuthError {\n}\nMethodNotAllowedError.errorCode = 'method_not_allowed';\n/**\n * Too many requests error - Rate limit exceeded.\n * (Custom, non-standard error based on RFC 6585)\n */\nexport class TooManyRequestsError extends OAuthError {\n}\nTooManyRequestsError.errorCode = 'too_many_requests';\n/**\n * Invalid client metadata error - The client metadata is invalid.\n * (Custom error for dynamic client registration - RFC 7591)\n */\nexport class InvalidClientMetadataError extends OAuthError {\n}\nInvalidClientMetadataError.errorCode = 'invalid_client_metadata';\n/**\n * Insufficient scope error - The request requires higher privileges than provided by the access token.\n */\nexport class InsufficientScopeError extends OAuthError {\n}\nInsufficientScopeError.errorCode = 'insufficient_scope';\n/**\n * Invalid target error - The requested resource is invalid, missing, unknown, or malformed.\n * (Custom error for resource indicators - RFC 8707)\n */\nexport class InvalidTargetError extends OAuthError {\n}\nInvalidTargetError.errorCode = 'invalid_target';\n/**\n * A utility class for defining one-off error codes\n */\nexport class CustomOAuthError extends OAuthError {\n constructor(customErrorCode, message, errorUri) {\n super(message, errorUri);\n this.customErrorCode = customErrorCode;\n }\n get errorCode() {\n return this.customErrorCode;\n }\n}\n/**\n * A full list of all OAuthErrors, enabling parsing from error responses\n */\nexport const OAUTH_ERRORS = {\n [InvalidRequestError.errorCode]: InvalidRequestError,\n [InvalidClientError.errorCode]: InvalidClientError,\n [InvalidGrantError.errorCode]: InvalidGrantError,\n [UnauthorizedClientError.errorCode]: UnauthorizedClientError,\n [UnsupportedGrantTypeError.errorCode]: UnsupportedGrantTypeError,\n [InvalidScopeError.errorCode]: InvalidScopeError,\n [AccessDeniedError.errorCode]: AccessDeniedError,\n [ServerError.errorCode]: ServerError,\n [TemporarilyUnavailableError.errorCode]: TemporarilyUnavailableError,\n [UnsupportedResponseTypeError.errorCode]: UnsupportedResponseTypeError,\n [UnsupportedTokenTypeError.errorCode]: UnsupportedTokenTypeError,\n [InvalidTokenError.errorCode]: InvalidTokenError,\n [MethodNotAllowedError.errorCode]: MethodNotAllowedError,\n [TooManyRequestsError.errorCode]: TooManyRequestsError,\n [InvalidClientMetadataError.errorCode]: InvalidClientMetadataError,\n [InsufficientScopeError.errorCode]: InsufficientScopeError,\n [InvalidTargetError.errorCode]: InvalidTargetError\n};\n//# sourceMappingURL=errors.js.map","import pkceChallenge from 'pkce-challenge';\nimport { LATEST_PROTOCOL_VERSION } from '../types.js';\nimport { OAuthErrorResponseSchema, OpenIdProviderDiscoveryMetadataSchema } from '../shared/auth.js';\nimport { OAuthClientInformationFullSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema } from '../shared/auth.js';\nimport { checkResourceAllowed, resourceUrlFromServerUrl } from '../shared/auth-utils.js';\nimport { InvalidClientError, InvalidClientMetadataError, InvalidGrantError, OAUTH_ERRORS, OAuthError, ServerError, UnauthorizedClientError } from '../server/auth/errors.js';\nexport class UnauthorizedError extends Error {\n constructor(message) {\n super(message ?? 'Unauthorized');\n }\n}\nfunction isClientAuthMethod(method) {\n return ['client_secret_basic', 'client_secret_post', 'none'].includes(method);\n}\nconst AUTHORIZATION_CODE_RESPONSE_TYPE = 'code';\nconst AUTHORIZATION_CODE_CHALLENGE_METHOD = 'S256';\n/**\n * Determines the best client authentication method to use based on server support and client configuration.\n *\n * Priority order (highest to lowest):\n * 1. client_secret_basic (if client secret is available)\n * 2. client_secret_post (if client secret is available)\n * 3. none (for public clients)\n *\n * @param clientInformation - OAuth client information containing credentials\n * @param supportedMethods - Authentication methods supported by the authorization server\n * @returns The selected authentication method\n */\nexport function selectClientAuthMethod(clientInformation, supportedMethods) {\n const hasClientSecret = clientInformation.client_secret !== undefined;\n // If server doesn't specify supported methods, use RFC 6749 defaults\n if (supportedMethods.length === 0) {\n return hasClientSecret ? 'client_secret_post' : 'none';\n }\n // Prefer the method returned by the server during client registration if valid and supported\n if ('token_endpoint_auth_method' in clientInformation &&\n clientInformation.token_endpoint_auth_method &&\n isClientAuthMethod(clientInformation.token_endpoint_auth_method) &&\n supportedMethods.includes(clientInformation.token_endpoint_auth_method)) {\n return clientInformation.token_endpoint_auth_method;\n }\n // Try methods in priority order (most secure first)\n if (hasClientSecret && supportedMethods.includes('client_secret_basic')) {\n return 'client_secret_basic';\n }\n if (hasClientSecret && supportedMethods.includes('client_secret_post')) {\n return 'client_secret_post';\n }\n if (supportedMethods.includes('none')) {\n return 'none';\n }\n // Fallback: use what we have\n return hasClientSecret ? 'client_secret_post' : 'none';\n}\n/**\n * Applies client authentication to the request based on the specified method.\n *\n * Implements OAuth 2.1 client authentication methods:\n * - client_secret_basic: HTTP Basic authentication (RFC 6749 Section 2.3.1)\n * - client_secret_post: Credentials in request body (RFC 6749 Section 2.3.1)\n * - none: Public client authentication (RFC 6749 Section 2.1)\n *\n * @param method - The authentication method to use\n * @param clientInformation - OAuth client information containing credentials\n * @param headers - HTTP headers object to modify\n * @param params - URL search parameters to modify\n * @throws {Error} When required credentials are missing\n */\nfunction applyClientAuthentication(method, clientInformation, headers, params) {\n const { client_id, client_secret } = clientInformation;\n switch (method) {\n case 'client_secret_basic':\n applyBasicAuth(client_id, client_secret, headers);\n return;\n case 'client_secret_post':\n applyPostAuth(client_id, client_secret, params);\n return;\n case 'none':\n applyPublicAuth(client_id, params);\n return;\n default:\n throw new Error(`Unsupported client authentication method: ${method}`);\n }\n}\n/**\n * Applies HTTP Basic authentication (RFC 6749 Section 2.3.1)\n */\nfunction applyBasicAuth(clientId, clientSecret, headers) {\n if (!clientSecret) {\n throw new Error('client_secret_basic authentication requires a client_secret');\n }\n const credentials = btoa(`${clientId}:${clientSecret}`);\n headers.set('Authorization', `Basic ${credentials}`);\n}\n/**\n * Applies POST body authentication (RFC 6749 Section 2.3.1)\n */\nfunction applyPostAuth(clientId, clientSecret, params) {\n params.set('client_id', clientId);\n if (clientSecret) {\n params.set('client_secret', clientSecret);\n }\n}\n/**\n * Applies public client authentication (RFC 6749 Section 2.1)\n */\nfunction applyPublicAuth(clientId, params) {\n params.set('client_id', clientId);\n}\n/**\n * Parses an OAuth error response from a string or Response object.\n *\n * If the input is a standard OAuth2.0 error response, it will be parsed according to the spec\n * and an instance of the appropriate OAuthError subclass will be returned.\n * If parsing fails, it falls back to a generic ServerError that includes\n * the response status (if available) and original content.\n *\n * @param input - A Response object or string containing the error response\n * @returns A Promise that resolves to an OAuthError instance\n */\nexport async function parseErrorResponse(input) {\n const statusCode = input instanceof Response ? input.status : undefined;\n const body = input instanceof Response ? await input.text() : input;\n try {\n const result = OAuthErrorResponseSchema.parse(JSON.parse(body));\n const { error, error_description, error_uri } = result;\n const errorClass = OAUTH_ERRORS[error] || ServerError;\n return new errorClass(error_description || '', error_uri);\n }\n catch (error) {\n // Not a valid OAuth error response, but try to inform the user of the raw data anyway\n const errorMessage = `${statusCode ? `HTTP ${statusCode}: ` : ''}Invalid OAuth error response: ${error}. Raw body: ${body}`;\n return new ServerError(errorMessage);\n }\n}\n/**\n * Orchestrates the full auth flow with a server.\n *\n * This can be used as a single entry point for all authorization functionality,\n * instead of linking together the other lower-level functions in this module.\n */\nexport async function auth(provider, options) {\n try {\n return await authInternal(provider, options);\n }\n catch (error) {\n // Handle recoverable error types by invalidating credentials and retrying\n if (error instanceof InvalidClientError || error instanceof UnauthorizedClientError) {\n await provider.invalidateCredentials?.('all');\n return await authInternal(provider, options);\n }\n else if (error instanceof InvalidGrantError) {\n await provider.invalidateCredentials?.('tokens');\n return await authInternal(provider, options);\n }\n // Throw otherwise\n throw error;\n }\n}\nasync function authInternal(provider, { serverUrl, authorizationCode, scope, resourceMetadataUrl, fetchFn }) {\n let resourceMetadata;\n let authorizationServerUrl;\n try {\n resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl }, fetchFn);\n if (resourceMetadata.authorization_servers && resourceMetadata.authorization_servers.length > 0) {\n authorizationServerUrl = resourceMetadata.authorization_servers[0];\n }\n }\n catch {\n // Ignore errors and fall back to /.well-known/oauth-authorization-server\n }\n /**\n * If we don't get a valid authorization server metadata from protected resource metadata,\n * fallback to the legacy MCP spec's implementation (version 2025-03-26): MCP server base URL acts as the Authorization server.\n */\n if (!authorizationServerUrl) {\n authorizationServerUrl = new URL('/', serverUrl);\n }\n const resource = await selectResourceURL(serverUrl, provider, resourceMetadata);\n const metadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, {\n fetchFn\n });\n // Handle client registration if needed\n let clientInformation = await Promise.resolve(provider.clientInformation());\n if (!clientInformation) {\n if (authorizationCode !== undefined) {\n throw new Error('Existing OAuth client information is required when exchanging an authorization code');\n }\n const supportsUrlBasedClientId = metadata?.client_id_metadata_document_supported === true;\n const clientMetadataUrl = provider.clientMetadataUrl;\n if (clientMetadataUrl && !isHttpsUrl(clientMetadataUrl)) {\n throw new InvalidClientMetadataError(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${clientMetadataUrl}`);\n }\n const shouldUseUrlBasedClientId = supportsUrlBasedClientId && clientMetadataUrl;\n if (shouldUseUrlBasedClientId) {\n // SEP-991: URL-based Client IDs\n clientInformation = {\n client_id: clientMetadataUrl\n };\n await provider.saveClientInformation?.(clientInformation);\n }\n else {\n // Fallback to dynamic registration\n if (!provider.saveClientInformation) {\n throw new Error('OAuth client information must be saveable for dynamic registration');\n }\n const fullInformation = await registerClient(authorizationServerUrl, {\n metadata,\n clientMetadata: provider.clientMetadata,\n fetchFn\n });\n await provider.saveClientInformation(fullInformation);\n clientInformation = fullInformation;\n }\n }\n // Non-interactive flows (e.g., client_credentials, jwt-bearer) don't need a redirect URL\n const nonInteractiveFlow = !provider.redirectUrl;\n // Exchange authorization code for tokens, or fetch tokens directly for non-interactive flows\n if (authorizationCode !== undefined || nonInteractiveFlow) {\n const tokens = await fetchToken(provider, authorizationServerUrl, {\n metadata,\n resource,\n authorizationCode,\n fetchFn\n });\n await provider.saveTokens(tokens);\n return 'AUTHORIZED';\n }\n const tokens = await provider.tokens();\n // Handle token refresh or new authorization\n if (tokens?.refresh_token) {\n try {\n // Attempt to refresh the token\n const newTokens = await refreshAuthorization(authorizationServerUrl, {\n metadata,\n clientInformation,\n refreshToken: tokens.refresh_token,\n resource,\n addClientAuthentication: provider.addClientAuthentication,\n fetchFn\n });\n await provider.saveTokens(newTokens);\n return 'AUTHORIZED';\n }\n catch (error) {\n // If this is a ServerError, or an unknown type, log it out and try to continue. Otherwise, escalate so we can fix things and retry.\n if (!(error instanceof OAuthError) || error instanceof ServerError) {\n // Could not refresh OAuth tokens\n }\n else {\n // Refresh failed for another reason, re-throw\n throw error;\n }\n }\n }\n const state = provider.state ? await provider.state() : undefined;\n // Start new authorization flow\n const { authorizationUrl, codeVerifier } = await startAuthorization(authorizationServerUrl, {\n metadata,\n clientInformation,\n state,\n redirectUrl: provider.redirectUrl,\n scope: scope || resourceMetadata?.scopes_supported?.join(' ') || provider.clientMetadata.scope,\n resource\n });\n await provider.saveCodeVerifier(codeVerifier);\n await provider.redirectToAuthorization(authorizationUrl);\n return 'REDIRECT';\n}\n/**\n * SEP-991: URL-based Client IDs\n * Validate that the client_id is a valid URL with https scheme\n */\nexport function isHttpsUrl(value) {\n if (!value)\n return false;\n try {\n const url = new URL(value);\n return url.protocol === 'https:' && url.pathname !== '/';\n }\n catch {\n return false;\n }\n}\nexport async function selectResourceURL(serverUrl, provider, resourceMetadata) {\n const defaultResource = resourceUrlFromServerUrl(serverUrl);\n // If provider has custom validation, delegate to it\n if (provider.validateResourceURL) {\n return await provider.validateResourceURL(defaultResource, resourceMetadata?.resource);\n }\n // Only include resource parameter when Protected Resource Metadata is present\n if (!resourceMetadata) {\n return undefined;\n }\n // Validate that the metadata's resource is compatible with our request\n if (!checkResourceAllowed({ requestedResource: defaultResource, configuredResource: resourceMetadata.resource })) {\n throw new Error(`Protected resource ${resourceMetadata.resource} does not match expected ${defaultResource} (or origin)`);\n }\n // Prefer the resource from metadata since it's what the server is telling us to request\n return new URL(resourceMetadata.resource);\n}\n/**\n * Extract resource_metadata, scope, and error from WWW-Authenticate header.\n */\nexport function extractWWWAuthenticateParams(res) {\n const authenticateHeader = res.headers.get('WWW-Authenticate');\n if (!authenticateHeader) {\n return {};\n }\n const [type, scheme] = authenticateHeader.split(' ');\n if (type.toLowerCase() !== 'bearer' || !scheme) {\n return {};\n }\n const resourceMetadataMatch = extractFieldFromWwwAuth(res, 'resource_metadata') || undefined;\n let resourceMetadataUrl;\n if (resourceMetadataMatch) {\n try {\n resourceMetadataUrl = new URL(resourceMetadataMatch);\n }\n catch {\n // Ignore invalid URL\n }\n }\n const scope = extractFieldFromWwwAuth(res, 'scope') || undefined;\n const error = extractFieldFromWwwAuth(res, 'error') || undefined;\n return {\n resourceMetadataUrl,\n scope,\n error\n };\n}\n/**\n * Extracts a specific field's value from the WWW-Authenticate header string.\n *\n * @param response The HTTP response object containing the headers.\n * @param fieldName The name of the field to extract (e.g., \"realm\", \"nonce\").\n * @returns The field value\n */\nfunction extractFieldFromWwwAuth(response, fieldName) {\n const wwwAuthHeader = response.headers.get('WWW-Authenticate');\n if (!wwwAuthHeader) {\n return null;\n }\n const pattern = new RegExp(`${fieldName}=(?:\"([^\"]+)\"|([^\\\\s,]+))`);\n const match = wwwAuthHeader.match(pattern);\n if (match) {\n // Pattern matches: field_name=\"value\" or field_name=value (unquoted)\n return match[1] || match[2];\n }\n return null;\n}\n/**\n * Extract resource_metadata from response header.\n * @deprecated Use `extractWWWAuthenticateParams` instead.\n */\nexport function extractResourceMetadataUrl(res) {\n const authenticateHeader = res.headers.get('WWW-Authenticate');\n if (!authenticateHeader) {\n return undefined;\n }\n const [type, scheme] = authenticateHeader.split(' ');\n if (type.toLowerCase() !== 'bearer' || !scheme) {\n return undefined;\n }\n const regex = /resource_metadata=\"([^\"]*)\"/;\n const match = regex.exec(authenticateHeader);\n if (!match) {\n return undefined;\n }\n try {\n return new URL(match[1]);\n }\n catch {\n return undefined;\n }\n}\n/**\n * Looks up RFC 9728 OAuth 2.0 Protected Resource Metadata.\n *\n * If the server returns a 404 for the well-known endpoint, this function will\n * return `undefined`. Any other errors will be thrown as exceptions.\n */\nexport async function discoverOAuthProtectedResourceMetadata(serverUrl, opts, fetchFn = fetch) {\n const response = await discoverMetadataWithFallback(serverUrl, 'oauth-protected-resource', fetchFn, {\n protocolVersion: opts?.protocolVersion,\n metadataUrl: opts?.resourceMetadataUrl\n });\n if (!response || response.status === 404) {\n await response?.body?.cancel();\n throw new Error(`Resource server does not implement OAuth 2.0 Protected Resource Metadata.`);\n }\n if (!response.ok) {\n await response.body?.cancel();\n throw new Error(`HTTP ${response.status} trying to load well-known OAuth protected resource metadata.`);\n }\n return OAuthProtectedResourceMetadataSchema.parse(await response.json());\n}\n/**\n * Helper function to handle fetch with CORS retry logic\n */\nasync function fetchWithCorsRetry(url, headers, fetchFn = fetch) {\n try {\n return await fetchFn(url, { headers });\n }\n catch (error) {\n if (error instanceof TypeError) {\n if (headers) {\n // CORS errors come back as TypeError, retry without headers\n return fetchWithCorsRetry(url, undefined, fetchFn);\n }\n else {\n // We're getting CORS errors on retry too, return undefined\n return undefined;\n }\n }\n throw error;\n }\n}\n/**\n * Constructs the well-known path for auth-related metadata discovery\n */\nfunction buildWellKnownPath(wellKnownPrefix, pathname = '', options = {}) {\n // Strip trailing slash from pathname to avoid double slashes\n if (pathname.endsWith('/')) {\n pathname = pathname.slice(0, -1);\n }\n return options.prependPathname ? `${pathname}/.well-known/${wellKnownPrefix}` : `/.well-known/${wellKnownPrefix}${pathname}`;\n}\n/**\n * Tries to discover OAuth metadata at a specific URL\n */\nasync function tryMetadataDiscovery(url, protocolVersion, fetchFn = fetch) {\n const headers = {\n 'MCP-Protocol-Version': protocolVersion\n };\n return await fetchWithCorsRetry(url, headers, fetchFn);\n}\n/**\n * Determines if fallback to root discovery should be attempted\n */\nfunction shouldAttemptFallback(response, pathname) {\n return !response || (response.status >= 400 && response.status < 500 && pathname !== '/');\n}\n/**\n * Generic function for discovering OAuth metadata with fallback support\n */\nasync function discoverMetadataWithFallback(serverUrl, wellKnownType, fetchFn, opts) {\n const issuer = new URL(serverUrl);\n const protocolVersion = opts?.protocolVersion ?? LATEST_PROTOCOL_VERSION;\n let url;\n if (opts?.metadataUrl) {\n url = new URL(opts.metadataUrl);\n }\n else {\n // Try path-aware discovery first\n const wellKnownPath = buildWellKnownPath(wellKnownType, issuer.pathname);\n url = new URL(wellKnownPath, opts?.metadataServerUrl ?? issuer);\n url.search = issuer.search;\n }\n let response = await tryMetadataDiscovery(url, protocolVersion, fetchFn);\n // If path-aware discovery fails with 404 and we're not already at root, try fallback to root discovery\n if (!opts?.metadataUrl && shouldAttemptFallback(response, issuer.pathname)) {\n const rootUrl = new URL(`/.well-known/${wellKnownType}`, issuer);\n response = await tryMetadataDiscovery(rootUrl, protocolVersion, fetchFn);\n }\n return response;\n}\n/**\n * Looks up RFC 8414 OAuth 2.0 Authorization Server Metadata.\n *\n * If the server returns a 404 for the well-known endpoint, this function will\n * return `undefined`. Any other errors will be thrown as exceptions.\n *\n * @deprecated This function is deprecated in favor of `discoverAuthorizationServerMetadata`.\n */\nexport async function discoverOAuthMetadata(issuer, { authorizationServerUrl, protocolVersion } = {}, fetchFn = fetch) {\n if (typeof issuer === 'string') {\n issuer = new URL(issuer);\n }\n if (!authorizationServerUrl) {\n authorizationServerUrl = issuer;\n }\n if (typeof authorizationServerUrl === 'string') {\n authorizationServerUrl = new URL(authorizationServerUrl);\n }\n protocolVersion ?? (protocolVersion = LATEST_PROTOCOL_VERSION);\n const response = await discoverMetadataWithFallback(authorizationServerUrl, 'oauth-authorization-server', fetchFn, {\n protocolVersion,\n metadataServerUrl: authorizationServerUrl\n });\n if (!response || response.status === 404) {\n await response?.body?.cancel();\n return undefined;\n }\n if (!response.ok) {\n await response.body?.cancel();\n throw new Error(`HTTP ${response.status} trying to load well-known OAuth metadata`);\n }\n return OAuthMetadataSchema.parse(await response.json());\n}\n/**\n * Builds a list of discovery URLs to try for authorization server metadata.\n * URLs are returned in priority order:\n * 1. OAuth metadata at the given URL\n * 2. OIDC metadata endpoints at the given URL\n */\nexport function buildDiscoveryUrls(authorizationServerUrl) {\n const url = typeof authorizationServerUrl === 'string' ? new URL(authorizationServerUrl) : authorizationServerUrl;\n const hasPath = url.pathname !== '/';\n const urlsToTry = [];\n if (!hasPath) {\n // Root path: https://example.com/.well-known/oauth-authorization-server\n urlsToTry.push({\n url: new URL('/.well-known/oauth-authorization-server', url.origin),\n type: 'oauth'\n });\n // OIDC: https://example.com/.well-known/openid-configuration\n urlsToTry.push({\n url: new URL(`/.well-known/openid-configuration`, url.origin),\n type: 'oidc'\n });\n return urlsToTry;\n }\n // Strip trailing slash from pathname to avoid double slashes\n let pathname = url.pathname;\n if (pathname.endsWith('/')) {\n pathname = pathname.slice(0, -1);\n }\n // 1. OAuth metadata at the given URL\n // Insert well-known before the path: https://example.com/.well-known/oauth-authorization-server/tenant1\n urlsToTry.push({\n url: new URL(`/.well-known/oauth-authorization-server${pathname}`, url.origin),\n type: 'oauth'\n });\n // 2. OIDC metadata endpoints\n // RFC 8414 style: Insert /.well-known/openid-configuration before the path\n urlsToTry.push({\n url: new URL(`/.well-known/openid-configuration${pathname}`, url.origin),\n type: 'oidc'\n });\n // OIDC Discovery 1.0 style: Append /.well-known/openid-configuration after the path\n urlsToTry.push({\n url: new URL(`${pathname}/.well-known/openid-configuration`, url.origin),\n type: 'oidc'\n });\n return urlsToTry;\n}\n/**\n * Discovers authorization server metadata with support for RFC 8414 OAuth 2.0 Authorization Server Metadata\n * and OpenID Connect Discovery 1.0 specifications.\n *\n * This function implements a fallback strategy for authorization server discovery:\n * 1. Attempts RFC 8414 OAuth metadata discovery first\n * 2. If OAuth discovery fails, falls back to OpenID Connect Discovery\n *\n * @param authorizationServerUrl - The authorization server URL obtained from the MCP Server's\n * protected resource metadata, or the MCP server's URL if the\n * metadata was not found.\n * @param options - Configuration options\n * @param options.fetchFn - Optional fetch function for making HTTP requests, defaults to global fetch\n * @param options.protocolVersion - MCP protocol version to use, defaults to LATEST_PROTOCOL_VERSION\n * @returns Promise resolving to authorization server metadata, or undefined if discovery fails\n */\nexport async function discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn = fetch, protocolVersion = LATEST_PROTOCOL_VERSION } = {}) {\n const headers = {\n 'MCP-Protocol-Version': protocolVersion,\n Accept: 'application/json'\n };\n // Get the list of URLs to try\n const urlsToTry = buildDiscoveryUrls(authorizationServerUrl);\n // Try each URL in order\n for (const { url: endpointUrl, type } of urlsToTry) {\n const response = await fetchWithCorsRetry(endpointUrl, headers, fetchFn);\n if (!response) {\n /**\n * CORS error occurred - don't throw as the endpoint may not allow CORS,\n * continue trying other possible endpoints\n */\n continue;\n }\n if (!response.ok) {\n await response.body?.cancel();\n // Continue looking for any 4xx response code.\n if (response.status >= 400 && response.status < 500) {\n continue; // Try next URL\n }\n throw new Error(`HTTP ${response.status} trying to load ${type === 'oauth' ? 'OAuth' : 'OpenID provider'} metadata from ${endpointUrl}`);\n }\n // Parse and validate based on type\n if (type === 'oauth') {\n return OAuthMetadataSchema.parse(await response.json());\n }\n else {\n return OpenIdProviderDiscoveryMetadataSchema.parse(await response.json());\n }\n }\n return undefined;\n}\n/**\n * Begins the authorization flow with the given server, by generating a PKCE challenge and constructing the authorization URL.\n */\nexport async function startAuthorization(authorizationServerUrl, { metadata, clientInformation, redirectUrl, scope, state, resource }) {\n let authorizationUrl;\n if (metadata) {\n authorizationUrl = new URL(metadata.authorization_endpoint);\n if (!metadata.response_types_supported.includes(AUTHORIZATION_CODE_RESPONSE_TYPE)) {\n throw new Error(`Incompatible auth server: does not support response type ${AUTHORIZATION_CODE_RESPONSE_TYPE}`);\n }\n if (metadata.code_challenge_methods_supported &&\n !metadata.code_challenge_methods_supported.includes(AUTHORIZATION_CODE_CHALLENGE_METHOD)) {\n throw new Error(`Incompatible auth server: does not support code challenge method ${AUTHORIZATION_CODE_CHALLENGE_METHOD}`);\n }\n }\n else {\n authorizationUrl = new URL('/authorize', authorizationServerUrl);\n }\n // Generate PKCE challenge\n const challenge = await pkceChallenge();\n const codeVerifier = challenge.code_verifier;\n const codeChallenge = challenge.code_challenge;\n authorizationUrl.searchParams.set('response_type', AUTHORIZATION_CODE_RESPONSE_TYPE);\n authorizationUrl.searchParams.set('client_id', clientInformation.client_id);\n authorizationUrl.searchParams.set('code_challenge', codeChallenge);\n authorizationUrl.searchParams.set('code_challenge_method', AUTHORIZATION_CODE_CHALLENGE_METHOD);\n authorizationUrl.searchParams.set('redirect_uri', String(redirectUrl));\n if (state) {\n authorizationUrl.searchParams.set('state', state);\n }\n if (scope) {\n authorizationUrl.searchParams.set('scope', scope);\n }\n if (scope?.includes('offline_access')) {\n // if the request includes the OIDC-only \"offline_access\" scope,\n // we need to set the prompt to \"consent\" to ensure the user is prompted to grant offline access\n // https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess\n authorizationUrl.searchParams.append('prompt', 'consent');\n }\n if (resource) {\n authorizationUrl.searchParams.set('resource', resource.href);\n }\n return { authorizationUrl, codeVerifier };\n}\n/**\n * Prepares token request parameters for an authorization code exchange.\n *\n * This is the default implementation used by fetchToken when the provider\n * doesn't implement prepareTokenRequest.\n *\n * @param authorizationCode - The authorization code received from the authorization endpoint\n * @param codeVerifier - The PKCE code verifier\n * @param redirectUri - The redirect URI used in the authorization request\n * @returns URLSearchParams for the authorization_code grant\n */\nexport function prepareAuthorizationCodeRequest(authorizationCode, codeVerifier, redirectUri) {\n return new URLSearchParams({\n grant_type: 'authorization_code',\n code: authorizationCode,\n code_verifier: codeVerifier,\n redirect_uri: String(redirectUri)\n });\n}\n/**\n * Internal helper to execute a token request with the given parameters.\n * Used by exchangeAuthorization, refreshAuthorization, and fetchToken.\n */\nasync function executeTokenRequest(authorizationServerUrl, { metadata, tokenRequestParams, clientInformation, addClientAuthentication, resource, fetchFn }) {\n const tokenUrl = metadata?.token_endpoint ? new URL(metadata.token_endpoint) : new URL('/token', authorizationServerUrl);\n const headers = new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded',\n Accept: 'application/json'\n });\n if (resource) {\n tokenRequestParams.set('resource', resource.href);\n }\n if (addClientAuthentication) {\n await addClientAuthentication(headers, tokenRequestParams, tokenUrl, metadata);\n }\n else if (clientInformation) {\n const supportedMethods = metadata?.token_endpoint_auth_methods_supported ?? [];\n const authMethod = selectClientAuthMethod(clientInformation, supportedMethods);\n applyClientAuthentication(authMethod, clientInformation, headers, tokenRequestParams);\n }\n const response = await (fetchFn ?? fetch)(tokenUrl, {\n method: 'POST',\n headers,\n body: tokenRequestParams\n });\n if (!response.ok) {\n throw await parseErrorResponse(response);\n }\n return OAuthTokensSchema.parse(await response.json());\n}\n/**\n * Exchanges an authorization code for an access token with the given server.\n *\n * Supports multiple client authentication methods as specified in OAuth 2.1:\n * - Automatically selects the best authentication method based on server support\n * - Falls back to appropriate defaults when server metadata is unavailable\n *\n * @param authorizationServerUrl - The authorization server's base URL\n * @param options - Configuration object containing client info, auth code, etc.\n * @returns Promise resolving to OAuth tokens\n * @throws {Error} When token exchange fails or authentication is invalid\n */\nexport async function exchangeAuthorization(authorizationServerUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, resource, addClientAuthentication, fetchFn }) {\n const tokenRequestParams = prepareAuthorizationCodeRequest(authorizationCode, codeVerifier, redirectUri);\n return executeTokenRequest(authorizationServerUrl, {\n metadata,\n tokenRequestParams,\n clientInformation,\n addClientAuthentication,\n resource,\n fetchFn\n });\n}\n/**\n * Exchange a refresh token for an updated access token.\n *\n * Supports multiple client authentication methods as specified in OAuth 2.1:\n * - Automatically selects the best authentication method based on server support\n * - Preserves the original refresh token if a new one is not returned\n *\n * @param authorizationServerUrl - The authorization server's base URL\n * @param options - Configuration object containing client info, refresh token, etc.\n * @returns Promise resolving to OAuth tokens (preserves original refresh_token if not replaced)\n * @throws {Error} When token refresh fails or authentication is invalid\n */\nexport async function refreshAuthorization(authorizationServerUrl, { metadata, clientInformation, refreshToken, resource, addClientAuthentication, fetchFn }) {\n const tokenRequestParams = new URLSearchParams({\n grant_type: 'refresh_token',\n refresh_token: refreshToken\n });\n const tokens = await executeTokenRequest(authorizationServerUrl, {\n metadata,\n tokenRequestParams,\n clientInformation,\n addClientAuthentication,\n resource,\n fetchFn\n });\n // Preserve original refresh token if server didn't return a new one\n return { refresh_token: refreshToken, ...tokens };\n}\n/**\n * Unified token fetching that works with any grant type via provider.prepareTokenRequest().\n *\n * This function provides a single entry point for obtaining tokens regardless of the\n * OAuth grant type. The provider's prepareTokenRequest() method determines which grant\n * to use and supplies the grant-specific parameters.\n *\n * @param provider - OAuth client provider that implements prepareTokenRequest()\n * @param authorizationServerUrl - The authorization server's base URL\n * @param options - Configuration for the token request\n * @returns Promise resolving to OAuth tokens\n * @throws {Error} When provider doesn't implement prepareTokenRequest or token fetch fails\n *\n * @example\n * // Provider for client_credentials:\n * class MyProvider implements OAuthClientProvider {\n * prepareTokenRequest(scope) {\n * const params = new URLSearchParams({ grant_type: 'client_credentials' });\n * if (scope) params.set('scope', scope);\n * return params;\n * }\n * // ... other methods\n * }\n *\n * const tokens = await fetchToken(provider, authServerUrl, { metadata });\n */\nexport async function fetchToken(provider, authorizationServerUrl, { metadata, resource, authorizationCode, fetchFn } = {}) {\n const scope = provider.clientMetadata.scope;\n // Use provider's prepareTokenRequest if available, otherwise fall back to authorization_code\n let tokenRequestParams;\n if (provider.prepareTokenRequest) {\n tokenRequestParams = await provider.prepareTokenRequest(scope);\n }\n // Default to authorization_code grant if no custom prepareTokenRequest\n if (!tokenRequestParams) {\n if (!authorizationCode) {\n throw new Error('Either provider.prepareTokenRequest() or authorizationCode is required');\n }\n if (!provider.redirectUrl) {\n throw new Error('redirectUrl is required for authorization_code flow');\n }\n const codeVerifier = await provider.codeVerifier();\n tokenRequestParams = prepareAuthorizationCodeRequest(authorizationCode, codeVerifier, provider.redirectUrl);\n }\n const clientInformation = await provider.clientInformation();\n return executeTokenRequest(authorizationServerUrl, {\n metadata,\n tokenRequestParams,\n clientInformation: clientInformation ?? undefined,\n addClientAuthentication: provider.addClientAuthentication,\n resource,\n fetchFn\n });\n}\n/**\n * Performs OAuth 2.0 Dynamic Client Registration according to RFC 7591.\n */\nexport async function registerClient(authorizationServerUrl, { metadata, clientMetadata, fetchFn }) {\n let registrationUrl;\n if (metadata) {\n if (!metadata.registration_endpoint) {\n throw new Error('Incompatible auth server: does not support dynamic client registration');\n }\n registrationUrl = new URL(metadata.registration_endpoint);\n }\n else {\n registrationUrl = new URL('/register', authorizationServerUrl);\n }\n const response = await (fetchFn ?? fetch)(registrationUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(clientMetadata)\n });\n if (!response.ok) {\n throw await parseErrorResponse(response);\n }\n return OAuthClientInformationFullSchema.parse(await response.json());\n}\n//# sourceMappingURL=auth.js.map","class ParseError extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n}\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n if (typeof callbacks == \"function\")\n throw new TypeError(\n \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n let incompleteLine = \"\", isFirstChunk = !0, id, data = \"\", eventType = \"\";\n function feed(newChunk) {\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n for (const line of complete)\n parseLine(line);\n incompleteLine = incomplete, isFirstChunk = !1;\n }\n function parseLine(line) {\n if (line === \"\") {\n dispatchEvent();\n return;\n }\n if (line.startsWith(\":\")) {\n onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n return;\n }\n const fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex !== -1) {\n const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n return;\n }\n processField(line, \"\", line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value;\n break;\n case \"data\":\n data = `${data}${value}\n`;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n data.length > 0 && onEvent({\n id,\n event: eventType || void 0,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n }), id = void 0, data = \"\", eventType = \"\";\n }\n function reset(options = {}) {\n incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = !0, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n }\n return { feed, reset };\n}\nfunction splitLines(chunk) {\n const lines = [];\n let incompleteLine = \"\", searchIndex = 0;\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n incompleteLine = chunk.slice(searchIndex);\n break;\n } else {\n const line = chunk.slice(searchIndex, lineEnd);\n lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n }\n }\n return [lines, incompleteLine];\n}\nexport {\n ParseError,\n createParser\n};\n//# sourceMappingURL=index.js.map\n","import { createParser } from \"./index.js\";\nimport { ParseError } from \"./index.js\";\nclass EventSourceParserStream extends TransformStream {\n constructor({ onError, onRetry, onComment } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n onError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n },\n onRetry,\n onComment\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n}\nexport {\n EventSourceParserStream,\n ParseError\n};\n//# sourceMappingURL=stream.js.map\n","import { createFetchWithInit, normalizeHeaders } from '../shared/transport.js';\nimport { isInitializedNotification, isJSONRPCRequest, isJSONRPCResultResponse, JSONRPCMessageSchema } from '../types.js';\nimport { auth, extractWWWAuthenticateParams, UnauthorizedError } from './auth.js';\nimport { EventSourceParserStream } from 'eventsource-parser/stream';\n// Default reconnection options for StreamableHTTP connections\nconst DEFAULT_STREAMABLE_HTTP_RECONNECTION_OPTIONS = {\n initialReconnectionDelay: 1000,\n maxReconnectionDelay: 30000,\n reconnectionDelayGrowFactor: 1.5,\n maxRetries: 2\n};\nexport class StreamableHTTPError extends Error {\n constructor(code, message) {\n super(`Streamable HTTP error: ${message}`);\n this.code = code;\n }\n}\n/**\n * Client transport for Streamable HTTP: this implements the MCP Streamable HTTP transport specification.\n * It will connect to a server using HTTP POST for sending messages and HTTP GET with Server-Sent Events\n * for receiving messages.\n */\nexport class StreamableHTTPClientTransport {\n constructor(url, opts) {\n this._hasCompletedAuthFlow = false; // Circuit breaker: detect auth success followed by immediate 401\n this._url = url;\n this._resourceMetadataUrl = undefined;\n this._scope = undefined;\n this._requestInit = opts?.requestInit;\n this._authProvider = opts?.authProvider;\n this._fetch = opts?.fetch;\n this._fetchWithInit = createFetchWithInit(opts?.fetch, opts?.requestInit);\n this._sessionId = opts?.sessionId;\n this._reconnectionOptions = opts?.reconnectionOptions ?? DEFAULT_STREAMABLE_HTTP_RECONNECTION_OPTIONS;\n }\n async _authThenStart() {\n if (!this._authProvider) {\n throw new UnauthorizedError('No auth provider');\n }\n let result;\n try {\n result = await auth(this._authProvider, {\n serverUrl: this._url,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetchWithInit\n });\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError();\n }\n return await this._startOrAuthSse({ resumptionToken: undefined });\n }\n async _commonHeaders() {\n const headers = {};\n if (this._authProvider) {\n const tokens = await this._authProvider.tokens();\n if (tokens) {\n headers['Authorization'] = `Bearer ${tokens.access_token}`;\n }\n }\n if (this._sessionId) {\n headers['mcp-session-id'] = this._sessionId;\n }\n if (this._protocolVersion) {\n headers['mcp-protocol-version'] = this._protocolVersion;\n }\n const extraHeaders = normalizeHeaders(this._requestInit?.headers);\n return new Headers({\n ...headers,\n ...extraHeaders\n });\n }\n async _startOrAuthSse(options) {\n const { resumptionToken } = options;\n try {\n // Try to open an initial SSE stream with GET to listen for server messages\n // This is optional according to the spec - server may not support it\n const headers = await this._commonHeaders();\n headers.set('Accept', 'text/event-stream');\n // Include Last-Event-ID header for resumable streams if provided\n if (resumptionToken) {\n headers.set('last-event-id', resumptionToken);\n }\n const response = await (this._fetch ?? fetch)(this._url, {\n method: 'GET',\n headers,\n signal: this._abortController?.signal\n });\n if (!response.ok) {\n await response.body?.cancel();\n if (response.status === 401 && this._authProvider) {\n // Need to authenticate\n return await this._authThenStart();\n }\n // 405 indicates that the server does not offer an SSE stream at GET endpoint\n // This is an expected case that should not trigger an error\n if (response.status === 405) {\n return;\n }\n throw new StreamableHTTPError(response.status, `Failed to open SSE stream: ${response.statusText}`);\n }\n this._handleSseStream(response.body, options, true);\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n }\n /**\n * Calculates the next reconnection delay using backoff algorithm\n *\n * @param attempt Current reconnection attempt count for the specific stream\n * @returns Time to wait in milliseconds before next reconnection attempt\n */\n _getNextReconnectionDelay(attempt) {\n // Use server-provided retry value if available\n if (this._serverRetryMs !== undefined) {\n return this._serverRetryMs;\n }\n // Fall back to exponential backoff\n const initialDelay = this._reconnectionOptions.initialReconnectionDelay;\n const growFactor = this._reconnectionOptions.reconnectionDelayGrowFactor;\n const maxDelay = this._reconnectionOptions.maxReconnectionDelay;\n // Cap at maximum delay\n return Math.min(initialDelay * Math.pow(growFactor, attempt), maxDelay);\n }\n /**\n * Schedule a reconnection attempt using server-provided retry interval or backoff\n *\n * @param lastEventId The ID of the last received event for resumability\n * @param attemptCount Current reconnection attempt count for this specific stream\n */\n _scheduleReconnection(options, attemptCount = 0) {\n // Use provided options or default options\n const maxRetries = this._reconnectionOptions.maxRetries;\n // Check if we've exceeded maximum retry attempts\n if (attemptCount >= maxRetries) {\n this.onerror?.(new Error(`Maximum reconnection attempts (${maxRetries}) exceeded.`));\n return;\n }\n // Calculate next delay based on current attempt count\n const delay = this._getNextReconnectionDelay(attemptCount);\n // Schedule the reconnection\n this._reconnectionTimeout = setTimeout(() => {\n // Use the last event ID to resume where we left off\n this._startOrAuthSse(options).catch(error => {\n this.onerror?.(new Error(`Failed to reconnect SSE stream: ${error instanceof Error ? error.message : String(error)}`));\n // Schedule another attempt if this one failed, incrementing the attempt counter\n this._scheduleReconnection(options, attemptCount + 1);\n });\n }, delay);\n }\n _handleSseStream(stream, options, isReconnectable) {\n if (!stream) {\n return;\n }\n const { onresumptiontoken, replayMessageId } = options;\n let lastEventId;\n // Track whether we've received a priming event (event with ID)\n // Per spec, server SHOULD send a priming event with ID before closing\n let hasPrimingEvent = false;\n // Track whether we've received a response - if so, no need to reconnect\n // Reconnection is for when server disconnects BEFORE sending response\n let receivedResponse = false;\n const processStream = async () => {\n // this is the closest we can get to trying to catch network errors\n // if something happens reader will throw\n try {\n // Create a pipeline: binary stream -> text decoder -> SSE parser\n const reader = stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new EventSourceParserStream({\n onRetry: (retryMs) => {\n // Capture server-provided retry value for reconnection timing\n this._serverRetryMs = retryMs;\n }\n }))\n .getReader();\n while (true) {\n const { value: event, done } = await reader.read();\n if (done) {\n break;\n }\n // Update last event ID if provided\n if (event.id) {\n lastEventId = event.id;\n // Mark that we've received a priming event - stream is now resumable\n hasPrimingEvent = true;\n onresumptiontoken?.(event.id);\n }\n // Skip events with no data (priming events, keep-alives)\n if (!event.data) {\n continue;\n }\n if (!event.event || event.event === 'message') {\n try {\n const message = JSONRPCMessageSchema.parse(JSON.parse(event.data));\n if (isJSONRPCResultResponse(message)) {\n // Mark that we received a response - no need to reconnect for this request\n receivedResponse = true;\n if (replayMessageId !== undefined) {\n message.id = replayMessageId;\n }\n }\n this.onmessage?.(message);\n }\n catch (error) {\n this.onerror?.(error);\n }\n }\n }\n // Handle graceful server-side disconnect\n // Server may close connection after sending event ID and retry field\n // Reconnect if: already reconnectable (GET stream) OR received a priming event (POST stream with event ID)\n // BUT don't reconnect if we already received a response - the request is complete\n const canResume = isReconnectable || hasPrimingEvent;\n const needsReconnect = canResume && !receivedResponse;\n if (needsReconnect && this._abortController && !this._abortController.signal.aborted) {\n this._scheduleReconnection({\n resumptionToken: lastEventId,\n onresumptiontoken,\n replayMessageId\n }, 0);\n }\n }\n catch (error) {\n // Handle stream errors - likely a network disconnect\n this.onerror?.(new Error(`SSE stream disconnected: ${error}`));\n // Attempt to reconnect if the stream disconnects unexpectedly and we aren't closing\n // Reconnect if: already reconnectable (GET stream) OR received a priming event (POST stream with event ID)\n // BUT don't reconnect if we already received a response - the request is complete\n const canResume = isReconnectable || hasPrimingEvent;\n const needsReconnect = canResume && !receivedResponse;\n if (needsReconnect && this._abortController && !this._abortController.signal.aborted) {\n // Use the exponential backoff reconnection strategy\n try {\n this._scheduleReconnection({\n resumptionToken: lastEventId,\n onresumptiontoken,\n replayMessageId\n }, 0);\n }\n catch (error) {\n this.onerror?.(new Error(`Failed to reconnect: ${error instanceof Error ? error.message : String(error)}`));\n }\n }\n }\n };\n processStream();\n }\n async start() {\n if (this._abortController) {\n throw new Error('StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.');\n }\n this._abortController = new AbortController();\n }\n /**\n * Call this method after the user has finished authorizing via their user agent and is redirected back to the MCP client application. This will exchange the authorization code for an access token, enabling the next connection attempt to successfully auth.\n */\n async finishAuth(authorizationCode) {\n if (!this._authProvider) {\n throw new UnauthorizedError('No auth provider');\n }\n const result = await auth(this._authProvider, {\n serverUrl: this._url,\n authorizationCode,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetchWithInit\n });\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError('Failed to authorize');\n }\n }\n async close() {\n if (this._reconnectionTimeout) {\n clearTimeout(this._reconnectionTimeout);\n this._reconnectionTimeout = undefined;\n }\n this._abortController?.abort();\n this.onclose?.();\n }\n async send(message, options) {\n try {\n const { resumptionToken, onresumptiontoken } = options || {};\n if (resumptionToken) {\n // If we have at last event ID, we need to reconnect the SSE stream\n this._startOrAuthSse({ resumptionToken, replayMessageId: isJSONRPCRequest(message) ? message.id : undefined }).catch(err => this.onerror?.(err));\n return;\n }\n const headers = await this._commonHeaders();\n headers.set('content-type', 'application/json');\n headers.set('accept', 'application/json, text/event-stream');\n const init = {\n ...this._requestInit,\n method: 'POST',\n headers,\n body: JSON.stringify(message),\n signal: this._abortController?.signal\n };\n const response = await (this._fetch ?? fetch)(this._url, init);\n // Handle session ID received during initialization\n const sessionId = response.headers.get('mcp-session-id');\n if (sessionId) {\n this._sessionId = sessionId;\n }\n if (!response.ok) {\n const text = await response.text().catch(() => null);\n if (response.status === 401 && this._authProvider) {\n // Prevent infinite recursion when server returns 401 after successful auth\n if (this._hasCompletedAuthFlow) {\n throw new StreamableHTTPError(401, 'Server returned 401 after successful authentication');\n }\n const { resourceMetadataUrl, scope } = extractWWWAuthenticateParams(response);\n this._resourceMetadataUrl = resourceMetadataUrl;\n this._scope = scope;\n const result = await auth(this._authProvider, {\n serverUrl: this._url,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetchWithInit\n });\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError();\n }\n // Mark that we completed auth flow\n this._hasCompletedAuthFlow = true;\n // Purposely _not_ awaited, so we don't call onerror twice\n return this.send(message);\n }\n if (response.status === 403 && this._authProvider) {\n const { resourceMetadataUrl, scope, error } = extractWWWAuthenticateParams(response);\n if (error === 'insufficient_scope') {\n const wwwAuthHeader = response.headers.get('WWW-Authenticate');\n // Check if we've already tried upscoping with this header to prevent infinite loops.\n if (this._lastUpscopingHeader === wwwAuthHeader) {\n throw new StreamableHTTPError(403, 'Server returned 403 after trying upscoping');\n }\n if (scope) {\n this._scope = scope;\n }\n if (resourceMetadataUrl) {\n this._resourceMetadataUrl = resourceMetadataUrl;\n }\n // Mark that upscoping was tried.\n this._lastUpscopingHeader = wwwAuthHeader ?? undefined;\n const result = await auth(this._authProvider, {\n serverUrl: this._url,\n resourceMetadataUrl: this._resourceMetadataUrl,\n scope: this._scope,\n fetchFn: this._fetch\n });\n if (result !== 'AUTHORIZED') {\n throw new UnauthorizedError();\n }\n return this.send(message);\n }\n }\n throw new StreamableHTTPError(response.status, `Error POSTing to endpoint: ${text}`);\n }\n // Reset auth loop flag on successful response\n this._hasCompletedAuthFlow = false;\n this._lastUpscopingHeader = undefined;\n // If the response is 202 Accepted, there's no body to process\n if (response.status === 202) {\n await response.body?.cancel();\n // if the accepted notification is initialized, we start the SSE stream\n // if it's supported by the server\n if (isInitializedNotification(message)) {\n // Start without a lastEventId since this is a fresh connection\n this._startOrAuthSse({ resumptionToken: undefined }).catch(err => this.onerror?.(err));\n }\n return;\n }\n // Get original message(s) for detecting request IDs\n const messages = Array.isArray(message) ? message : [message];\n const hasRequests = messages.filter(msg => 'method' in msg && 'id' in msg && msg.id !== undefined).length > 0;\n // Check the response type\n const contentType = response.headers.get('content-type');\n if (hasRequests) {\n if (contentType?.includes('text/event-stream')) {\n // Handle SSE stream responses for requests\n // We use the same handler as standalone streams, which now supports\n // reconnection with the last event ID\n this._handleSseStream(response.body, { onresumptiontoken }, false);\n }\n else if (contentType?.includes('application/json')) {\n // For non-streaming servers, we might get direct JSON responses\n const data = await response.json();\n const responseMessages = Array.isArray(data)\n ? data.map(msg => JSONRPCMessageSchema.parse(msg))\n : [JSONRPCMessageSchema.parse(data)];\n for (const msg of responseMessages) {\n this.onmessage?.(msg);\n }\n }\n else {\n await response.body?.cancel();\n throw new StreamableHTTPError(-1, `Unexpected content type: ${contentType}`);\n }\n }\n else {\n // No requests in message but got 200 OK - still need to release connection\n await response.body?.cancel();\n }\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n }\n get sessionId() {\n return this._sessionId;\n }\n /**\n * Terminates the current session by sending a DELETE request to the server.\n *\n * Clients that no longer need a particular session\n * (e.g., because the user is leaving the client application) SHOULD send an\n * HTTP DELETE to the MCP endpoint with the Mcp-Session-Id header to explicitly\n * terminate the session.\n *\n * The server MAY respond with HTTP 405 Method Not Allowed, indicating that\n * the server does not allow clients to terminate sessions.\n */\n async terminateSession() {\n if (!this._sessionId) {\n return; // No session to terminate\n }\n try {\n const headers = await this._commonHeaders();\n const init = {\n ...this._requestInit,\n method: 'DELETE',\n headers,\n signal: this._abortController?.signal\n };\n const response = await (this._fetch ?? fetch)(this._url, init);\n await response.body?.cancel();\n // We specifically handle 405 as a valid response according to the spec,\n // meaning the server does not support explicit session termination\n if (!response.ok && response.status !== 405) {\n throw new StreamableHTTPError(response.status, `Failed to terminate session: ${response.statusText}`);\n }\n this._sessionId = undefined;\n }\n catch (error) {\n this.onerror?.(error);\n throw error;\n }\n }\n setProtocolVersion(version) {\n this._protocolVersion = version;\n }\n get protocolVersion() {\n return this._protocolVersion;\n }\n /**\n * Resume an SSE stream from a previous event ID.\n * Opens a GET SSE connection with Last-Event-ID header to replay missed events.\n *\n * @param lastEventId The event ID to resume from\n * @param options Optional callback to receive new resumption tokens\n */\n async resumeStream(lastEventId, options) {\n await this._startOrAuthSse({\n resumptionToken: lastEventId,\n onresumptiontoken: options?.onresumptiontoken\n });\n }\n}\n//# sourceMappingURL=streamableHttp.js.map","import * as core from '@actions/core'\nimport {Client} from '@modelcontextprotocol/sdk/client/index.js'\nimport {StreamableHTTPClientTransport} from '@modelcontextprotocol/sdk/client/streamableHttp.js'\n\nexport interface ToolResult {\n tool_call_id: string\n role: 'tool'\n name: string\n content: string\n}\n\nexport interface MCPTool {\n type: 'function'\n function: {\n name: string\n description?: string\n parameters?: Record\n }\n}\n\nexport interface ToolCall {\n id: string\n type: string\n function: {\n name: string\n arguments: string\n }\n}\n\nexport interface GitHubMCPClient {\n client: Client\n tools: Array\n}\n\n/**\n * Connect to the GitHub MCP server and retrieve available tools\n */\nexport async function connectToGitHubMCP(token: string, toolsets?: string): Promise {\n const githubMcpUrl = 'https://api.githubcopilot.com/mcp/'\n\n core.info('Connecting to GitHub MCP server...')\n\n const headers: Record = {\n Authorization: `Bearer ${token}`,\n 'X-MCP-Readonly': 'true',\n }\n\n // Add toolsets header if specified\n if (toolsets && toolsets.trim() !== '') {\n headers['X-MCP-Toolsets'] = toolsets\n core.info(`Using GitHub MCP toolsets: ${toolsets}`)\n } else {\n core.info('Using default GitHub MCP toolsets')\n }\n\n const transport = new StreamableHTTPClientTransport(new URL(githubMcpUrl), {\n requestInit: {\n headers,\n },\n })\n\n const client = new Client({\n name: 'ai-inference-action',\n version: '1.0.0',\n transport,\n })\n\n try {\n await client.connect(transport)\n } catch (mcpError) {\n core.warning(`Failed to connect to GitHub MCP server: ${mcpError}`)\n return null\n }\n\n core.info('Successfully connected to GitHub MCP server')\n\n const toolsResponse = await client.listTools()\n core.info(`Retrieved ${toolsResponse.tools?.length || 0} tools from GitHub MCP server`)\n\n // Map GitHub MCP tools → Azure AI Inference tool definitions\n const tools = (toolsResponse.tools || []).map(t => ({\n type: 'function' as const,\n function: {\n name: t.name,\n description: t.description,\n parameters: t.inputSchema,\n },\n }))\n\n core.info(`Mapped ${tools.length} GitHub MCP tools for Azure AI Inference`)\n\n return {client, tools}\n}\n\n/**\n * Execute a single tool call via GitHub MCP\n */\nexport async function executeToolCall(githubMcpClient: Client, toolCall: ToolCall): Promise {\n core.info(`Executing GitHub MCP tool: ${toolCall.function.name} with args: ${toolCall.function.arguments}`)\n\n try {\n const args = JSON.parse(toolCall.function.arguments)\n\n const result = await githubMcpClient.callTool({\n name: toolCall.function.name,\n arguments: args,\n })\n\n core.info(`GitHub MCP tool ${toolCall.function.name} executed successfully`)\n\n return {\n tool_call_id: toolCall.id,\n role: 'tool',\n name: toolCall.function.name,\n content: JSON.stringify(result.content),\n }\n } catch (toolError) {\n core.warning(`Failed to execute GitHub MCP tool ${toolCall.function.name}: ${toolError}`)\n\n return {\n tool_call_id: toolCall.id,\n role: 'tool',\n name: toolCall.function.name,\n content: `Error: ${toolError}`,\n }\n }\n}\n\n/**\n * Execute all tool calls from a response via GitHub MCP\n */\nexport async function executeToolCalls(githubMcpClient: Client, toolCalls: ToolCall[]): Promise {\n const toolResults: ToolResult[] = []\n\n for (const toolCall of toolCalls) {\n const result = await executeToolCall(githubMcpClient, toolCall)\n toolResults.push(result)\n }\n\n return toolResults\n}\n","function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? (f.value = value) : state.set(receiver, value), value;\n}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause)\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class OpenAIError extends Error {\n}\nexport class APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('x-request-id');\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\nexport class LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexport class ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexport class InvalidWebhookSignatureError extends Error {\n constructor(message) {\n super(message);\n }\n}\n//# sourceMappingURL=error.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new OpenAIError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '6.9.1'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process.version,\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n throw new Error('`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","export const default_format = 'RFC3986';\nexport const default_formatter = (v) => String(v);\nexport const formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: default_formatter,\n};\nexport const RFC1738 = 'RFC1738';\nexport const RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.mjs.map","import { RFC1738 } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nexport let has = (obj, key) => ((has = Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),\n has(obj, key));\nconst hex_table = /* @__PURE__ */ (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item)\n continue;\n const obj = item.obj[item.prop];\n if (isArray(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nexport function merge(target, source, options = {}) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexport function assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n}\nexport function decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch (e) {\n return strWithoutPlus;\n }\n}\nconst limit = 1024;\nexport const encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n }\n return out;\n};\nexport function compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexport function is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport function is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexport function combine(a, b) {\n return [].concat(a, b);\n}\nexport function maybe_map(val, fn) {\n if (isArray(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n}\n//# sourceMappingURL=utils.mjs.map","import { encode, is_buffer, maybe_map, has } from \"./utils.mjs\";\nimport { default_format, default_formatter, formatters } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst push_to_array = function (arr, value_or_array) {\n Array.prototype.push.apply(arr, isArray(value_or_array) ? value_or_array : [value_or_array]);\n};\nlet toISOString;\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: encode,\n encodeValuesOnly: false,\n format: default_format,\n formatter: default_formatter,\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return (toISOString ?? (toISOString = Function.prototype.call.bind(Date.prototype.toISOString)))(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (typeof tmp_sc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = maybe_map(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ?\n // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || is_buffer(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly ? prefix\n // @ts-expect-error\n : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (typeof obj === 'undefined') {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = maybe_map(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n }\n else if (isArray(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = isArray(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(sentinel, sideChannel);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = default_format;\n if (typeof opts.format !== 'undefined') {\n if (!has(formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nexport function stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (isArray(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\n//# sourceMappingURL=stringify.mjs.map","export function concatBytes(buffers) {\n let length = 0;\n for (const buffer of buffers) {\n length += buffer.length;\n }\n const output = new Uint8Array(length);\n let index = 0;\n for (const buffer of buffers) {\n output.set(buffer, index);\n index += buffer.length;\n }\n return output;\n}\nlet encodeUTF8_;\nexport function encodeUTF8(str) {\n let encoder;\n return (encodeUTF8_ ??\n ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);\n}\nlet decodeUTF8_;\nexport function decodeUTF8(bytes) {\n let decoder;\n return (decodeUTF8_ ??\n ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);\n}\n//# sourceMappingURL=bytes.mjs.map","var _LineDecoder_buffer, _LineDecoder_carriageReturnIndex;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { concatBytes, decodeUTF8, encodeUTF8 } from \"../utils/bytes.mjs\";\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class LineDecoder {\n constructor() {\n _LineDecoder_buffer.set(this, void 0);\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n __classPrivateFieldSet(this, _LineDecoder_buffer, concatBytes([__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), binaryChunk]), \"f\");\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\")), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, endIndex));\n lines.push(line);\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(patternIndex.index), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n flush() {\n if (!__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n_LineDecoder_buffer = new WeakMap(), _LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\nexport function findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\n//# sourceMappingURL=line.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","var _Stream_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { makeReadableStream } from \"../internal/shims.mjs\";\nimport { findDoubleNewlineIndex, LineDecoder } from \"../internal/decoders/line.mjs\";\nimport { ReadableStreamToAsyncIterable } from \"../internal/shims.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nimport { loggerFor } from \"../internal/utils/log.mjs\";\nimport { APIError } from \"./error.mjs\";\nexport class Stream {\n constructor(iterator, controller, client) {\n this.iterator = iterator;\n _Stream_client.set(this, void 0);\n this.controller = controller;\n __classPrivateFieldSet(this, _Stream_client, client, \"f\");\n }\n static fromSSEResponse(response, controller, client) {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const sse of _iterSSEMessages(response, controller)) {\n if (done)\n continue;\n if (sse.data.startsWith('[DONE]')) {\n done = true;\n continue;\n }\n if (sse.event === null || !sse.event.startsWith('thread.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n logger.error(`Could not parse message into JSON:`, sse.data);\n logger.error(`From chunk:`, sse.raw);\n throw e;\n }\n if (data && data.error) {\n throw new APIError(undefined, data.error, undefined, response.headers);\n }\n yield data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n // TODO: Is this where the error should be thrown?\n if (sse.event == 'error') {\n throw new APIError(undefined, data.error, data.message, undefined);\n }\n yield { event: sse.event, data: data };\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller, client) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n [(_Stream_client = new WeakMap(), Symbol.asyncIterator)]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n new Stream(() => teeIterator(right), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n ];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n */\n toReadableStream() {\n const self = this;\n let iter;\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexport async function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n if (typeof globalThis.navigator !== 'undefined' &&\n globalThis.navigator.product === 'ReactNative') {\n throw new OpenAIError(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`);\n }\n throw new OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length)\n return null;\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { Stream } from \"../core/streaming.mjs\";\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n const body = await (async () => {\n if (props.options.stream) {\n loggerFor(client).debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller, client);\n }\n return Stream.fromSSEResponse(response, props.controller, client);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n return addRequestID(json, response);\n }\n const text = await response.text();\n return text;\n })();\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\nexport function addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n//# sourceMappingURL=parse.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse, addRequestID, } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => addRequestID(transform(await this.parseResponse(client, props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nexport class Page extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n return null;\n }\n}\nexport class CursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const data = this.getPaginatedItems();\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: id,\n },\n };\n }\n}\nexport class ConversationCursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.last_id = body.last_id || '';\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const cursor = this.last_id;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value) {\n return (((typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '')\n .split(/[\\\\/]/)\n .pop() || undefined);\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch) => {\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\nexport const createForm = async (body, fetch) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value) => value instanceof Blob && 'name' in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n form.append(key, makeFile([await value.blob()], getName(value)));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));\n }\n else if (isNamedBlob(value)) {\n form.append(key, value, getName(value));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable } from \"./uploads.mjs\";\nimport { checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if (isFileLike(value)) {\n if (value instanceof File) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], value.name);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n name || (name = getName(value));\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null)\n return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1)\n return statics[0];\n let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, index) => {\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: previousValue.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n return previousValue + currentValue + (index === params.length ? '' : encoded);\n }, '');\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can\\'t be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new OpenAIError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Messages extends APIResource {\n /**\n * Get the messages in a stored chat completion. Only Chat Completions that have\n * been created with the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletionStoreMessage of client.chat.completions.messages.list(\n * 'completion_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(completionID, query = {}, options) {\n return this._client.getAPIList(path `/chat/completions/${completionID}/messages`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=messages.mjs.map","import { ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from \"../error.mjs\";\nexport function isChatCompletionFunctionTool(tool) {\n return tool !== undefined && 'function' in tool && tool.function !== undefined;\n}\nexport function makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\nexport function makeParseableTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexport function maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => {\n assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls);\n return {\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n };\n }),\n };\n }\n return parseChatCompletion(completion, params);\n}\nexport function parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls);\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content && !choice.message.refusal ?\n parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nfunction parseResponseFormat(params, content) {\n if (params.response_format?.type !== 'json_schema') {\n return null;\n }\n if (params.response_format?.type === 'json_schema') {\n if ('$parseRaw' in params.response_format) {\n const response_format = params.response_format;\n return response_format.$parseRaw(content);\n }\n return JSON.parse(content);\n }\n return null;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name); // TS doesn't narrow based on isChatCompletionTool\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments)\n : null,\n },\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params || !('tools' in params) || !params.tools) {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name);\n return (isChatCompletionFunctionTool(inputTool) &&\n (isAutoParsableTool(inputTool) || inputTool?.function.strict || false));\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\nexport function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls) {\n for (const toolCall of toolCalls || []) {\n if (toolCall.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool calls are supported; Received \\`${toolCall.type}\\``);\n }\n }\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\n//# sourceMappingURL=parser.mjs.map","export const isAssistantMessage = (message) => {\n return message?.role === 'assistant';\n};\nexport const isToolMessage = (message) => {\n return message?.role === 'tool';\n};\nexport function isPresent(obj) {\n return obj != null;\n}\n//# sourceMappingURL=chatCompletionUtils.mjs.map","var _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_handleError;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nexport class EventStream {\n constructor() {\n _EventStream_instances.add(this);\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n _EventStream_resolveConnectedPromise.set(this, () => { });\n _EventStream_rejectConnectedPromise.set(this, () => { });\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => { });\n _EventStream_rejectEndPromise.set(this, () => { });\n _EventStream_listeners.set(this, {});\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => { });\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).bind(this));\n }, 0);\n }\n _connected() {\n if (this.ended)\n return;\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() { }\n}\n_EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = new APIUserAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new OpenAIError(String(error)));\n};\n//# sourceMappingURL=EventStream.mjs.map","export function isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nexport class ParsingToolFunction {\n constructor(input) {\n this.type = 'function';\n this.function = input;\n }\n}\n//# sourceMappingURL=RunnableFunction.mjs.map","var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionToolCall, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableTool, parseChatCompletion } from \"../lib/parser.mjs\";\nimport { isAssistantMessage, isToolMessage } from \"./chatCompletionUtils.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isRunnableFunctionWithParse, } from \"./RunnableFunction.mjs\";\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nexport class AbstractChatCompletionRunner extends EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message)\n this._addMessage(message);\n return chatCompletion;\n }\n _addMessage(message, emit = true) {\n if (!('content' in message))\n message.content = null;\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (isToolMessage(message) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n this._emit('functionToolCallResult', message.content);\n }\n else if (isAssistantMessage(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionToolCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the content of the final FunctionCall, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalFunctionToolCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n }\n async finalFunctionToolCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n }\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion)\n this._emit('finalChatCompletion', completion);\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage)\n this._emit('finalMessage', finalMessage);\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent)\n this._emit('finalContent', finalContent);\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n if (finalFunctionCall)\n this._emit('finalFunctionToolCall', finalFunctionCall);\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n if (finalFunctionCallResult != null)\n this._emit('finalFunctionToolCallResult', finalFunctionCallResult);\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_validateParams).call(this, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion(parseChatCompletion(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runTools(client, params, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice.type === 'function' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n // TODO(someday): clean this logic up\n const inputTools = params.tools.map((tool) => {\n if (isAutoParsableTool(tool)) {\n if (!tool.$callback) {\n throw new OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n return tool;\n });\n const functionsByName = {};\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n const tools = 'tools' in params ?\n inputTools.map((t) => t.type === 'function' ?\n {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n return;\n }\n for (const tool_call of message.tool_calls) {\n if (tool_call.type !== 'function')\n continue;\n const tool_call_id = tool_call.id;\n const { name, arguments: args } = tool_call.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n let parsed;\n try {\n parsed = isRunnableFunctionWithParse(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n const content = error instanceof Error ? error.message : String(error);\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, tool_call_id, content });\n if (singleFunctionToCall) {\n return;\n }\n }\n }\n return;\n }\n}\n_AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if (isAssistantMessage(message)) {\n // TODO: support audio here\n const ret = {\n ...message,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n return ret;\n }\n }\n throw new OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCall = function _AbstractChatCompletionRunner_getFinalFunctionToolCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isAssistantMessage(message) && message?.tool_calls?.length) {\n return message.tool_calls.filter((x) => x.type === 'function').at(-1)?.function;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult = function _AbstractChatCompletionRunner_getFinalFunctionToolCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isToolMessage(message) &&\n message.content != null &&\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n return (typeof rawContent === 'string' ? rawContent\n : rawContent === undefined ? 'undefined'\n : JSON.stringify(rawContent));\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.mjs.map","import { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nimport { isAssistantMessage } from \"./chatCompletionUtils.mjs\";\nexport class ChatCompletionRunner extends AbstractChatCompletionRunner {\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n _addMessage(message, emit = true) {\n super._addMessage(message, emit);\n if (isAssistantMessage(message) && message.content) {\n this._emit('content', message.content);\n }\n }\n}\n//# sourceMappingURL=ChatCompletionRunner.mjs.map","const STR = 0b000000001;\nconst NUM = 0b000000010;\nconst ARR = 0b000000100;\nconst OBJ = 0b000001000;\nconst NULL = 0b000010000;\nconst BOOL = 0b000100000;\nconst NAN = 0b001000000;\nconst INFINITY = 0b010000000;\nconst MINUS_INFINITY = 0b100000000;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\nclass PartialJSON extends Error {\n}\nclass MalformedJSON extends Error {\n}\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length)\n markPartialJSON('Unexpected end of input');\n if (jsonString[index] === '\"')\n return parseStr();\n if (jsonString[index] === '{')\n return parseObj();\n if (jsonString[index] === '[')\n return parseArr();\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n 1 < length - index &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) == '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch (e) {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow)\n return obj;\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',')\n index++; // skip comma\n }\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch (e) {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if ('.' === jsonString[jsonString.length - 1])\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch (e) { }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-')\n index++;\n while (jsonString[index] && !',]}'.includes(jsonString[index]))\n index++;\n if (index == length && !(Allow.NUM & allow))\n markPartialJSON('Unterminated number literal');\n try {\n return JSON.parse(jsonString.substring(start, index));\n }\n catch (e) {\n if (jsonString.substring(start, index) === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexport { partialParse, PartialJSON, MalformedJSON };\n//# sourceMappingURL=parser.mjs.map","var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_endRequest, _ChatCompletionStream_getAutoParseableResponseFormat, _ChatCompletionStream_accumulateChatCompletion;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { partialParse } from \"../_vendor/partial-json-parser/parser.mjs\";\nimport { APIUserAbortError, ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError, } from \"../error.mjs\";\nimport { hasAutoParseableInput, isAutoParsableResponseFormat, isAutoParsableTool, isChatCompletionFunctionTool, maybeParseChatCompletion, shouldParseToolCall, } from \"../lib/parser.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nexport class ChatCompletionStream extends AbstractChatCompletionRunner {\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n }\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createChatCompletion(client, params, options) {\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));\n return runner;\n }\n async _createChatCompletion(client, params, options) {\n super._createChatCompletion;\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const stream = await client.chat.completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const chunk of stream) {\n if (chatId && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n chatId = chunk.id;\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended)\n return;\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const choiceSnapshot = completion.choices[choice.index];\n if (choice.delta.content != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.content) {\n this._emit('content', choice.delta.content, choiceSnapshot.message.content);\n this._emit('content.delta', {\n delta: choice.delta.content,\n snapshot: choiceSnapshot.message.content,\n parsed: choiceSnapshot.message.parsed,\n });\n }\n if (choice.delta.refusal != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.refusal) {\n this._emit('refusal.delta', {\n delta: choice.delta.refusal,\n snapshot: choiceSnapshot.message.refusal,\n });\n }\n if (choice.logprobs?.content != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of choice.delta.tool_calls ?? []) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of choice.delta.tool_calls ?? []) {\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot?.type === 'function') {\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function?.name,\n index: toolCallDelta.index,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.function?.arguments ?? '',\n });\n }\n else {\n assertNever(toolCallSnapshot?.type);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === toolCallSnapshot.function.name); // TS doesn't narrow based on isChatCompletionTool\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCallSnapshot.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCallSnapshot.function.arguments)\n : null,\n });\n }\n else {\n assertNever(toolCallSnapshot.type);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.message.content && !state.content_done) {\n state.content_done = true;\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this);\n this._emit('content.done', {\n content: choiceSnapshot.message.content,\n parsed: responseFormat ? responseFormat.$parseRaw(choiceSnapshot.message.content) : null,\n });\n }\n if (choiceSnapshot.message.refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal: choiceSnapshot.message.refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"));\n }, _ChatCompletionStream_getAutoParseableResponseFormat = function _ChatCompletionStream_getAutoParseableResponseFormat() {\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format;\n if (isAutoParsableResponseFormat(responseFormat)) {\n return responseFormat;\n }\n return null;\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {\n var _a, _b, _c, _d;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, ...rest } = chunk;\n if (!snapshot) {\n snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {\n ...rest,\n choices: [],\n }, \"f\");\n }\n else {\n Object.assign(snapshot, rest);\n }\n for (const { delta, finish_reason, index, logprobs = null, ...other } of chunk.choices) {\n let choice = snapshot.choices[index];\n if (!choice) {\n choice = snapshot.choices[index] = { finish_reason, index, message: {}, logprobs, ...other };\n }\n if (logprobs) {\n if (!choice.logprobs) {\n choice.logprobs = Object.assign({}, logprobs);\n }\n else {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n Object.assign(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"))) {\n if (finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n }\n }\n Object.assign(choice, other);\n if (!delta)\n continue; // Shouldn't happen; just in case.\n const { content, refusal, function_call, role, tool_calls, ...rest } = delta;\n assertIsEmpty(rest);\n Object.assign(choice.message, rest);\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role)\n choice.message.role = role;\n if (function_call) {\n if (!choice.message.function_call) {\n choice.message.function_call = function_call;\n }\n else {\n if (function_call.name)\n choice.message.function_call.name = function_call.name;\n if (function_call.arguments) {\n (_c = choice.message.function_call).arguments ?? (_c.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n }\n if (content) {\n choice.message.content = (choice.message.content || '') + content;\n if (!choice.message.refusal && __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this)) {\n choice.message.parsed = partialParse(choice.message.content);\n }\n }\n if (tool_calls) {\n if (!choice.message.tool_calls)\n choice.message.tool_calls = [];\n for (const { index, id, type, function: fn, ...rest } of tool_calls) {\n const tool_call = ((_d = choice.message.tool_calls)[index] ?? (_d[index] = {}));\n Object.assign(tool_call, rest);\n if (id)\n tool_call.id = id;\n if (type)\n tool_call.type = type;\n if (fn)\n tool_call.function ?? (tool_call.function = { name: fn.name ?? '', arguments: '' });\n if (fn?.name)\n tool_call.function.name = fn.name;\n if (fn?.arguments) {\n tool_call.function.arguments += fn.arguments;\n if (shouldParseToolCall(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), tool_call)) {\n tool_call.function.parsed_arguments = partialParse(tool_call.function.arguments);\n }\n }\n }\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('chunk', (chunk) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(chunk);\n }\n else {\n pushQueue.push(chunk);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nfunction finalizeChatCompletion(snapshot, params) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: choices.map(({ message, finish_reason, index, logprobs, ...choiceRest }) => {\n if (!finish_reason) {\n throw new OpenAIError(`missing finish_reason for choice ${index}`);\n }\n const { content = null, function_call, tool_calls, ...messageRest } = message;\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason,\n logprobs,\n message: {\n ...messageRest,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: tool_calls.map((tool_call, i) => {\n const { function: fn, type, id, ...toolRest } = tool_call;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (id == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].id\\n${str(snapshot)}`);\n }\n if (type == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type\\n${str(snapshot)}`);\n }\n if (name == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\\n${str(snapshot)}`);\n }\n if (args == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\\n${str(snapshot)}`);\n }\n return { ...toolRest, id, type, function: { ...fnRest, name, arguments: args } };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, content, role, refusal: message.refusal ?? null },\n finish_reason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return maybeParseChatCompletion(completion, params);\n}\nfunction str(x) {\n return JSON.stringify(x);\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n return;\n}\nfunction assertNever(_x) { }\n//# sourceMappingURL=ChatCompletionStream.mjs.map","import { ChatCompletionStream } from \"./ChatCompletionStream.mjs\";\nexport class ChatCompletionStreamingRunner extends ChatCompletionStream {\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n}\n//# sourceMappingURL=ChatCompletionStreamingRunner.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages } from \"./messages.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nimport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nimport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nimport { parseChatCompletion, validateInputTools } from \"../../../lib/parser.mjs\";\nexport class Completions extends APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * const chatCompletion =\n * await client.chat.completions.retrieve('completion_id');\n * ```\n */\n retrieve(completionID, options) {\n return this._client.get(path `/chat/completions/${completionID}`, options);\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n *\n * @example\n * ```ts\n * const chatCompletion = await client.chat.completions.update(\n * 'completion_id',\n * { metadata: { foo: 'string' } },\n * );\n * ```\n */\n update(completionID, body, options) {\n return this._client.post(path `/chat/completions/${completionID}`, { body, ...options });\n }\n /**\n * List stored Chat Completions. Only Chat Completions that have been stored with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletion of client.chat.completions.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chat/completions', (CursorPage), { query, ...options });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n *\n * @example\n * ```ts\n * const chatCompletionDeleted =\n * await client.chat.completions.delete('completion_id');\n * ```\n */\n delete(completionID, options) {\n return this._client.delete(path `/chat/completions/${completionID}`, options);\n }\n parse(body, options) {\n validateInputTools(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n headers: {\n ...options?.headers,\n 'X-Stainless-Helper-Method': 'chat.completions.parse',\n },\n })\n ._thenUnwrap((completion) => parseChatCompletion(completion, body));\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nexport { ParsingToolFunction, } from \"../../../lib/RunnableFunction.mjs\";\nexport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nexport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nCompletions.Messages = Messages;\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CompletionsAPI from \"./completions/completions.mjs\";\nimport { Completions, } from \"./completions/completions.mjs\";\nexport class Chat extends APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nChat.Completions = Completions;\n//# sourceMappingURL=chat.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = headers;\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nexport class Speech extends APIResource {\n /**\n * Generates audio from the input text.\n *\n * @example\n * ```ts\n * const speech = await client.audio.speech.create({\n * input: 'input',\n * model: 'string',\n * voice: 'ash',\n * });\n *\n * const content = await speech.blob();\n * console.log(content);\n * ```\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=speech.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Transcriptions extends APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', multipartFormRequestOptions({\n body,\n ...options,\n stream: body.stream ?? false,\n __metadata: { model: body.model },\n }, this._client));\n }\n}\n//# sourceMappingURL=transcriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Translations extends APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }, this._client));\n }\n}\n//# sourceMappingURL=translations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as SpeechAPI from \"./speech.mjs\";\nimport { Speech } from \"./speech.mjs\";\nimport * as TranscriptionsAPI from \"./transcriptions.mjs\";\nimport { Transcriptions, } from \"./transcriptions.mjs\";\nimport * as TranslationsAPI from \"./translations.mjs\";\nimport { Translations, } from \"./translations.mjs\";\nexport class Audio extends APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nAudio.Transcriptions = Transcriptions;\nAudio.Translations = Translations;\nAudio.Speech = Speech;\n//# sourceMappingURL=audio.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Batches extends APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchID, options) {\n return this._client.get(path `/batches/${batchID}`, options);\n }\n /**\n * List your organization's batches.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/batches', (CursorPage), { query, ...options });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchID, options) {\n return this._client.post(path `/batches/${batchID}/cancel`, options);\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Assistants extends APIResource {\n /**\n * Create an assistant with a model and instructions.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.create({\n * model: 'gpt-4o',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.retrieve(\n * 'assistant_id',\n * );\n * ```\n */\n retrieve(assistantID, options) {\n return this._client.get(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.update(\n * 'assistant_id',\n * );\n * ```\n */\n update(assistantID, body, options) {\n return this._client.post(path `/assistants/${assistantID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of assistants.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const assistant of client.beta.assistants.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/assistants', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete an assistant.\n *\n * @example\n * ```ts\n * const assistantDeleted =\n * await client.beta.assistants.delete('assistant_id');\n * ```\n */\n delete(assistantID, options) {\n return this._client.delete(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=assistants.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const session =\n * await client.beta.realtime.sessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class TranscriptionSessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API specifically for realtime transcriptions. Can be configured with\n * the same session parameters as the `transcription_session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const transcriptionSession =\n * await client.beta.realtime.transcriptionSessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/transcription_sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=transcription-sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions, } from \"./sessions.mjs\";\nimport * as TranscriptionSessionsAPI from \"./transcription-sessions.mjs\";\nimport { TranscriptionSessions, } from \"./transcription-sessions.mjs\";\n/**\n * @deprecated Realtime has now launched and is generally available. The old beta API is now deprecated.\n */\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.transcriptionSessions = new TranscriptionSessionsAPI.TranscriptionSessions(this._client);\n }\n}\nRealtime.Sessions = Sessions;\nRealtime.TranscriptionSessions = TranscriptionSessions;\n//# sourceMappingURL=realtime.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create a ChatKit session\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.create({\n * user: 'x',\n * workflow: { id: 'id' },\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/chatkit/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * Cancel a ChatKit session\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.cancel('cksess_123');\n * ```\n */\n cancel(sessionID, options) {\n return this._client.post(path `/chatkit/sessions/${sessionID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Threads extends APIResource {\n /**\n * Retrieve a ChatKit thread\n *\n * @example\n * ```ts\n * const chatkitThread =\n * await client.beta.chatkit.threads.retrieve('cthr_123');\n * ```\n */\n retrieve(threadID, options) {\n return this._client.get(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * List ChatKit threads\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatkitThread of client.beta.chatkit.threads.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chatkit/threads', (ConversationCursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * Delete a ChatKit thread\n *\n * @example\n * ```ts\n * const thread = await client.beta.chatkit.threads.delete(\n * 'cthr_123',\n * );\n * ```\n */\n delete(threadID, options) {\n return this._client.delete(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * List ChatKit thread items\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const thread of client.beta.chatkit.threads.listItems(\n * 'cthr_123',\n * )) {\n * // ...\n * }\n * ```\n */\n listItems(threadID, query = {}, options) {\n return this._client.getAPIList(path `/chatkit/threads/${threadID}/items`, (ConversationCursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions } from \"./sessions.mjs\";\nimport * as ThreadsAPI from \"./threads.mjs\";\nimport { Threads, } from \"./threads.mjs\";\nexport class ChatKit extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nChatKit.Sessions = Sessions;\nChatKit.Threads = Threads;\n//# sourceMappingURL=chatkit.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Messages extends APIResource {\n /**\n * Create a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}/messages`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieve a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(messageID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(messageID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/messages/${messageID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of messages for a given thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/messages`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Deletes a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(messageID, params, options) {\n const { thread_id } = params;\n return this._client.delete(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Steps extends APIResource {\n /**\n * Retrieves a run step.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(stepID, params, options) {\n const { thread_id, run_id, ...query } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${run_id}/steps/${stepID}`, {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of run steps belonging to a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(runID, params, options) {\n const { thread_id, ...query } = params;\n return this._client.getAPIList(path `/threads/${thread_id}/runs/${runID}/steps`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=steps.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\nimport { encodeUTF8 } from \"./bytes.mjs\";\nexport const toBase64 = (data) => {\n if (!data)\n return '';\n if (typeof globalThis.Buffer !== 'undefined') {\n return globalThis.Buffer.from(data).toString('base64');\n }\n if (typeof data === 'string') {\n data = encodeUTF8(data);\n }\n if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, data));\n }\n throw new OpenAIError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport const fromBase64 = (str) => {\n if (typeof globalThis.Buffer !== 'undefined') {\n const buf = globalThis.Buffer.from(str, 'base64');\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n if (typeof atob !== 'undefined') {\n const bstr = atob(str);\n const buf = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n buf[i] = bstr.charCodeAt(i);\n }\n return buf;\n }\n throw new OpenAIError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n/**\n * Converts a Base64 encoded string to a Float32Array.\n * @param base64Str - The Base64 encoded string.\n * @returns An Array of numbers interpreted as Float32 values.\n */\nexport const toFloat32Array = (base64Str) => {\n if (typeof Buffer !== 'undefined') {\n // for Node.js environment\n const buf = Buffer.from(base64Str, 'base64');\n return Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.length / Float32Array.BYTES_PER_ELEMENT));\n }\n else {\n // for legacy web platform APIs\n const binaryStr = atob(base64Str);\n const len = binaryStr.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryStr.charCodeAt(i);\n }\n return Array.from(new Float32Array(bytes.buffer));\n }\n};\n//# sourceMappingURL=base64.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","var _AssistantStream_instances, _a, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isObj } from \"../internal/utils.mjs\";\nexport class AssistantStream extends EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Track all events in a single list for reference\n _AssistantStream_events.set(this, []);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, {});\n _AssistantStream_messageSnapshots.set(this, {});\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n //Catch all for passing along all events\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n static fromReadableStream(stream) {\n const runner = new _a();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n static createToolAssistantStream(runId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runToolAssistantStream(runId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, runId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static createThreadAssistantStream(params, thread, options) {\n const runner = new _a();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n currentEvent() {\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n currentRun() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n currentMessageSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n currentRunStepSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run was not received.');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static accumulateDelta(acc, delta) {\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (!acc.hasOwnProperty(key)) {\n acc[key] = deltaValue;\n continue;\n }\n let accValue = acc[key];\n if (accValue === null || accValue === undefined) {\n acc[key] = deltaValue;\n continue;\n }\n // We don't accumulate these special properties\n if (key === 'index' || key === 'type') {\n acc[key] = deltaValue;\n continue;\n }\n // Type-specific accumulation logic\n if (typeof accValue === 'string' && typeof deltaValue === 'string') {\n accValue += deltaValue;\n }\n else if (typeof accValue === 'number' && typeof deltaValue === 'number') {\n accValue += deltaValue;\n }\n else if (isObj(accValue) && isObj(deltaValue)) {\n accValue = this.accumulateDelta(accValue, deltaValue);\n }\n else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {\n if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {\n accValue.push(...deltaValue); // Use spread syntax for efficient addition\n continue;\n }\n for (const deltaEntry of deltaValue) {\n if (!isObj(deltaEntry)) {\n throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);\n }\n const index = deltaEntry['index'];\n if (index == null) {\n console.error(deltaEntry);\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new Error(`Expected array delta entry \\`index\\` property to be a number but got ${index}`);\n }\n const accEntry = accValue[index];\n if (accEntry == null) {\n accValue.push(deltaEntry);\n }\n else {\n accValue[index] = this.accumulateDelta(accEntry, deltaEntry);\n }\n }\n continue;\n }\n else {\n throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);\n }\n acc[key] = accValue;\n }\n return acc;\n }\n _addRun(run) {\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, runId, params, options);\n }\n}\n_a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, event);\n switch (event.event) {\n case 'thread.created':\n //No action on this event.\n break;\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, event);\n break;\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, event);\n break;\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, event);\n break;\n case 'error':\n //This is included for completeness, but errors are processed in the SSE event processing so this should not occur\n throw new Error('Encountered an error event in event processing - errors should be processed earlier');\n default:\n assertNever(event);\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run has not been received');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[accumulatedMessage.id] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type == 'text') {\n this._emit('textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created':\n this._emit('messageCreated', event.data);\n break;\n case 'thread.message.in_progress':\n break;\n case 'thread.message.delta':\n this._emit('messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type == 'text' && content.text) {\n let textDelta = content.text;\n let snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type == 'text') {\n this._emit('textDelta', textDelta, snapshot.text);\n }\n else {\n throw Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text':\n this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'image_file':\n this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file':\n this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'text':\n this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n this._emit('messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created':\n this._emit('runStepCreated', event.data);\n break;\n case 'thread.run.step.delta':\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type == 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type == 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"))\n this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n this._emit('runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type == 'tool_calls') {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n }\n this._emit('runStepDone', event.data, accumulatedRunStep);\n break;\n case 'thread.run.step.in_progress':\n break;\n }\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_events, \"f\").push(event);\n this._emit('event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {\n switch (event.event) {\n case 'thread.run.step.created':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n return event.data;\n case 'thread.run.step.delta':\n let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n if (!snapshot) {\n throw Error('Received a RunStepDelta before creation of a snapshot');\n }\n let data = event.data;\n if (data.delta) {\n const accumulated = _a.accumulateDelta(snapshot, data.delta);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = accumulated;\n }\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n break;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id])\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n let newContent = [];\n switch (event.event) {\n case 'thread.message.created':\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n case 'thread.message.delta':\n if (!snapshot) {\n throw Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n let data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n for (const contentElement of data.delta.content) {\n if (contentElement.index in snapshot.content) {\n let currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);\n }\n else {\n snapshot.content[contentElement.index] = contentElement;\n // This is a new element\n newContent.push(contentElement);\n }\n }\n }\n return [snapshot, newContent];\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //No changes on other thread events\n if (snapshot) {\n return [snapshot, newContent];\n }\n else {\n throw Error('Received thread message event with no existing snapshot');\n }\n }\n throw Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {\n return _a.accumulateDelta(currentContent, contentElement);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created':\n break;\n case 'thread.run.queued':\n break;\n case 'thread.run.in_progress':\n break;\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n case 'thread.run.incomplete':\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n break;\n case 'thread.run.cancelling':\n break;\n }\n};\nfunction assertNever(_x) { }\n//# sourceMappingURL=AssistantStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as StepsAPI from \"./steps.mjs\";\nimport { Steps, } from \"./steps.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../../lib/AssistantStream.mjs\";\nimport { sleep } from \"../../../../internal/utils/sleep.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/threads/${threadID}/runs`, {\n query: { include },\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * Retrieves a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(runID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${runID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of runs belonging to a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/runs`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n cancel(runID, params, options) {\n const { thread_id } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(run.id, { thread_id: threadId }, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(runId, params, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: run, response } = await this.retrieve(runId, params, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }).withResponse();\n switch (run.status) {\n //If we are in any sort of intermediate state we poll\n case 'queued':\n case 'in_progress':\n case 'cancelling':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n //We return the run in any terminal state.\n case 'requires_action':\n case 'incomplete':\n case 'cancelled':\n case 'completed':\n case 'failed':\n case 'expired':\n return run;\n }\n }\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/submit_tool_outputs`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(runId, params, options) {\n const run = await this.submitToolOutputs(runId, params, options);\n return await this.poll(run.id, params, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(runId, params, options) {\n return AssistantStream.createToolAssistantStream(runId, this._client.beta.threads.runs, params, options);\n }\n}\nRuns.Steps = Steps;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages, } from \"./messages.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../lib/AssistantStream.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Threads extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n /**\n * Create a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(body = {}, options) {\n return this._client.post('/threads', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(threadID, options) {\n return this._client.get(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(threadID, options) {\n return this._client.delete(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.id, { thread_id: run.thread_id }, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nThreads.Runs = Runs;\nThreads.Messages = Messages;\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as AssistantsAPI from \"./assistants.mjs\";\nimport { Assistants, } from \"./assistants.mjs\";\nimport * as RealtimeAPI from \"./realtime/realtime.mjs\";\nimport { Realtime, } from \"./realtime/realtime.mjs\";\nimport * as ChatKitAPI from \"./chatkit/chatkit.mjs\";\nimport { ChatKit } from \"./chatkit/chatkit.mjs\";\nimport * as ThreadsAPI from \"./threads/threads.mjs\";\nimport { Threads, } from \"./threads/threads.mjs\";\nexport class Beta extends APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.chatkit = new ChatKitAPI.ChatKit(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nBeta.Realtime = Realtime;\nBeta.ChatKit = ChatKit;\nBeta.Assistants = Assistants;\nBeta.Threads = Threads;\n//# sourceMappingURL=beta.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Completions extends APIResource {\n create(body, options) {\n return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Retrieve Container File Content\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n }\n /**\n * Create a Container File\n *\n * You can send either a multipart/form-data request with the raw file content, or\n * a JSON request with a file ID.\n */\n create(containerID, body, options) {\n return this._client.post(path `/containers/${containerID}/files`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve Container File\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}`, options);\n }\n /**\n * List Container files\n */\n list(containerID, query = {}, options) {\n return this._client.getAPIList(path `/containers/${containerID}/files`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete Container File\n */\n delete(fileID, params, options) {\n const { container_id } = params;\n return this._client.delete(path `/containers/${container_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nFiles.Content = Content;\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FilesAPI from \"./files/files.mjs\";\nimport { Files, } from \"./files/files.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Containers extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n }\n /**\n * Create Container\n */\n create(body, options) {\n return this._client.post('/containers', { body, ...options });\n }\n /**\n * Retrieve Container\n */\n retrieve(containerID, options) {\n return this._client.get(path `/containers/${containerID}`, options);\n }\n /**\n * List Containers\n */\n list(query = {}, options) {\n return this._client.getAPIList('/containers', (CursorPage), { query, ...options });\n }\n /**\n * Delete Container\n */\n delete(containerID, options) {\n return this._client.delete(path `/containers/${containerID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nContainers.Files = Files;\n//# sourceMappingURL=containers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Items extends APIResource {\n /**\n * Create items in a conversation with the given ID.\n */\n create(conversationID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/conversations/${conversationID}/items`, {\n query: { include },\n body,\n ...options,\n });\n }\n /**\n * Get a single item from a conversation with the given IDs.\n */\n retrieve(itemID, params, options) {\n const { conversation_id, ...query } = params;\n return this._client.get(path `/conversations/${conversation_id}/items/${itemID}`, { query, ...options });\n }\n /**\n * List all items for a conversation with the given ID.\n */\n list(conversationID, query = {}, options) {\n return this._client.getAPIList(path `/conversations/${conversationID}/items`, (ConversationCursorPage), { query, ...options });\n }\n /**\n * Delete an item from a conversation with the given IDs.\n */\n delete(itemID, params, options) {\n const { conversation_id } = params;\n return this._client.delete(path `/conversations/${conversation_id}/items/${itemID}`, options);\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items, } from \"./items.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Conversations extends APIResource {\n constructor() {\n super(...arguments);\n this.items = new ItemsAPI.Items(this._client);\n }\n /**\n * Create a conversation.\n */\n create(body = {}, options) {\n return this._client.post('/conversations', { body, ...options });\n }\n /**\n * Get a conversation\n */\n retrieve(conversationID, options) {\n return this._client.get(path `/conversations/${conversationID}`, options);\n }\n /**\n * Update a conversation\n */\n update(conversationID, body, options) {\n return this._client.post(path `/conversations/${conversationID}`, { body, ...options });\n }\n /**\n * Delete a conversation. Items in the conversation will not be deleted.\n */\n delete(conversationID, options) {\n return this._client.delete(path `/conversations/${conversationID}`, options);\n }\n}\nConversations.Items = Items;\n//# sourceMappingURL=conversations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { loggerFor, toFloat32Array } from \"../internal/utils.mjs\";\nexport class Embeddings extends APIResource {\n /**\n * Creates an embedding vector representing the input text.\n *\n * @example\n * ```ts\n * const createEmbeddingResponse =\n * await client.embeddings.create({\n * input: 'The quick brown fox jumped over the lazy dog',\n * model: 'text-embedding-3-small',\n * });\n * ```\n */\n create(body, options) {\n const hasUserProvidedEncodingFormat = !!body.encoding_format;\n // No encoding_format specified, defaulting to base64 for performance reasons\n // See https://github.com/openai/openai-node/pull/1312\n let encoding_format = hasUserProvidedEncodingFormat ? body.encoding_format : 'base64';\n if (hasUserProvidedEncodingFormat) {\n loggerFor(this._client).debug('embeddings/user defined encoding_format:', body.encoding_format);\n }\n const response = this._client.post('/embeddings', {\n body: {\n ...body,\n encoding_format: encoding_format,\n },\n ...options,\n });\n // if the user specified an encoding_format, return the response as-is\n if (hasUserProvidedEncodingFormat) {\n return response;\n }\n // in this stage, we are sure the user did not specify an encoding_format\n // and we defaulted to base64 for performance reasons\n // we are sure then that the response is base64 encoded, let's decode it\n // the returned result will be a float32 array since this is OpenAI API's default encoding\n loggerFor(this._client).debug('embeddings/decoding base64 embeddings from base64');\n return response._thenUnwrap((response) => {\n if (response && response.data) {\n response.data.forEach((embeddingBase64Obj) => {\n const embeddingBase64Str = embeddingBase64Obj.embedding;\n embeddingBase64Obj.embedding = toFloat32Array(embeddingBase64Str);\n });\n }\n return response;\n });\n }\n}\n//# sourceMappingURL=embeddings.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class OutputItems extends APIResource {\n /**\n * Get an evaluation run output item by ID.\n */\n retrieve(outputItemID, params, options) {\n const { eval_id, run_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${run_id}/output_items/${outputItemID}`, options);\n }\n /**\n * Get a list of output items for an evaluation run.\n */\n list(runID, params, options) {\n const { eval_id, ...query } = params;\n return this._client.getAPIList(path `/evals/${eval_id}/runs/${runID}/output_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=output-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as OutputItemsAPI from \"./output-items.mjs\";\nimport { OutputItems, } from \"./output-items.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.outputItems = new OutputItemsAPI.OutputItems(this._client);\n }\n /**\n * Kicks off a new run for a given evaluation, specifying the data source, and what\n * model configuration to use to test. The datasource will be validated against the\n * schema specified in the config of the evaluation.\n */\n create(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}/runs`, { body, ...options });\n }\n /**\n * Get an evaluation run by ID.\n */\n retrieve(runID, params, options) {\n const { eval_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Get a list of runs for an evaluation.\n */\n list(evalID, query = {}, options) {\n return this._client.getAPIList(path `/evals/${evalID}/runs`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete an eval run.\n */\n delete(runID, params, options) {\n const { eval_id } = params;\n return this._client.delete(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Cancel an ongoing evaluation run.\n */\n cancel(runID, params, options) {\n const { eval_id } = params;\n return this._client.post(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n}\nRuns.OutputItems = OutputItems;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Evals extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n }\n /**\n * Create the structure of an evaluation that can be used to test a model's\n * performance. An evaluation is a set of testing criteria and the config for a\n * data source, which dictates the schema of the data used in the evaluation. After\n * creating an evaluation, you can run it on different models and model parameters.\n * We support several types of graders and datasources. For more information, see\n * the [Evals guide](https://platform.openai.com/docs/guides/evals).\n */\n create(body, options) {\n return this._client.post('/evals', { body, ...options });\n }\n /**\n * Get an evaluation by ID.\n */\n retrieve(evalID, options) {\n return this._client.get(path `/evals/${evalID}`, options);\n }\n /**\n * Update certain properties of an evaluation.\n */\n update(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}`, { body, ...options });\n }\n /**\n * List evaluations for a project.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/evals', (CursorPage), { query, ...options });\n }\n /**\n * Delete an evaluation.\n */\n delete(evalID, options) {\n return this._client.delete(path `/evals/${evalID}`, options);\n }\n}\nEvals.Runs = Runs;\n//# sourceMappingURL=evals.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { sleep } from \"../internal/utils/sleep.mjs\";\nimport { APIConnectionTimeoutError } from \"../error.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and the size of all files uploaded by one organization can be up\n * to 1 TB.\n *\n * - The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools)\n * for details.\n * - The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input)\n * or\n * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)\n * models.\n * - The Batch API only supports `.jsonl` files up to 200 MB in size. The input\n * also has a specific required\n * [format](https://platform.openai.com/docs/api-reference/batch/request-input).\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileID, options) {\n return this._client.get(path `/files/${fileID}`, options);\n }\n /**\n * Returns a list of files.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/files', (CursorPage), { query, ...options });\n }\n /**\n * Delete a file and remove it from all vector stores.\n */\n delete(fileID, options) {\n return this._client.delete(path `/files/${fileID}`, options);\n }\n /**\n * Returns the contents of the specified file.\n */\n content(fileID, options) {\n return this._client.get(path `/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);\n const start = Date.now();\n let file = await this.retrieve(id);\n while (!file.status || !TERMINAL_STATES.has(file.status)) {\n await sleep(pollInterval);\n file = await this.retrieve(id);\n if (Date.now() - start > maxWait) {\n throw new APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class Methods extends APIResource {\n}\n//# sourceMappingURL=methods.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Graders extends APIResource {\n /**\n * Run a grader.\n *\n * @example\n * ```ts\n * const response = await client.fineTuning.alpha.graders.run({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * model_sample: 'model_sample',\n * });\n * ```\n */\n run(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/run', { body, ...options });\n }\n /**\n * Validate a grader.\n *\n * @example\n * ```ts\n * const response =\n * await client.fineTuning.alpha.graders.validate({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/validate', { body, ...options });\n }\n}\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as GradersAPI from \"./graders.mjs\";\nimport { Graders, } from \"./graders.mjs\";\nexport class Alpha extends APIResource {\n constructor() {\n super(...arguments);\n this.graders = new GradersAPI.Graders(this._client);\n }\n}\nAlpha.Graders = Graders;\n//# sourceMappingURL=alpha.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Permissions extends APIResource {\n /**\n * **NOTE:** Calling this endpoint requires an [admin API key](../admin-api-keys).\n *\n * This enables organization owners to share fine-tuned models with other projects\n * in their organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const permissionCreateResponse of client.fineTuning.checkpoints.permissions.create(\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * { project_ids: ['string'] },\n * )) {\n * // ...\n * }\n * ```\n */\n create(fineTunedModelCheckpoint, body, options) {\n return this._client.getAPIList(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, (Page), { body, method: 'post', ...options });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to view all permissions for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTunedModelCheckpoint, query = {}, options) {\n return this._client.get(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, {\n query,\n ...options,\n });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to delete a permission for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.delete(\n * 'cp_zc4Q7MP6XxulcVzj4MZdwsAB',\n * {\n * fine_tuned_model_checkpoint:\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * },\n * );\n * ```\n */\n delete(permissionID, params, options) {\n const { fine_tuned_model_checkpoint } = params;\n return this._client.delete(path `/fine_tuning/checkpoints/${fine_tuned_model_checkpoint}/permissions/${permissionID}`, options);\n }\n}\n//# sourceMappingURL=permissions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as PermissionsAPI from \"./permissions.mjs\";\nimport { Permissions, } from \"./permissions.mjs\";\nexport class Checkpoints extends APIResource {\n constructor() {\n super(...arguments);\n this.permissions = new PermissionsAPI.Permissions(this._client);\n }\n}\nCheckpoints.Permissions = Permissions;\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Checkpoints extends APIResource {\n /**\n * List checkpoints for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobCheckpoint of client.fineTuning.jobs.checkpoints.list(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n list(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/checkpoints`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints.mjs\";\nimport { Checkpoints, } from \"./checkpoints.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Jobs extends APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.create({\n * model: 'gpt-4o-mini',\n * training_file: 'file-abc123',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTuningJobID, options) {\n return this._client.get(path `/fine_tuning/jobs/${fineTuningJobID}`, options);\n }\n /**\n * List your organization's fine-tuning jobs\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJob of client.fineTuning.jobs.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/fine_tuning/jobs', (CursorPage), { query, ...options });\n }\n /**\n * Immediately cancel a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.cancel(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n cancel(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/cancel`, options);\n }\n /**\n * Get status updates for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobEvent of client.fineTuning.jobs.listEvents(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n listEvents(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/events`, (CursorPage), { query, ...options });\n }\n /**\n * Pause a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.pause(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n pause(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/pause`, options);\n }\n /**\n * Resume a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.resume(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n resume(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/resume`, options);\n }\n}\nJobs.Checkpoints = Checkpoints;\n//# sourceMappingURL=jobs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as MethodsAPI from \"./methods.mjs\";\nimport { Methods, } from \"./methods.mjs\";\nimport * as AlphaAPI from \"./alpha/alpha.mjs\";\nimport { Alpha } from \"./alpha/alpha.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints/checkpoints.mjs\";\nimport { Checkpoints } from \"./checkpoints/checkpoints.mjs\";\nimport * as JobsAPI from \"./jobs/jobs.mjs\";\nimport { Jobs, } from \"./jobs/jobs.mjs\";\nexport class FineTuning extends APIResource {\n constructor() {\n super(...arguments);\n this.methods = new MethodsAPI.Methods(this._client);\n this.jobs = new JobsAPI.Jobs(this._client);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n this.alpha = new AlphaAPI.Alpha(this._client);\n }\n}\nFineTuning.Methods = Methods;\nFineTuning.Jobs = Jobs;\nFineTuning.Checkpoints = Checkpoints;\nFineTuning.Alpha = Alpha;\n//# sourceMappingURL=fine-tuning.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class GraderModels extends APIResource {\n}\n//# sourceMappingURL=grader-models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as GraderModelsAPI from \"./grader-models.mjs\";\nimport { GraderModels, } from \"./grader-models.mjs\";\nexport class Graders extends APIResource {\n constructor() {\n super(...arguments);\n this.graderModels = new GraderModelsAPI.GraderModels(this._client);\n }\n}\nGraders.GraderModels = GraderModels;\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nexport class Images extends APIResource {\n /**\n * Creates a variation of a given image. This endpoint only supports `dall-e-2`.\n *\n * @example\n * ```ts\n * const imagesResponse = await client.images.createVariation({\n * image: fs.createReadStream('otter.png'),\n * });\n * ```\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n edit(body, options) {\n return this._client.post('/images/edits', multipartFormRequestOptions({ body, ...options, stream: body.stream ?? false }, this._client));\n }\n generate(body, options) {\n return this._client.post('/images/generations', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { Page } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Models extends APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(path `/models/${model}`, options);\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', (Page), options);\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n delete(model, options) {\n return this._client.delete(path `/models/${model}`, options);\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Moderations extends APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the [moderation guide](https://platform.openai.com/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options });\n }\n}\n//# sourceMappingURL=moderations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Calls extends APIResource {\n /**\n * Accept an incoming SIP call and configure the realtime session that will handle\n * it.\n *\n * @example\n * ```ts\n * await client.realtime.calls.accept('call_id', {\n * type: 'realtime',\n * });\n * ```\n */\n accept(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/accept`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * End an active Realtime API call, whether it was initiated over SIP or WebRTC.\n *\n * @example\n * ```ts\n * await client.realtime.calls.hangup('call_id');\n * ```\n */\n hangup(callID, options) {\n return this._client.post(path `/realtime/calls/${callID}/hangup`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Transfer an active SIP call to a new destination using the SIP REFER verb.\n *\n * @example\n * ```ts\n * await client.realtime.calls.refer('call_id', {\n * target_uri: 'tel:+14155550123',\n * });\n * ```\n */\n refer(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/refer`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Decline an incoming SIP call by returning a SIP status code to the caller.\n *\n * @example\n * ```ts\n * await client.realtime.calls.reject('call_id');\n * ```\n */\n reject(callID, body = {}, options) {\n return this._client.post(path `/realtime/calls/${callID}/reject`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=calls.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class ClientSecrets extends APIResource {\n /**\n * Create a Realtime client secret with an associated session configuration.\n *\n * @example\n * ```ts\n * const clientSecret =\n * await client.realtime.clientSecrets.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/client_secrets', { body, ...options });\n }\n}\n//# sourceMappingURL=client-secrets.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CallsAPI from \"./calls.mjs\";\nimport { Calls } from \"./calls.mjs\";\nimport * as ClientSecretsAPI from \"./client-secrets.mjs\";\nimport { ClientSecrets, } from \"./client-secrets.mjs\";\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.clientSecrets = new ClientSecretsAPI.ClientSecrets(this._client);\n this.calls = new CallsAPI.Calls(this._client);\n }\n}\nRealtime.ClientSecrets = ClientSecrets;\nRealtime.Calls = Calls;\n//# sourceMappingURL=realtime.mjs.map","import { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableResponseFormat } from \"../lib/parser.mjs\";\nexport function maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n else {\n return item;\n }\n }),\n };\n }\n return parseResponse(response, params);\n}\nexport function parseResponse(response, params) {\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: parseToolCall(params, item),\n };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: parseTextFormat(params, content.text),\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = Object.assign({}, response, { output });\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n return parsed;\n}\nfunction parseTextFormat(params, content) {\n if (params.text?.format?.type !== 'json_schema') {\n return null;\n }\n if ('$parseRaw' in params.text?.format) {\n const text_format = params.text?.format;\n return text_format.$parseRaw(content);\n }\n return JSON.parse(content);\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.text?.format)) {\n return true;\n }\n return false;\n}\nexport function makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nfunction getInputToolByName(input_tools, name) {\n return input_tools.find((tool) => tool.type === 'function' && tool.name === name);\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return {\n ...toolCall,\n ...toolCall,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.arguments)\n : inputTool?.strict ? JSON.parse(toolCall.arguments)\n : null,\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexport function addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\n//# sourceMappingURL=ResponsesParser.mjs.map","var _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest, _ResponseStream_accumulateResponse;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../../error.mjs\";\nimport { EventStream } from \"../EventStream.mjs\";\nimport { maybeParseResponse } from \"../ResponsesParser.mjs\";\nexport class ResponseStream extends EventStream {\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n static createResponse(client, params, options) {\n const runner = new ResponseStream(params);\n runner._run(() => runner._createOrRetrieveResponse(client, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createOrRetrieveResponse(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n let stream;\n let starting_after = null;\n if ('response_id' in params) {\n stream = await client.responses.retrieve(params.response_id, { stream: true }, { ...options, signal: this.controller.signal, stream: true });\n starting_after = params.starting_after ?? null;\n }\n else {\n stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n }\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event, starting_after);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event, starting_after) {\n if (this.ended)\n return;\n const maybeEmit = (name, event) => {\n if (starting_after == null || event.sequence_number > starting_after) {\n this._emit(name, event);\n }\n };\n const response = __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_accumulateResponse).call(this, event);\n maybeEmit('event', event);\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n maybeEmit('response.output_text.delta', {\n ...event,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n maybeEmit('response.function_call_arguments.delta', {\n ...event,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default:\n maybeEmit(event.type, event);\n break;\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, _ResponseStream_accumulateResponse = function _ResponseStream_accumulateResponse(event) {\n let snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n if (event.type !== 'response.created') {\n throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);\n }\n snapshot = __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n return snapshot;\n }\n switch (event.type) {\n case 'response.output_item.added': {\n snapshot.output.push(event.item);\n break;\n }\n case 'response.content_part.added': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n const type = output.type;\n const part = event.part;\n if (type === 'message' && part.type !== 'reasoning_text') {\n output.content.push(part);\n }\n else if (type === 'reasoning' && part.type === 'reasoning_text') {\n if (!output.content) {\n output.content = [];\n }\n output.content.push(part);\n }\n break;\n }\n case 'response.output_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n break;\n }\n case 'response.reasoning_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'reasoning') {\n const content = output.content?.[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'reasoning_text') {\n throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.completed': {\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n break;\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((event) => (event ? { value: event, done: false } : { value: undefined, done: true }));\n }\n const event = pushQueue.shift();\n return { value: event, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * @returns a promise that resolves with the final Response, or rejects\n * if an error occurred or the stream ended prematurely without producing a REsponse.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return response;\n }\n}\nfunction finalizeResponse(snapshot, params) {\n return maybeParseResponse(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class InputItems extends APIResource {\n /**\n * Returns a list of input items for a given response.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const responseItem of client.responses.inputItems.list(\n * 'response_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(responseID, query = {}, options) {\n return this._client.getAPIList(path `/responses/${responseID}/input_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=input-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class InputTokens extends APIResource {\n /**\n * Get input token counts\n *\n * @example\n * ```ts\n * const response = await client.responses.inputTokens.count();\n * ```\n */\n count(body = {}, options) {\n return this._client.post('/responses/input_tokens', { body, ...options });\n }\n}\n//# sourceMappingURL=input-tokens.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { parseResponse, addOutputText, } from \"../../lib/ResponsesParser.mjs\";\nimport { ResponseStream } from \"../../lib/responses/ResponseStream.mjs\";\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as InputItemsAPI from \"./input-items.mjs\";\nimport { InputItems } from \"./input-items.mjs\";\nimport * as InputTokensAPI from \"./input-tokens.mjs\";\nimport { InputTokens } from \"./input-tokens.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Responses extends APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n this.inputTokens = new InputTokensAPI.InputTokens(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseID, query = {}, options) {\n return this._client.get(path `/responses/${responseID}`, {\n query,\n ...options,\n stream: query?.stream ?? false,\n })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n /**\n * Deletes a model response with the given ID.\n *\n * @example\n * ```ts\n * await client.responses.delete(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n delete(responseID, options) {\n return this._client.delete(path `/responses/${responseID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => parseResponse(response, body));\n }\n /**\n * Creates a model response stream\n */\n stream(body, options) {\n return ResponseStream.createResponse(this._client, body, options);\n }\n /**\n * Cancels a model response with the given ID. Only responses created with the\n * `background` parameter set to `true` can be cancelled.\n * [Learn more](https://platform.openai.com/docs/guides/background).\n *\n * @example\n * ```ts\n * const response = await client.responses.cancel(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n cancel(responseID, options) {\n return this._client.post(path `/responses/${responseID}/cancel`, options);\n }\n}\nResponses.InputItems = InputItems;\nResponses.InputTokens = InputTokens;\n//# sourceMappingURL=responses.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Parts extends APIResource {\n /**\n * Adds a\n * [Part](https://platform.openai.com/docs/api-reference/uploads/part-object) to an\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object.\n * A Part represents a chunk of bytes from the file you are trying to upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://platform.openai.com/docs/api-reference/uploads/complete).\n */\n create(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/parts`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=parts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PartsAPI from \"./parts.mjs\";\nimport { Parts } from \"./parts.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Uploads extends APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object\n * that you can add\n * [Parts](https://platform.openai.com/docs/api-reference/uploads/part-object) to.\n * Currently, an Upload can accept at most 8 GB in total and expires after an hour\n * after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://platform.openai.com/docs/assistants/tools/file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://platform.openai.com/docs/api-reference/files/create).\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n */\n cancel(uploadID, options) {\n return this._client.post(path `/uploads/${uploadID}/cancel`, options);\n }\n /**\n * Completes the\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed.\n */\n complete(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/complete`, { body, ...options });\n }\n}\nUploads.Parts = Parts;\n//# sourceMappingURL=uploads.mjs.map","/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n */\nexport const allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n for (const result of rejected) {\n console.error(result.reason);\n }\n throw new Error(`${rejected.length} promise(s) failed - see the above errors`);\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\n//# sourceMappingURL=Util.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { allSettledWithThrow } from \"../../lib/Util.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class FileBatches extends APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/file_batches`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/file_batches/${batchID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n /**\n * Returns a list of vector store files in a batch.\n */\n listFiles(batchID, params, options) {\n const { vector_store_id, ...query } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/files`, (CursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreID, batchID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: batch, response } = await this.retrieve(batchID, { vector_store_id: vectorStoreID }, {\n ...options,\n headers,\n }).withResponse();\n switch (batch.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'cancelled':\n case 'completed':\n return batch;\n }\n }\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n if (files == null || files.length == 0) {\n throw new Error(`No \\`files\\` provided to process. If you've already uploaded files you should use \\`.createAndPoll()\\` instead`);\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n // We cap the number of workers at the number of files (so we don't start any unnecessary workers)\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n const client = this._client;\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (let item of iterator) {\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Start workers to process results\n const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);\n // Wait for all processing to complete.\n await allSettledWithThrow(workers);\n return await this.createAndPoll(vectorStoreId, {\n file_ids: allFileIds,\n });\n }\n}\n//# sourceMappingURL=file-batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://platform.openai.com/docs/api-reference/files) to a\n * [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/files`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(fileID, params, options) {\n const { vector_store_id, ...body } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector store files.\n */\n list(vectorStoreID, query = {}, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/files`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://platform.openai.com/docs/api-reference/files/delete)\n * endpoint.\n */\n delete(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.delete(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreID, fileID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const fileResponse = await this.retrieve(fileID, {\n vector_store_id: vectorStoreID,\n }, { ...options, headers }).withResponse();\n const file = fileResponse.data;\n switch (file.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'completed':\n return file;\n }\n }\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/files/${fileID}/content`, (Page), { ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FileBatchesAPI from \"./file-batches.mjs\";\nimport { FileBatches, } from \"./file-batches.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files, } from \"./files.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class VectorStores extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreID, options) {\n return this._client.get(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector stores.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/vector_stores', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store.\n */\n delete(vectorStoreID, options) {\n return this._client.delete(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreID, body, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/search`, (Page), {\n body,\n method: 'post',\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\nVectorStores.Files = Files;\nVectorStores.FileBatches = FileBatches;\n//# sourceMappingURL=vector-stores.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { ConversationCursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { maybeMultipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Videos extends APIResource {\n /**\n * Create a video\n */\n create(body, options) {\n return this._client.post('/videos', maybeMultipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve a video\n */\n retrieve(videoID, options) {\n return this._client.get(path `/videos/${videoID}`, options);\n }\n /**\n * List videos\n */\n list(query = {}, options) {\n return this._client.getAPIList('/videos', (ConversationCursorPage), { query, ...options });\n }\n /**\n * Delete a video\n */\n delete(videoID, options) {\n return this._client.delete(path `/videos/${videoID}`, options);\n }\n /**\n * Download video content\n */\n downloadContent(videoID, query = {}, options) {\n return this._client.get(path `/videos/${videoID}/content`, {\n query,\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Create a video remix\n */\n remix(videoID, body, options) {\n return this._client.post(path `/videos/${videoID}/remix`, maybeMultipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=videos.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _Webhooks_instances, _Webhooks_validateSecret, _Webhooks_getRequiredHeader;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { InvalidWebhookSignatureError } from \"../error.mjs\";\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n _Webhooks_instances.add(this);\n }\n /**\n * Validates that the given payload was sent by OpenAI and parses the payload.\n */\n async unwrap(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n await this.verifySignature(payload, headers, secret, tolerance);\n return JSON.parse(payload);\n }\n /**\n * Validates whether or not the webhook payload was sent by OpenAI.\n *\n * An error will be raised if the webhook payload was not sent by OpenAI.\n *\n * @param payload - The webhook payload\n * @param headers - The webhook headers\n * @param secret - The webhook secret (optional, will use client secret if not provided)\n * @param tolerance - Maximum age of the webhook in seconds (default: 300 = 5 minutes)\n */\n async verifySignature(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n if (typeof crypto === 'undefined' ||\n typeof crypto.subtle.importKey !== 'function' ||\n typeof crypto.subtle.verify !== 'function') {\n throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');\n }\n __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_validateSecret).call(this, secret);\n const headersObj = buildHeaders([headers]).values;\n const signatureHeader = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-signature');\n const timestamp = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-timestamp');\n const webhookId = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-id');\n // Validate timestamp to prevent replay attacks\n const timestampSeconds = parseInt(timestamp, 10);\n if (isNaN(timestampSeconds)) {\n throw new InvalidWebhookSignatureError('Invalid webhook timestamp format');\n }\n const nowSeconds = Math.floor(Date.now() / 1000);\n if (nowSeconds - timestampSeconds > tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too old');\n }\n if (timestampSeconds > nowSeconds + tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too new');\n }\n // Extract signatures from v1, format\n // The signature header can have multiple values, separated by spaces.\n // Each value is in the format v1,. We should accept if any match.\n const signatures = signatureHeader\n .split(' ')\n .map((part) => (part.startsWith('v1,') ? part.substring(3) : part));\n // Decode the secret if it starts with whsec_\n const decodedSecret = secret.startsWith('whsec_') ?\n Buffer.from(secret.replace('whsec_', ''), 'base64')\n : Buffer.from(secret, 'utf-8');\n // Create the signed payload: {webhook_id}.{timestamp}.{payload}\n const signedPayload = webhookId ? `${webhookId}.${timestamp}.${payload}` : `${timestamp}.${payload}`;\n // Import the secret as a cryptographic key for HMAC\n const key = await crypto.subtle.importKey('raw', decodedSecret, { name: 'HMAC', hash: 'SHA-256' }, false, ['verify']);\n // Check if any signature matches using timing-safe WebCrypto verify\n for (const signature of signatures) {\n try {\n const signatureBytes = Buffer.from(signature, 'base64');\n const isValid = await crypto.subtle.verify('HMAC', key, signatureBytes, new TextEncoder().encode(signedPayload));\n if (isValid) {\n return; // Valid signature found\n }\n }\n catch {\n // Invalid base64 or signature format, continue to next signature\n continue;\n }\n }\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n }\n}\n_Webhooks_instances = new WeakSet(), _Webhooks_validateSecret = function _Webhooks_validateSecret(secret) {\n if (typeof secret !== 'string' || secret.length === 0) {\n throw new Error(`The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function`);\n }\n}, _Webhooks_getRequiredHeader = function _Webhooks_getRequiredHeader(headers, name) {\n if (!headers) {\n throw new Error(`Headers are required`);\n }\n const value = headers.get(name);\n if (value === null || value === undefined) {\n throw new Error(`Missing required header: ${name}`);\n }\n return value;\n};\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _OpenAI_instances, _a, _OpenAI_encoder, _OpenAI_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport * as qs from \"./internal/qs/index.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Batches, } from \"./resources/batches.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { Embeddings, } from \"./resources/embeddings.mjs\";\nimport { Files, } from \"./resources/files.mjs\";\nimport { Images, } from \"./resources/images.mjs\";\nimport { Models } from \"./resources/models.mjs\";\nimport { Moderations, } from \"./resources/moderations.mjs\";\nimport { Videos, } from \"./resources/videos.mjs\";\nimport { Webhooks } from \"./resources/webhooks.mjs\";\nimport { Audio } from \"./resources/audio/audio.mjs\";\nimport { Beta } from \"./resources/beta/beta.mjs\";\nimport { Chat } from \"./resources/chat/chat.mjs\";\nimport { Containers, } from \"./resources/containers/containers.mjs\";\nimport { Conversations } from \"./resources/conversations/conversations.mjs\";\nimport { Evals, } from \"./resources/evals/evals.mjs\";\nimport { FineTuning } from \"./resources/fine-tuning/fine-tuning.mjs\";\nimport { Graders } from \"./resources/graders/graders.mjs\";\nimport { Realtime } from \"./resources/realtime/realtime.mjs\";\nimport { Responses } from \"./resources/responses/responses.mjs\";\nimport { Uploads as UploadsAPIUploads, } from \"./resources/uploads/uploads.mjs\";\nimport { VectorStores, } from \"./resources/vector-stores/vector-stores.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\n/**\n * API Client for interfacing with the OpenAI API.\n */\nexport class OpenAI {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string | null | undefined} [opts.webhookSecret=process.env['OPENAI_WEBHOOK_SECRET'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = readEnv('OPENAI_BASE_URL'), apiKey = readEnv('OPENAI_API_KEY'), organization = readEnv('OPENAI_ORG_ID') ?? null, project = readEnv('OPENAI_PROJECT_ID') ?? null, webhookSecret = readEnv('OPENAI_WEBHOOK_SECRET') ?? null, ...opts } = {}) {\n _OpenAI_instances.add(this);\n _OpenAI_encoder.set(this, void 0);\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n this.embeddings = new API.Embeddings(this);\n this.files = new API.Files(this);\n this.images = new API.Images(this);\n this.audio = new API.Audio(this);\n this.moderations = new API.Moderations(this);\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.graders = new API.Graders(this);\n this.vectorStores = new API.VectorStores(this);\n this.webhooks = new API.Webhooks(this);\n this.beta = new API.Beta(this);\n this.batches = new API.Batches(this);\n this.uploads = new API.Uploads(this);\n this.responses = new API.Responses(this);\n this.realtime = new API.Realtime(this);\n this.conversations = new API.Conversations(this);\n this.evals = new API.Evals(this);\n this.containers = new API.Containers(this);\n this.videos = new API.Videos(this);\n if (apiKey === undefined) {\n throw new Errors.OpenAIError('Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.');\n }\n const options = {\n apiKey,\n organization,\n project,\n webhookSecret,\n ...opts,\n baseURL: baseURL || `https://api.openai.com/v1`,\n };\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n this.baseURL = options.baseURL;\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('OPENAI_LOG'), \"process.env['OPENAI_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _OpenAI_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.apiKey = typeof apiKey === 'string' ? apiKey : 'Missing Key';\n this.organization = organization;\n this.project = project;\n this.webhookSecret = webhookSecret;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n organization: this.organization,\n project: this.project,\n webhookSecret: this.webhookSecret,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n return;\n }\n async authHeaders(opts) {\n return buildHeaders([{ Authorization: `Bearer ${this.apiKey}` }]);\n }\n stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n async _callApiKey() {\n const apiKey = this._options.apiKey;\n if (typeof apiKey !== 'function')\n return false;\n let token;\n try {\n token = await apiKey();\n }\n catch (err) {\n if (err instanceof Errors.OpenAIError)\n throw err;\n throw new Errors.OpenAIError(`Failed to get token from 'apiKey' function: ${err.message}`, \n // @ts-ignore\n { cause: err });\n }\n if (typeof token !== 'string' || !token) {\n throw new Errors.OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${token}`);\n }\n this.apiKey = token;\n return true;\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _OpenAI_instances, \"m\", _OpenAI_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) {\n await this._callApiKey();\n }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'x-request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else {\n return __classPrivateFieldGet(this, _OpenAI_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = OpenAI, _OpenAI_encoder = new WeakMap(), _OpenAI_instances = new WeakSet(), _OpenAI_baseURLOverridden = function _OpenAI_baseURLOverridden() {\n return this.baseURL !== 'https://api.openai.com/v1';\n};\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.InvalidWebhookSignatureError = Errors.InvalidWebhookSignatureError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.Completions = Completions;\nOpenAI.Chat = Chat;\nOpenAI.Embeddings = Embeddings;\nOpenAI.Files = Files;\nOpenAI.Images = Images;\nOpenAI.Audio = Audio;\nOpenAI.Moderations = Moderations;\nOpenAI.Models = Models;\nOpenAI.FineTuning = FineTuning;\nOpenAI.Graders = Graders;\nOpenAI.VectorStores = VectorStores;\nOpenAI.Webhooks = Webhooks;\nOpenAI.Beta = Beta;\nOpenAI.Batches = Batches;\nOpenAI.Uploads = UploadsAPIUploads;\nOpenAI.Responses = Responses;\nOpenAI.Realtime = Realtime;\nOpenAI.Conversations = Conversations;\nOpenAI.Evals = Evals;\nOpenAI.Containers = Containers;\nOpenAI.Videos = Videos;\n//# sourceMappingURL=client.mjs.map","import * as core from '@actions/core'\nimport OpenAI from 'openai'\nimport {GitHubMCPClient, executeToolCalls, ToolCall} from './mcp.js'\n\ninterface ChatMessage {\n role: 'system' | 'user' | 'assistant' | 'tool'\n content: string | null\n tool_calls?: ToolCall[]\n tool_call_id?: string\n}\n\nexport interface InferenceRequest {\n messages: Array<{role: 'system' | 'user' | 'assistant' | 'tool'; content: string}>\n modelName: string\n maxTokens: number\n endpoint: string\n token: string\n temperature?: number\n topP?: number\n responseFormat?: {type: 'json_schema'; json_schema: unknown} // Processed response format for the API\n}\n\nexport interface InferenceResponse {\n content: string | null\n toolCalls?: Array<{\n id: string\n type: string\n function: {\n name: string\n arguments: string\n }\n }>\n}\n\n/**\n * Simple one-shot inference without tools\n */\nexport async function simpleInference(request: InferenceRequest): Promise {\n core.info('Running simple inference without tools')\n\n const client = new OpenAI({\n apiKey: request.token,\n baseURL: request.endpoint,\n })\n\n const chatCompletionRequest: OpenAI.Chat.Completions.ChatCompletionCreateParams = {\n messages: request.messages as OpenAI.Chat.Completions.ChatCompletionMessageParam[],\n max_tokens: request.maxTokens,\n model: request.modelName,\n temperature: request.temperature,\n top_p: request.topP,\n }\n\n // Add response format if specified\n if (request.responseFormat) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n chatCompletionRequest.response_format = request.responseFormat as any\n }\n\n const response = await chatCompletion(client, chatCompletionRequest, 'simpleInference')\n const modelResponse = response.choices[0]?.message?.content\n core.info(`Model response: ${modelResponse || 'No response content'}`)\n return modelResponse || null\n}\n\n/**\n * GitHub MCP-enabled inference with tool execution loop\n */\nexport async function mcpInference(\n request: InferenceRequest,\n githubMcpClient: GitHubMCPClient,\n): Promise {\n core.info('Running GitHub MCP inference with tools')\n\n const client = new OpenAI({\n apiKey: request.token,\n baseURL: request.endpoint,\n })\n\n // Start with the pre-processed messages\n const messages: ChatMessage[] = [...request.messages]\n\n let iterationCount = 0\n const maxIterations = 5 // Prevent infinite loops\n // We want to use response_format (e.g. JSON) on the last iteration only, so the model can output\n // the final result in the expected format without interfering with tool calls\n let finalMessage = false\n\n while (iterationCount < maxIterations) {\n iterationCount++\n core.info(`MCP inference iteration ${iterationCount}`)\n\n const chatCompletionRequest: OpenAI.Chat.Completions.ChatCompletionCreateParams = {\n messages: messages as OpenAI.Chat.Completions.ChatCompletionMessageParam[],\n max_tokens: request.maxTokens,\n model: request.modelName,\n temperature: request.temperature,\n top_p: request.topP,\n }\n\n // Add response format if specified (only on final iteration to avoid conflicts with tool calls)\n if (finalMessage && request.responseFormat) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n chatCompletionRequest.response_format = request.responseFormat as any\n } else {\n chatCompletionRequest.tools = githubMcpClient.tools as OpenAI.Chat.Completions.ChatCompletionTool[]\n }\n\n try {\n const response = await chatCompletion(client, chatCompletionRequest, `mcpInference iteration ${iterationCount}`)\n\n const assistantMessage = response.choices[0]?.message\n const modelResponse = assistantMessage?.content\n const toolCalls = assistantMessage?.tool_calls\n\n core.info(`Model response: ${modelResponse || 'No response content'}`)\n\n messages.push({\n role: 'assistant',\n content: modelResponse || '',\n ...(toolCalls && {tool_calls: toolCalls as ToolCall[]}),\n })\n\n if (!toolCalls || toolCalls.length === 0) {\n core.info('No tool calls requested, ending GitHub MCP inference loop')\n\n if (request.responseFormat && !finalMessage) {\n core.info('Making one more MCP loop with the requested response format...')\n messages.push({\n role: 'user',\n content: `Please provide your response in the exact ${request.responseFormat.type} format specified.`,\n })\n finalMessage = true\n continue\n } else {\n return modelResponse || null\n }\n }\n\n core.info(`Model requested ${toolCalls.length} tool calls`)\n const toolResults = await executeToolCalls(githubMcpClient.client, toolCalls as ToolCall[])\n messages.push(...toolResults)\n core.info('Tool results added, continuing conversation...')\n } catch (error) {\n core.error(`OpenAI API error: ${error}`)\n throw error\n }\n }\n\n core.warning(`GitHub MCP inference loop exceeded maximum iterations (${maxIterations})`)\n\n // Return the last assistant message content\n const lastAssistantMessage = messages\n .slice()\n .reverse()\n .find(msg => msg.role === 'assistant')\n\n return lastAssistantMessage?.content || null\n}\n\n/**\n * Wrapper around OpenAI chat.completions.create with defensive handling for cases where\n * the SDK returns a raw string (e.g., unexpected content-type or streaming body) instead of\n * a parsed object. Ensures an object with a 'choices' array is returned or throws a descriptive error.\n */\nasync function chatCompletion(\n client: OpenAI,\n params: OpenAI.Chat.Completions.ChatCompletionCreateParams,\n context: string,\n): Promise {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let response: any = await client.chat.completions.create(params)\n core.debug(`${context}: raw response typeof=${typeof response}`)\n\n if (typeof response === 'string') {\n // Attempt to parse if we unexpectedly received a string\n try {\n response = JSON.parse(response)\n } catch (e) {\n const preview = response.slice(0, 400)\n throw new Error(\n `${context}: Chat completion response was a string and not valid JSON (${(e as Error).message}). Preview: ${preview}`,\n )\n }\n }\n\n if (!response || typeof response !== 'object' || !('choices' in response)) {\n const preview = JSON.stringify(response)?.slice(0, 800)\n throw new Error(`${context}: Unexpected response shape (no choices). Preview: ${preview}`)\n }\n\n return response as OpenAI.Chat.Completions.ChatCompletion\n } catch (err) {\n // Re-throw after logging for upstream handling\n core.error(`${context}: chatCompletion failed: ${err}`)\n throw err\n }\n}\n","import * as core from '@actions/core'\nimport * as fs from 'fs'\nimport {PromptConfig} from './prompt.js'\nimport {InferenceRequest} from './inference.js'\n\n/**\n * Helper function to load content from a file or use fallback input\n * @param filePathInput - Input name for the file path\n * @param contentInput - Input name for the direct content\n * @param defaultValue - Default value to use if neither file nor content is provided\n * @returns The loaded content\n */\nexport function loadContentFromFileOrInput(filePathInput: string, contentInput: string, defaultValue?: string): string {\n const filePath = core.getInput(filePathInput)\n const contentString = core.getInput(contentInput)\n\n if (filePath !== undefined && filePath !== '') {\n if (!fs.existsSync(filePath)) {\n throw new Error(`File for ${filePathInput} was not found: ${filePath}`)\n }\n return fs.readFileSync(filePath, 'utf-8')\n } else if (contentString !== undefined && contentString !== '') {\n return contentString\n } else if (defaultValue !== undefined) {\n return defaultValue\n } else {\n throw new Error(`Neither ${filePathInput} nor ${contentInput} was set`)\n }\n}\n\n/**\n * Build messages array from either prompt config or legacy format\n */\nexport function buildMessages(\n promptConfig?: PromptConfig,\n systemPrompt?: string,\n prompt?: string,\n): Array<{role: 'system' | 'user' | 'assistant' | 'tool'; content: string}> {\n if (promptConfig?.messages && promptConfig.messages.length > 0) {\n // Use new message format\n return promptConfig.messages.map(msg => ({\n role: msg.role as 'system' | 'user' | 'assistant' | 'tool',\n content: msg.content,\n }))\n } else {\n // Use legacy format\n return [\n {\n role: 'system',\n content: systemPrompt || 'You are a helpful assistant',\n },\n {role: 'user', content: prompt || ''},\n ]\n }\n}\n\n/**\n * Build response format object for API from prompt config\n */\nexport function buildResponseFormat(\n promptConfig?: PromptConfig,\n): {type: 'json_schema'; json_schema: unknown} | undefined {\n if (promptConfig?.responseFormat === 'json_schema' && promptConfig.jsonSchema) {\n try {\n const schema = JSON.parse(promptConfig.jsonSchema)\n return {\n type: 'json_schema',\n json_schema: schema,\n }\n } catch (error) {\n throw new Error(`Invalid JSON schema: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n }\n return undefined\n}\n\n/**\n * Build complete InferenceRequest from prompt config and inputs\n */\nexport function buildInferenceRequest(\n promptConfig: PromptConfig | undefined,\n systemPrompt: string | undefined,\n prompt: string | undefined,\n modelName: string,\n temperature: number | undefined,\n topP: number | undefined,\n maxTokens: number,\n endpoint: string,\n token: string,\n): InferenceRequest {\n const messages = buildMessages(promptConfig, systemPrompt, prompt)\n const responseFormat = buildResponseFormat(promptConfig)\n\n return {\n messages,\n modelName,\n temperature,\n topP,\n maxTokens,\n endpoint,\n token,\n responseFormat,\n }\n}\n","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"! [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for ! tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n","import * as core from '@actions/core'\nimport * as fs from 'fs'\nimport * as yaml from 'js-yaml'\n\nexport interface PromptMessage {\n role: 'system' | 'user' | 'assistant'\n content: string\n}\n\nexport interface ModelParameters {\n maxTokens?: number\n temperature?: number\n topP?: number\n}\n\nexport interface PromptConfig {\n messages: PromptMessage[]\n model?: string\n modelParameters?: ModelParameters\n responseFormat?: 'text' | 'json_schema'\n jsonSchema?: string\n}\n\nexport interface TemplateVariables {\n [key: string]: string\n}\n\n/**\n * Parse template variables from YAML input string\n */\nexport function parseTemplateVariables(input: string): TemplateVariables {\n if (!input.trim()) {\n return {}\n }\n\n try {\n const parsed = yaml.load(input) as TemplateVariables\n if (typeof parsed !== 'object' || parsed === null) {\n throw new Error('Template variables must be a YAML object')\n }\n return parsed\n } catch (error) {\n throw new Error(`Failed to parse template variables: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n}\n\n/**\n * Parse file-based template variables from YAML input string. The YAML should map\n * variable names to file paths. File contents are read and returned as variables.\n */\nexport function parseFileTemplateVariables(fileInput: string): TemplateVariables {\n if (!fileInput.trim()) {\n return {}\n }\n\n try {\n const parsed = yaml.load(fileInput) as Record\n if (typeof parsed !== 'object' || parsed === null) {\n throw new Error('File template variables must be a YAML object')\n }\n\n const result: TemplateVariables = {}\n for (const [key, value] of Object.entries(parsed)) {\n if (typeof value !== 'string') {\n throw new Error(`File template variable '${key}' must be a string file path`)\n }\n const filePath = value\n if (!fs.existsSync(filePath)) {\n throw new Error(`File for template variable '${key}' was not found: ${filePath}`)\n }\n try {\n result[key] = fs.readFileSync(filePath, 'utf-8')\n } catch (err) {\n throw new Error(\n `Failed to read file for template variable '${key}' at path '${filePath}': ${err instanceof Error ? err.message : 'Unknown error'}`,\n )\n }\n }\n\n return result\n } catch (error) {\n throw new Error(\n `Failed to parse file template variables: ${error instanceof Error ? error.message : 'Unknown error'}`,\n )\n }\n}\n\n/**\n * Replace template variables in text using {{variable}} syntax\n */\nexport function replaceTemplateVariables(text: string, variables: TemplateVariables): string {\n return text.replace(/\\{\\{([\\w.-]+)\\}\\}/g, (match, variableName) => {\n if (variableName in variables) {\n return variables[variableName]\n }\n core.warning(`Template variable '${variableName}' not found in input variables`)\n return match // Return the original placeholder if variable not found\n })\n}\n\n/**\n * Load and parse a prompt YAML file with template variable substitution\n */\nexport function loadPromptFile(filePath: string, templateVariables: TemplateVariables = {}): PromptConfig {\n if (!fs.existsSync(filePath)) {\n throw new Error(`Prompt file not found: ${filePath}`)\n }\n\n const fileContent = fs.readFileSync(filePath, 'utf-8')\n\n try {\n const config = yaml.load(fileContent) as PromptConfig\n\n if (!config.messages || !Array.isArray(config.messages)) {\n throw new Error('Prompt file must contain a \"messages\" array')\n }\n\n // Validate messages\n for (const message of config.messages) {\n if (!message.role || !message.content) {\n throw new Error('Each message must have \"role\" and \"content\" properties')\n }\n if (!['system', 'user', 'assistant'].includes(message.role)) {\n throw new Error(`Invalid message role: ${message.role}`)\n }\n }\n\n // Prepare messages by replacing template variables with actual content\n config.messages = config.messages.map(msg => {\n return {\n ...msg,\n content: replaceTemplateVariables(msg.content, templateVariables),\n }\n })\n\n return config\n } catch (error) {\n throw new Error(`Failed to parse prompt file: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n}\n\n/**\n * Check if a file is a prompt YAML file based on extension\n */\nexport function isPromptYamlFile(filePath: string): boolean {\n return filePath.endsWith('.prompt.yml') || filePath.endsWith('.prompt.yaml')\n}\n","import * as core from '@actions/core'\nimport * as fs from 'fs'\nimport * as tmp from 'tmp'\nimport {connectToGitHubMCP} from './mcp.js'\nimport {simpleInference, mcpInference} from './inference.js'\nimport {loadContentFromFileOrInput, buildInferenceRequest} from './helpers.js'\nimport {\n loadPromptFile,\n parseTemplateVariables,\n isPromptYamlFile,\n PromptConfig,\n parseFileTemplateVariables,\n} from './prompt.js'\n\n/**\n * The main function for the action.\n *\n * @returns Resolves when the action is complete.\n */\nexport async function run(): Promise {\n try {\n const promptFilePath = core.getInput('prompt-file')\n const inputVariables = core.getInput('input')\n const fileInputVariables = core.getInput('file_input')\n\n let promptConfig: PromptConfig | undefined = undefined\n let systemPrompt: string | undefined = undefined\n let prompt: string | undefined = undefined\n\n // Check if we're using a prompt YAML file\n if (promptFilePath && isPromptYamlFile(promptFilePath)) {\n core.info('Using prompt YAML file format')\n\n // Parse template variables from both string inputs and file-based inputs\n const stringVars = parseTemplateVariables(inputVariables)\n const fileVars = parseFileTemplateVariables(fileInputVariables)\n const templateVariables = {...stringVars, ...fileVars}\n\n // Load and process prompt file\n promptConfig = loadPromptFile(promptFilePath, templateVariables)\n } else {\n // Use legacy format\n core.info('Using legacy prompt format')\n\n prompt = loadContentFromFileOrInput('prompt-file', 'prompt')\n systemPrompt = loadContentFromFileOrInput('system-prompt-file', 'system-prompt', 'You are a helpful assistant')\n }\n\n // Get common parameters\n const modelName = promptConfig?.model || core.getInput('model')\n let maxTokens = promptConfig?.modelParameters?.maxTokens ?? core.getInput('max-tokens')\n\n if (typeof maxTokens === 'string') {\n maxTokens = parseInt(maxTokens, 10)\n }\n\n const token = process.env['GITHUB_TOKEN'] || core.getInput('token')\n if (token === undefined) {\n throw new Error('GITHUB_TOKEN is not set')\n }\n\n // Get GitHub MCP token (use dedicated token if provided, otherwise fall back to main token)\n const githubMcpToken = core.getInput('github-mcp-token') || token\n const githubMcpToolsets = core.getInput('github-mcp-toolsets')\n\n const endpoint = core.getInput('endpoint')\n\n // Build the inference request with pre-processed messages and response format\n const inferenceRequest = buildInferenceRequest(\n promptConfig,\n systemPrompt,\n prompt,\n modelName,\n promptConfig?.modelParameters?.temperature,\n promptConfig?.modelParameters?.topP,\n maxTokens,\n endpoint,\n token,\n )\n\n const enableMcp = core.getBooleanInput('enable-github-mcp') || false\n\n let modelResponse: string | null = null\n\n if (enableMcp) {\n const mcpClient = await connectToGitHubMCP(githubMcpToken, githubMcpToolsets)\n\n if (mcpClient) {\n modelResponse = await mcpInference(inferenceRequest, mcpClient)\n } else {\n core.warning('MCP connection failed, falling back to simple inference')\n modelResponse = await simpleInference(inferenceRequest)\n }\n } else {\n modelResponse = await simpleInference(inferenceRequest)\n }\n\n core.setOutput('response', modelResponse || '')\n\n // Create a temporary file for the response that persists for downstream steps.\n // We use keep: true to prevent automatic cleanup - the file will be cleaned up\n // by the runner when the job completes.\n const responseFile = tmp.fileSync({\n prefix: 'modelResponse-',\n postfix: '.txt',\n keep: true,\n })\n\n core.setOutput('response-file', responseFile.name)\n\n if (modelResponse && modelResponse !== '') {\n fs.writeFileSync(responseFile.name, modelResponse, 'utf-8')\n }\n } catch (error) {\n if (error instanceof Error) {\n core.setFailed(error.message)\n } else {\n core.setFailed(`An unexpected error occurred: ${JSON.stringify(error, null, 2)}`)\n }\n // Force exit to prevent hanging on open connections\n process.exit(1)\n }\n\n // Force exit to prevent hanging on open connections\n process.exit(0)\n}\n","/**\n * The entrypoint for the action. This file simply imports and runs the action's\n * main logic.\n */\nimport {run} from './main.js'\n\n/* istanbul ignore next */\nrun()\n"],"names":["utils","this","require$$1","require$$0","require$$2","require$$3","require$$6","tunnel","symbols","errors","constants","require$$4","require$$5","require$$7","require$$9","require$$10","util","mainModule","global","require$$8","require$$11","require$$12","request","require$$13","require$$14","require$$15","require$$16","apiRequestModule","require$$17","require$$18","parse","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","auth","exec_1","exec","isObject","isPlainObject","extend","merge","required","initializer","util.jsonStringifyReplacer","formatError","core.$ZodAsyncError","util.finalizeIssue","core.config","util.captureStackTrace","errors.$ZodError","safeParse","errors.$ZodRealError","safeParseAsync","duration","_emoji","date","time","datetime","string","number","boolean","_null","core.$constructor","util.floatSafeRemainder","util.NUMBER_FORMAT_RANGES","regexes.integer","util.nullish","util.getLengthableOrigin","regexes.lowercase","regexes.uppercase","util.escapeRegex","util.aborted","regexes.string","checks.$ZodCheckStringFormat","regexes.guid","regexes.uuid","regexes.email","regexes.hostname","regexes.emoji","regexes.nanoid","regexes.cuid","regexes.cuid2","regexes.ulid","regexes.xid","regexes.ksuid","regexes.datetime","regexes.date","regexes.time","regexes.duration","regexes.ipv4","regexes.ipv6","regexes.cidrv4","regexes.cidrv6","regexes.base64","regexes.base64url","regexes.e164","regexes.number","checks.$ZodCheckNumberFormat","regexes.boolean","regexes.null","util.prefixIssues","util.cached","util.optionalKeys","util.defineLazy","util.esc","util.isObject","core.globalConfig","allowsEval","util.allowsEval","util.cleanRegex","util.isPlainObject","util.getEnumValues","util.propertyKeyTypes","checks.$ZodCheck","util.issue","util.normalizeParams","checks.$ZodCheckLessThan","checks.$ZodCheckGreaterThan","checks.$ZodCheckMultipleOf","checks.$ZodCheckMaxLength","checks.$ZodCheckMinLength","checks.$ZodCheckLengthEquals","checks.$ZodCheckRegex","checks.$ZodCheckLowerCase","checks.$ZodCheckUpperCase","checks.$ZodCheckIncludes","checks.$ZodCheckStartsWith","checks.$ZodCheckEndsWith","checks.$ZodCheckOverwrite","z4mini.safeParse","core.$ZodISODateTime","schemas.ZodStringFormat","core._isoDateTime","core.$ZodISODate","core._isoDate","core.$ZodISOTime","core._isoTime","core.$ZodISODuration","core._isoDuration","core.formatError","core.flattenError","core._parse","core._parseAsync","core._safeParse","core._safeParseAsync","core.$ZodType","core.clone","parse.parse","parse.safeParse","parse.parseAsync","parse.safeParseAsync","checks.overwrite","_default","core.globalRegistry","core.$ZodString","checks.regex","checks.includes","checks.startsWith","checks.endsWith","checks.minLength","checks.maxLength","checks.length","checks.lowercase","checks.uppercase","checks.trim","checks.normalize","checks.toLowerCase","checks.toUpperCase","core._email","core._url","core._jwt","core._emoji","core._guid","core._uuid","core._uuidv4","core._uuidv6","core._uuidv7","core._nanoid","core._cuid","core._cuid2","core._ulid","core._base64","core._base64url","core._xid","core._ksuid","core._ipv4","core._ipv6","core._cidrv4","core._cidrv6","core._e164","iso.datetime","iso.date","iso.time","iso.duration","core._string","core.$ZodStringFormat","core.$ZodEmail","core.$ZodGUID","core.$ZodUUID","core.$ZodURL","core.$ZodEmoji","core.$ZodNanoID","core.$ZodCUID","core.$ZodCUID2","core.$ZodULID","core.$ZodXID","core.$ZodKSUID","core.$ZodIPv4","core.$ZodIPv6","core.$ZodCIDRv4","core.$ZodCIDRv6","core.$ZodBase64","core.$ZodBase64URL","core.$ZodE164","core.$ZodJWT","core.$ZodNumber","checks.gt","checks.gte","checks.lt","checks.lte","int","checks.multipleOf","core._number","core.$ZodNumberFormat","core._int","core.$ZodBoolean","core._boolean","core.$ZodNull","core._null","core.$ZodAny","core._any","core.$ZodUnknown","core._unknown","core.$ZodNever","core._never","core.$ZodArray","core._array","core.$ZodObject","_enum","util.extend","util.merge","util.pick","util.omit","util.partial","util.required","util.assignProp","core.$ZodUnion","core.$ZodDiscriminatedUnion","core.$ZodIntersection","core.$ZodRecord","core.$ZodEnum","core.$ZodLiteral","core.$ZodTransform","issue","core.$ZodOptional","core.$ZodNullable","core.$ZodDefault","core.$ZodPrefault","core.$ZodNonOptional","core.$ZodCatch","core.$ZodPipe","core.$ZodReadonly","core.$ZodCustom","core.$ZodCheck","core._custom","core._refine","core._coercedNumber","schemas.ZodNumber","z.custom","z.union","z.string","z.number","z.looseObject","z.null","z.object","z\n .object","z.literal","z.unknown","z.array","z.enum","z.intersection","z.boolean","z.record","z.preprocess","z\n .looseObject","z\n .looseObject","z\n .object","z.optional","z.iso.datetime","z.discriminatedUnion","names_1","boolSchema","rules","applicability","dataType","defaults","code","keyword","subschema","jsonSchemaTraverseModule","resolve","validate","validation_error","ref_error","compile","fastUri","fastUriModule","uri_1","id","ref","core_1","limitNumber","multipleOf","ucs2length_1","limitLength","pattern","limitProperties","limitItems","equal_1","uniqueItems","_const","validation_1","additionalItems","items","prefixItems","items2020","contains","propertyNames","additionalProperties","properties","patternProperties","not","anyOf","oneOf","allOf","_if","thenElse","applicator","format","format_2","metadata","draft7","types","discriminator","names","uri","ucs2length","equal","validation","crypto","z\n .url","z.ZodIssueCode","z.NEVER","z.coerce.number","z.any","noop","core.info","core.warning","isAutoParsableTool","hasAutoParseableInput","parseToolCall","str","MessagesAPI.Messages","Completions","Messages","CompletionsAPI.Completions","TranscriptionsAPI.Transcriptions","TranslationsAPI.Translations","SpeechAPI.Speech","SessionsAPI.Sessions","TranscriptionSessionsAPI.TranscriptionSessions","Realtime","Sessions","ThreadsAPI.Threads","Threads","_a","StepsAPI.Steps","Runs","RunsAPI.Runs","RealtimeAPI.Realtime","ChatKitAPI.ChatKit","AssistantsAPI.Assistants","ContentAPI.Content","Files","FilesAPI.Files","ItemsAPI.Items","OutputItemsAPI.OutputItems","GradersAPI.Graders","Graders","PermissionsAPI.Permissions","Checkpoints","CheckpointsAPI.Checkpoints","MethodsAPI.Methods","JobsAPI.Jobs","AlphaAPI.Alpha","GraderModelsAPI.GraderModels","ClientSecretsAPI.ClientSecrets","CallsAPI.Calls","InputItemsAPI.InputItems","InputTokensAPI.InputTokens","PartsAPI.Parts","FileBatchesAPI.FileBatches","API.Completions","API.Chat","API.Embeddings","API.Files","API.Images","API.Audio","API.Moderations","API.Models","API.FineTuning","API.Graders","API.VectorStores","API.Webhooks","API.Beta","API.Batches","API.Uploads","API.Responses","API.Realtime","API.Conversations","API.Evals","API.Containers","API.Videos","Errors.OpenAIError","Shims.getDefaultFetch","Opts.FallbackEncoder","qs.stringify","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Errors.InvalidWebhookSignatureError","Uploads.toFile","UploadsAPIUploads","core.error","core.debug","core.getInput","yaml.load","core.getBooleanInput","core.setOutput","tmp.fileSync","core.setFailed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAACA,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,OAAA,CAAA,mBAA2B,GAAGA,OAAA,CAAA,cAAsB,GAAG,MAAM;AAC7D;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,KAAK,EAAE;KAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC/C,SAAQ,OAAO,EAAE;AACjB;UACS,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;AACnE,SAAQ,OAAO,KAAK;AACpB;AACA,KAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAChC;AACA,CAAAA,OAAA,CAAA,cAAsB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,mBAAmB,CAAC,oBAAoB,EAAE;KAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE;AACnD,SAAQ,OAAO,EAAE;AACjB;AACA,KAAI,OAAO;AACX,SAAQ,KAAK,EAAE,oBAAoB,CAAC,KAAK;AACzC,SAAQ,IAAI,EAAE,oBAAoB,CAAC,IAAI;AACvC,SAAQ,IAAI,EAAE,oBAAoB,CAAC,SAAS;AAC5C,SAAQ,OAAO,EAAE,oBAAoB,CAAC,OAAO;AAC7C,SAAQ,GAAG,EAAE,oBAAoB,CAAC,WAAW;SACrC,SAAS,EAAE,oBAAoB,CAAC;MACnC;AACL;AACA,CAAAA,OAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD;;;;;;;;;CCtCA,IAAI,eAAe,GAAG,CAACC,OAAI,IAAIA,OAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;KAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,OAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE;KACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;EACrC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,OAAI,IAAIA,OAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,OAAI,IAAIA,OAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,OAAA,CAAA,KAAa,GAAG,OAAA,CAAA,YAAoB,GAAG,MAAM;AAC7C,CAAA,MAAM,EAAE,GAAG,YAAY,CAAC,UAAa,CAAC;CACtC,MAAM,OAAO,GAAGC,cAAkB,EAAA;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;KAChD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;AACzD,KAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;AACjD;AACA,CAAA,OAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;AACnC,KAAI,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC;AACnC;AACA,CAAA,OAAA,CAAA,KAAa,GAAG,KAAK;CACrB,MAAM,UAAU,GAAG,IAAI;AACvB,CAAA,MAAM,OAAO,CAAC;AACd,KAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;SACtC,IAAI,CAAC,OAAO,EAAE;aACV,OAAO,GAAG,iBAAiB;AACvC;AACA,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B;AACA,KAAI,QAAQ,GAAG;AACf,SAAQ,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO;AAC9C,SAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;aAC5D,MAAM,IAAI,GAAG;aACb,IAAI,KAAK,GAAG,IAAI;AAC5B,aAAY,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;iBAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;qBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;qBAChC,IAAI,GAAG,EAAE;yBACL,IAAI,KAAK,EAAE;6BACP,KAAK,GAAG,KAAK;AACzC;8BAC6B;6BACD,MAAM,IAAI,GAAG;AACzC;AACA,yBAAwB,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE;AACA;AACA;AACA;AACA,SAAQ,MAAM,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5D,SAAQ,OAAO,MAAM;AACrB;AACA;CACA,SAAS,UAAU,CAAC,CAAC,EAAE;KACnB,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;AACxC,UAAS,OAAO,CAAC,IAAI,EAAE,KAAK;AAC5B,UAAS,OAAO,CAAC,KAAK,EAAE,KAAK;AAC7B,UAAS,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9B;CACA,SAAS,cAAc,CAAC,CAAC,EAAE;KACvB,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;AACxC,UAAS,OAAO,CAAC,IAAI,EAAE,KAAK;AAC5B,UAAS,OAAO,CAAC,KAAK,EAAE,KAAK;AAC7B,UAAS,OAAO,CAAC,KAAK,EAAE,KAAK;AAC7B,UAAS,OAAO,CAAC,IAAI,EAAE,KAAK;AAC5B,UAAS,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7B;AACA;;;;;;;;;;;AC9FA;CACA,IAAI,eAAe,GAAG,CAACD,WAAI,IAAIA,WAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;KAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,OAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE;KACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;EACrC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,WAAI,IAAIA,WAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,WAAI,IAAIA,WAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,WAAA,CAAA,sBAA8B,GAAG,WAAA,CAAA,gBAAwB,GAAG,MAAM;AAClE;AACA;AACA,CAAA,MAAM,MAAM,GAAG,YAAY,CAACE,YAAiB,CAAC;AAC9C,CAAA,MAAM,EAAE,GAAG,YAAY,CAACD,WAAa,CAAC;AACtC,CAAA,MAAM,EAAE,GAAG,YAAY,CAACE,UAAa,CAAC;CACtC,MAAM,OAAO,GAAGC,cAAkB,EAAA;AAClC,CAAA,SAAS,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE;AAC5C,KAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;KACjD,IAAI,CAAC,QAAQ,EAAE;SACX,MAAM,IAAI,KAAK,CAAC,CAAC,qDAAqD,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1F;KACI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;SAC1B,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5D;KACI,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACpF,SAAQ,QAAQ,EAAE;AAClB,MAAK,CAAC;AACN;AACA,CAAA,WAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,SAAS,sBAAsB,CAAC,GAAG,EAAE,KAAK,EAAE;KACxC,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;KACvD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;AAC7D;AACA;AACA;AACA,KAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;SACzB,MAAM,IAAI,KAAK,CAAC,CAAC,yDAAyD,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACjG;AACA,KAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;SACpC,MAAM,IAAI,KAAK,CAAC,CAAC,0DAA0D,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAClG;KACI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;AAChF;AACA,CAAA,WAAA,CAAA,sBAA8B,GAAG,sBAAsB;AACvD;;;;;;;;;;;;;;;AC5DA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,KAAA,CAAA,WAAmB,GAAG,KAAA,CAAA,WAAmB,GAAG,MAAM;CAClD,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,KAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ;AACjD,KAAI,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AAC7B,SAAQ,OAAO,SAAS;AACxB;AACA,KAAI,MAAM,QAAQ,GAAG,CAAC,MAAM;SACpB,IAAI,QAAQ,EAAE;AACtB,aAAY,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC3E;cACa;AACb,aAAY,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACzE;AACA,MAAK,GAAG;KACJ,IAAI,QAAQ,EAAE;AAClB,SAAQ,IAAI;AACZ,aAAY,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC;AAC3C;SACQ,OAAO,EAAE,EAAE;AACnB,aAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;iBACnE,OAAO,IAAI,UAAU,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3D;AACA;UACS;AACT,SAAQ,OAAO,SAAS;AACxB;AACA;AACA,CAAA,KAAA,CAAA,WAAmB,GAAG,WAAW;CACjC,SAAS,WAAW,CAAC,MAAM,EAAE;AAC7B,KAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC1B,SAAQ,OAAO,KAAK;AACpB;AACA,KAAI,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;AACnC,KAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;AACpC,SAAQ,OAAO,IAAI;AACnB;AACA,KAAI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;KACxE,IAAI,CAAC,OAAO,EAAE;AAClB,SAAQ,OAAO,KAAK;AACpB;AACA;AACA,KAAI,IAAI,OAAO;AACf,KAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AACrB,SAAQ,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC;AACA,UAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE;SAClC,OAAO,GAAG,EAAE;AACpB;AACA,UAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;SACnC,OAAO,GAAG,GAAG;AACrB;AACA;KACI,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AACzD,KAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,SAAQ,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5D;AACA;KACI,KAAK,MAAM,gBAAgB,IAAI;UAC1B,KAAK,CAAC,GAAG;UACT,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACxC,UAAS,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;SACjB,IAAI,gBAAgB,KAAK,GAAG;aACxB,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,gBAAgB;iBAC1C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAClD,kBAAiB,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC;AACjD,qBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,aAAY,OAAO,IAAI;AACvB;AACA;AACA,KAAI,OAAO,KAAK;AAChB;AACA,CAAA,KAAA,CAAA,WAAmB,GAAG,WAAW;CACjC,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,KAAI,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;KACpC,QAAQ,SAAS,KAAK,WAAW;AACrC,SAAQ,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;AACpC,SAAQ,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;AACrC,SAAQ,SAAS,CAAC,UAAU,CAAC,mBAAmB,CAAC;AACjD;CACA,MAAM,UAAU,SAAS,GAAG,CAAC;AAC7B,KAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;AAC3B,SAAQ,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;SAChB,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC1D,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;AAClE;KACI,IAAI,QAAQ,GAAG;SACX,OAAO,IAAI,CAAC,gBAAgB;AACpC;KACI,IAAI,QAAQ,GAAG;SACX,OAAO,IAAI,CAAC,gBAAgB;AACpC;AACA;AACA;;;;;;;;;;;CC3FA,IAAI,GAAG,GAAG,UAAc;CACxB,IAAI,IAAI,GAAG,UAAe;CAC1B,IAAI,KAAK,GAAGA,YAAgB;CAC5B,IAAI,MAAM,GAAG,UAAiB;CAE9B,IAAI,IAAI,GAAGC,YAAe;;;AAG1B,CAAAC,QAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAAA,QAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAAA,QAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAAA,QAAA,CAAA,cAAsB,GAAG,cAAc;;;CAGvC,SAAS,YAAY,CAAC,OAAO,EAAE;AAC/B,GAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC;AACzC,GAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,GAAE,OAAO,KAAK;AACd;;CAEA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,GAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC;AACzC,GAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAC9B,GAAE,KAAK,CAAC,YAAY,GAAG,kBAAkB;AACzC,GAAE,KAAK,CAAC,WAAW,GAAG,GAAG;AACzB,GAAE,OAAO,KAAK;AACd;;CAEA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,GAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC;AACzC,GAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC/B,GAAE,OAAO,KAAK;AACd;;CAEA,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,GAAE,IAAI,KAAK,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC;AACzC,GAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC/B,GAAE,KAAK,CAAC,YAAY,GAAG,kBAAkB;AACzC,GAAE,KAAK,CAAC,WAAW,GAAG,GAAG;AACzB,GAAE,OAAO,KAAK;AACd;;;CAGA,SAAS,cAAc,CAAC,OAAO,EAAE;GAC/B,IAAI,IAAI,GAAG,IAAI;AACjB,GAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE;GAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;AAC9C,GAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB;AAC3E,GAAE,IAAI,CAAC,QAAQ,GAAG,EAAE;AACpB,GAAE,IAAI,CAAC,OAAO,GAAG,EAAE;;AAEnB,GAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;KAChE,IAAI,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC;KACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;OACxD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpC,OAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;AAC1E;AACA;SACQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,SAAQ,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;SAChC;AACR;AACA;KACI,MAAM,CAAC,OAAO,EAAE;AACpB,KAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAC7B,IAAG,CAAC;AACJ;CACA,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC;;AAElD,CAAA,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;GACvF,IAAI,IAAI,GAAG,IAAI;GACf,IAAI,OAAO,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;;GAE7F,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC9C;AACA,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;KAC3B;AACJ;;AAEA;GACE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE;AAC9C,KAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7B,KAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;AACvC,KAAI,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;AAC7C,KAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;;KAEpB,SAAS,MAAM,GAAG;OAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACxC;;AAEA,KAAI,SAAS,eAAe,CAAC,GAAG,EAAE;AAClC,OAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AAC/B,OAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;AAC3C,OAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC;AACrD,OAAM,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC;AAC3D;AACA,IAAG,CAAC;EACH;;CAED,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE;GACzE,IAAI,IAAI,GAAG,IAAI;GACf,IAAI,WAAW,GAAG,EAAE;AACtB,GAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;;GAE9B,IAAI,cAAc,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE;KACvD,MAAM,EAAE,SAAS;KACjB,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI;KACvC,KAAK,EAAE,KAAK;AAChB,KAAI,OAAO,EAAE;OACP,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC;AACzC;AACA,IAAG,CAAC;AACJ,GAAE,IAAI,OAAO,CAAC,YAAY,EAAE;AAC5B,KAAI,cAAc,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;AACtD;AACA,GAAE,IAAI,cAAc,CAAC,SAAS,EAAE;KAC5B,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,EAAE;AACzD,KAAI,cAAc,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ;SACpD,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC/D;;GAEE,KAAK,CAAC,wBAAwB,CAAC;GAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAC/C,GAAE,UAAU,CAAC,2BAA2B,GAAG,KAAK,CAAC;GAC/C,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;GACxC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;GACtC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACxC,GAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;GACjC,UAAU,CAAC,GAAG,EAAE;;AAElB,GAAE,SAAS,UAAU,CAAC,GAAG,EAAE;AAC3B;AACA,KAAI,GAAG,CAAC,OAAO,GAAG,IAAI;AACtB;;GAEE,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;AACxC;AACA,KAAI,OAAO,CAAC,QAAQ,CAAC,WAAW;AAChC,OAAM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;AAClC,MAAK,CAAC;AACN;;GAEE,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;KACpC,UAAU,CAAC,kBAAkB,EAAE;KAC/B,MAAM,CAAC,kBAAkB,EAAE;;AAE/B,KAAI,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;OAC1B,KAAK,CAAC,0DAA0D;SAC9D,GAAG,CAAC,UAAU,CAAC;OACjB,MAAM,CAAC,OAAO,EAAE;AACtB,OAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,6CAA6C;AACzE,SAAQ,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC;AACvC,OAAM,KAAK,CAAC,IAAI,GAAG,YAAY;OACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1C,OAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;OAC9B;AACN;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;OACnB,KAAK,CAAC,sCAAsC,CAAC;OAC7C,MAAM,CAAC,OAAO,EAAE;AACtB,OAAM,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACnE,OAAM,KAAK,CAAC,IAAI,GAAG,YAAY;OACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1C,OAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;OAC9B;AACN;KACI,KAAK,CAAC,sCAAsC,CAAC;AACjD,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM;AAC5D,KAAI,OAAO,EAAE,CAAC,MAAM,CAAC;AACrB;;AAEA,GAAE,SAAS,OAAO,CAAC,KAAK,EAAE;KACtB,UAAU,CAAC,kBAAkB,EAAE;;KAE/B,KAAK,CAAC,uDAAuD;AACjE,WAAU,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;AACrC,KAAI,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,6CAA6C;AACvE,2BAA0B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;AACnD,KAAI,KAAK,CAAC,IAAI,GAAG,YAAY;KACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AACxC,KAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAClC;EACC;;CAED,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;GACpE,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;AACvC,GAAE,IAAI,GAAG,KAAK,EAAE,EAAE;KACd;AACJ;GACE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;;GAE3B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;GACnC,IAAI,OAAO,EAAE;AACf;AACA;KACI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE;AAChD,OAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,MAAK,CAAC;AACN;EACC;;AAED,CAAA,SAAS,kBAAkB,CAAC,OAAO,EAAE,EAAE,EAAE;GACvC,IAAI,IAAI,GAAG,IAAI;AACjB,GAAE,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE;KACzE,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;KAClD,IAAI,UAAU,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE;OAC9C,MAAM,EAAE,MAAM;AACpB,OAAM,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;AACxE,MAAK,CAAC;;AAEN;KACI,IAAI,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC;AACjD,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY;KACzD,EAAE,CAAC,YAAY,CAAC;AACpB,IAAG,CAAC;AACJ;;;AAGA,CAAA,SAAS,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;AAC7C,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,OAAO;OACL,IAAI,EAAE,IAAI;OACV,IAAI,EAAE,IAAI;AAChB,OAAM,YAAY,EAAE;MACf;AACL;GACE,OAAO,IAAI,CAAC;AACd;;CAEA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACxD,KAAI,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;AAChC,KAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;OACjC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7D,SAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,SAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;WAC9B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAClC;AACA;AACA;AACA;AACA,GAAE,OAAO,MAAM;AACf;;;AAGA,CAAA,IAAI,KAAK;AACT,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;GACvE,KAAK,GAAG,WAAW;AACrB,KAAI,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;KAChD,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;OAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;AACpC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7B;KACI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACtC;AACA,EAAC,MAAM;GACL,KAAK,GAAG,WAAW,EAAE;AACvB;AACA,CAAaA,QAAA,CAAA,KAAA,GAAG,KAAK,CAAC;;;;;;;;;;ACvQtB,CAAA,MAAc,GAAGJ,eAAuB,EAAA;;;;;;;;;;;;ACAxC,CAAAK,SAAc,GAAG;AACjB,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;AACrB,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC;AACnC,GAAE,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;AACtC,GAAE,wBAAwB,EAAE,MAAM,CAAC,4BAA4B,CAAC;AAChE,GAAE,oBAAoB,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACxD,GAAE,0BAA0B,EAAE,MAAM,CAAC,8BAA8B,CAAC;AACpE,GAAE,sBAAsB,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACtD,GAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAClC,GAAE,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC5C,GAAE,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;AACtC,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC;AACxC,GAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACvB,GAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC1B,GAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;AAC3B,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACvB,GAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACvB,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACvB,GAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;AACjC,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAClC,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC;AACnD,GAAE,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC;AAC7C,GAAE,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;AACtC,GAAE,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC;AACtC,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,YAAY,EAAE,MAAM,CAAC,mBAAmB,CAAC;AAC3C,GAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC;AACnC,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;AACjC,GAAE,oBAAoB,EAAE,MAAM,CAAC,uBAAuB,CAAC;AACvD,GAAE,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC7C,GAAE,YAAY,EAAE,MAAM,CAAC,sBAAsB,CAAC;AAC9C,GAAE,MAAM,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACvC,GAAE,QAAQ,EAAE,MAAM,CAAC,wBAAwB,CAAC;AAC5C,GAAE,aAAa,EAAE,MAAM,CAAC,uBAAuB,CAAC;AAChD,GAAE,gBAAgB,EAAE,MAAM,CAAC,mBAAmB,CAAC;AAC/C,GAAE,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC;AACvC,GAAE,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;AAClD,GAAE,kBAAkB,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACnD,GAAE,kBAAkB,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACnD,GAAE,iBAAiB,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACjD,GAAE,gBAAgB,EAAE,MAAM,CAAC,yBAAyB,CAAC;AACrD,GAAE,yBAAyB,EAAE,MAAM,CAAC,2BAA2B,CAAC;AAChE,GAAE,UAAU,EAAE,MAAM,CAAC,eAAe;AACpC;;;;;;;;;;;CC5DA,MAAM,WAAW,SAAS,KAAK,CAAC;AAChC,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;KACb,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,mBAAmB,SAAS,WAAW,CAAC;AAC9C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB;KACjD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,mBAAmB,SAAS,WAAW,CAAC;AAC9C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB;KACjD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,oBAAoB,SAAS,WAAW,CAAC;AAC/C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB;KAClD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,gBAAgB,SAAS,WAAW,CAAC;AAC3C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,gBAAgB;KAC9C,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,uBAAuB,SAAS,WAAW,CAAC;GAChD,WAAW,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;KAC/C,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,uBAAuB;KACrD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,MAAM,GAAG;KACd,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,OAAO,GAAG;AACnB;AACA;;CAEA,MAAM,oBAAoB,SAAS,WAAW,CAAC;AAC/C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB;KAClD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,uBAAuB,SAAS,WAAW,CAAC;AAClD,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,uBAAuB;KACrD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,mBAAmB,SAAS,WAAW,CAAC;AAC9C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB;KACjD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,kBAAkB,SAAS,WAAW,CAAC;AAC7C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;KAChD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,iCAAiC,SAAS,WAAW,CAAC;AAC5D,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,iCAAiC;KAC/D,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,kCAAkC,SAAS,WAAW,CAAC;AAC7D,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,kCAAkC;KAChE,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,oBAAoB,SAAS,WAAW,CAAC;AAC/C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,oBAAoB;KAClD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,iBAAiB,SAAS,WAAW,CAAC;AAC5C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB;KAC/C,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,WAAW,SAAS,WAAW,CAAC;AACtC,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE;KAC5B,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW;KACzC,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,MAAM,GAAG;AAClB;AACA;;CAEA,MAAM,iBAAiB,SAAS,WAAW,CAAC;AAC5C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB;KAC/C,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,gCAAgC,SAAS,WAAW,CAAC;AAC3D,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB;KAC/C,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,eAAe,SAAS,KAAK,CAAC;GAClC,WAAW,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;KAChC,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe;KAC7C,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG;KACnC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG;AACzC;AACA;;CAEA,MAAM,4BAA4B,SAAS,WAAW,CAAC;AACvD,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,4BAA4B;KAC1D,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;CAEA,MAAM,iBAAiB,SAAS,WAAW,CAAC;AAC5C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;KAC7C,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB;KAC/C,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,OAAO,GAAG;AACnB;AACA;;AAEA,CAAAC,QAAc,GAAG;AACjB,GAAE,eAAe;AACjB,GAAE,WAAW;AACb,GAAE,mBAAmB;AACrB,GAAE,oBAAoB;AACtB,GAAE,gBAAgB;AAClB,GAAE,iCAAiC;AACnC,GAAE,mBAAmB;AACrB,GAAE,uBAAuB;AACzB,GAAE,oBAAoB;AACtB,GAAE,uBAAuB;AACzB,GAAE,mBAAmB;AACrB,GAAE,oBAAoB;AACtB,GAAE,iBAAiB;AACnB,GAAE,kBAAkB;AACpB,GAAE,WAAW;AACb,GAAE,iBAAiB;AACnB,GAAE,kCAAkC;AACpC,GAAE,gCAAgC;AAClC,GAAE,4BAA4B;GAC5B;AACF;;;;;;;;;;;ACnOA;AACA,CAAA,MAAM,0BAA0B,GAAG;;AAEnC;AACA,CAAA,MAAM,oBAAoB,GAAG;AAC7B,GAAE,QAAQ;AACV,GAAE,iBAAiB;AACnB,GAAE,iBAAiB;AACnB,GAAE,eAAe;AACjB,GAAE,kCAAkC;AACpC,GAAE,8BAA8B;AAChC,GAAE,8BAA8B;AAChC,GAAE,6BAA6B;AAC/B,GAAE,+BAA+B;AACjC,GAAE,wBAAwB;AAC1B,GAAE,gCAAgC;AAClC,GAAE,+BAA+B;AACjC,GAAE,KAAK;AACP,GAAE,OAAO;AACT,GAAE,SAAS;AACX,GAAE,UAAU;AACZ,GAAE,eAAe;AACjB,GAAE,eAAe;AACjB,GAAE,iBAAiB;AACnB,GAAE,YAAY;AACd,GAAE,qBAAqB;AACvB,GAAE,kBAAkB;AACpB,GAAE,kBAAkB;AACpB,GAAE,gBAAgB;AAClB,GAAE,kBAAkB;AACpB,GAAE,eAAe;AACjB,GAAE,yBAAyB;AAC3B,GAAE,qCAAqC;AACvC,GAAE,cAAc;AAChB,GAAE,QAAQ;AACV,GAAE,8BAA8B;AAChC,GAAE,4BAA4B;AAC9B,GAAE,8BAA8B;AAChC,GAAE,MAAM;AACR,GAAE,eAAe;AACjB,GAAE,UAAU;AACZ,GAAE,KAAK;AACP,GAAE,MAAM;AACR,GAAE,QAAQ;AACV,GAAE,WAAW;AACb,GAAE,SAAS;AACX,GAAE,WAAW;AACb,GAAE,MAAM;AACR,GAAE,MAAM;AACR,GAAE,UAAU;AACZ,GAAE,mBAAmB;AACrB,GAAE,eAAe;AACjB,GAAE,UAAU;AACZ,GAAE,qBAAqB;AACvB,GAAE,YAAY;AACd,GAAE,eAAe;AACjB,GAAE,MAAM;AACR,GAAE,UAAU;AACZ,GAAE,cAAc;AAChB,GAAE,QAAQ;AACV,GAAE,oBAAoB;AACtB,GAAE,QAAQ;AACV,GAAE,oBAAoB;AACtB,GAAE,qBAAqB;AACvB,GAAE,KAAK;AACP,GAAE,OAAO;AACT,GAAE,SAAS;AACX,GAAE,iBAAiB;AACnB,GAAE,SAAS;AACX,GAAE,aAAa;AACf,GAAE,sBAAsB;AACxB,GAAE,0BAA0B;AAC5B,GAAE,mBAAmB;AACrB,GAAE,wBAAwB;AAC1B,GAAE,uBAAuB;AACzB,GAAE,QAAQ;AACV,GAAE,eAAe;AACjB,GAAE,wBAAwB;AAC1B,GAAE,mCAAmC;AACrC,GAAE,YAAY;AACd,GAAE,WAAW;AACb,GAAE,2BAA2B;AAC7B,GAAE,uBAAuB;AACzB,GAAE,IAAI;AACN,GAAE,qBAAqB;AACvB,GAAE,SAAS;AACX,GAAE,mBAAmB;AACrB,GAAE,SAAS;AACX,GAAE,2BAA2B;AAC7B,GAAE,YAAY;AACd,GAAE,MAAM;AACR,GAAE,KAAK;AACP,GAAE,kBAAkB;AACpB,GAAE,wBAAwB;AAC1B,GAAE,wBAAwB;AAC1B,GAAE,iBAAiB;AACnB,GAAE,mCAAmC;AACrC,GAAE,cAAc;AAChB,GAAE,kBAAkB;GAClB;AACF;;AAEA,CAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACtD,GAAE,MAAM,GAAG,GAAG,oBAAoB,CAAC,CAAC;AACpC,GAAE,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW;GACrC,0BAA0B,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,aAAa,CAAC;KACzE;AACJ;;AAEA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,0BAA0B,EAAE,IAAI;;AAEtD,CAAAC,WAAc,GAAG;AACjB,GAAE,oBAAoB;GACpB;AACF;;;;;;;;;;;ACnHA,CAAA,MAAM,MAAM,GAAGP;AACf,CAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAGD,gBAAA;CAClC,MAAM,EAAE,eAAe,EAAE,GAAG;AAC5B,CAAA,MAAM,MAAM,GAAGG;AACf,CAAA,MAAM,GAAG,GAAGM;CACZ,MAAM,EAAE,oBAAoB,EAAE,GAAGC,eAAA;CACjC,MAAM,EAAE,IAAI,EAAE,GAAGN;AACjB,CAAA,MAAM,QAAQ,GAAGO;CACjB,MAAM,EAAE,SAAS,EAAE,GAAG;CACtB,MAAM,EAAE,0BAA0B,EAAE,GAAGC,kBAAA;;CAEvC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;;AAElF,CAAA,SAAS,GAAG,IAAI;;CAEhB,SAAS,QAAQ,EAAE,GAAG,EAAE;AACxB,GAAE,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK;AAC/F;;AAEA;CACA,SAAS,UAAU,EAAE,MAAM,EAAE;AAC7B,GAAE,OAAO,CAAC,IAAI,IAAI,MAAM,YAAY,IAAI;AACxC,KAAI,MAAM;KACN,OAAO,MAAM,KAAK,QAAQ;AAC9B,MAAK,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;AACxC,OAAM,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC;KAC3C,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AACnD;AACA;;AAEA,CAAA,SAAS,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE;AACrC,GAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9C,KAAI,MAAM,IAAI,KAAK,CAAC,qEAAqE;AACzF;;AAEA,GAAE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW;;GAEzC,IAAI,WAAW,EAAE;KACf,GAAG,IAAI,GAAG,GAAG;AACjB;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,QAAQ,EAAE,GAAG,EAAE;AACxB,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG;;AAErB,KAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE;AACtD,OAAM,MAAM,IAAI,oBAAoB,CAAC,oEAAoE;AACzG;;AAEA,KAAI,OAAO;AACX;;GAEE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACvC,KAAI,MAAM,IAAI,oBAAoB,CAAC,0DAA0D;AAC7F;;AAEA,GAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpD,KAAI,MAAM,IAAI,oBAAoB,CAAC,oEAAoE;AACvG;;AAEA,GAAE,IAAI,EAAE,GAAG,YAAY,GAAG,CAAC,EAAE;KACzB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AACrF,OAAM,MAAM,IAAI,oBAAoB,CAAC,qFAAqF;AAC1H;;AAEA,KAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1D,OAAM,MAAM,IAAI,oBAAoB,CAAC,gEAAgE;AACrG;;AAEA,KAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAClE,OAAM,MAAM,IAAI,oBAAoB,CAAC,wEAAwE;AAC7G;;AAEA,KAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAClE,OAAM,MAAM,IAAI,oBAAoB,CAAC,wEAAwE;AAC7G;;AAEA,KAAI,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC9D,OAAM,MAAM,IAAI,oBAAoB,CAAC,oEAAoE;AACzG;;AAEA,KAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI;AAC7B,SAAQ,GAAG,CAAC;UACH,GAAG,CAAC,QAAQ,KAAK,QAAQ,GAAG,GAAG,GAAG,EAAE;AAC7C,KAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI;AAC/B,SAAQ,GAAG,CAAC;AACZ,SAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;AACjD,KAAI,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI;AAC3B,SAAQ,GAAG,CAAC;AACZ,SAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;;AAEjD,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B,OAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;AACpD;;KAEI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACvC,OAAM,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA,KAAI,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI;AAC/B;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,WAAW,EAAE,GAAG,EAAE;AAC3B,GAAE,GAAG,GAAG,QAAQ,CAAC,GAAG;;AAEpB,GAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;AACtD,KAAI,MAAM,IAAI,oBAAoB,CAAC,aAAa;AAChD;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,WAAW,EAAE,IAAI,EAAE;AAC5B,GAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACvB,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG;;AAEhC,KAAI,MAAM,CAAC,GAAG,KAAK,EAAE;AACrB,KAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG;AAChC;;AAEA,GAAE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG;AAC9B,GAAE,IAAI,GAAG,KAAK,EAAE,EAAE,OAAO;;AAEzB,GAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG;AAC9B;;AAEA;AACA;CACA,SAAS,aAAa,EAAE,IAAI,EAAE;GAC5B,IAAI,CAAC,IAAI,EAAE;AACb,KAAI,OAAO;AACX;;AAEA,GAAE,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,QAAQ;;AAE1C,GAAE,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI;AACrC,GAAE,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC5B,KAAI,OAAO;AACX;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,SAAS,EAAE,GAAG,EAAE;GACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACvC;;CAEA,SAAS,eAAe,EAAE,GAAG,EAAE;AAC/B,GAAE,OAAO,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU;AAC1E;;CAEA,SAAS,UAAU,EAAE,GAAG,EAAE;GACxB,OAAO,CAAC,EAAE,GAAG,IAAI,IAAI,KAAK,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;AAC1H;;CAEA,SAAS,UAAU,EAAE,IAAI,EAAE;AAC3B,GAAE,IAAI,IAAI,IAAI,IAAI,EAAE;AACpB,KAAI,OAAO;AACX,IAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7B,KAAI,MAAM,KAAK,GAAG,IAAI,CAAC;KACnB,OAAO,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;AACtG,SAAQ,KAAK,CAAC;SACN;AACR,IAAG,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;KAC3B,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;AAC3C,IAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;KACzB,OAAO,IAAI,CAAC;AAChB;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,WAAW,EAAE,MAAM,EAAE;AAC9B,GAAE,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC;AAC7D;;CAEA,SAAS,iBAAiB,EAAE,MAAM,EAAE;AACpC,GAAE,MAAM,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC;GAC/B,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;AAChD;;AAEA,CAAA,SAAS,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;AAC/B,GAAE,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;KAC9D;AACJ;;AAEA,GAAE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE;KACxC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,WAAW,KAAK,eAAe,EAAE;AACvE;OACM,MAAM,CAAC,MAAM,GAAG;AACtB;;AAEA,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;IACnB,MAAM,IAAI,GAAG,EAAE;KACd,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACtC,OAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG;MACzB,EAAE,MAAM,EAAE,GAAG;AAClB;;AAEA,GAAE,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE;AACjC,KAAI,MAAM,CAAC,UAAU,CAAC,GAAG;AACzB;AACA;;AAEA,CAAA,MAAM,sBAAsB,GAAG;CAC/B,SAAS,qBAAqB,EAAE,GAAG,EAAE;GACnC,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,sBAAsB;AACvD,GAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG;AACzC;;AAEA;AACA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,KAAK,EAAE;GAClC,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW;AAC/D;;AAEA,CAAA,SAAS,YAAY,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE;AAC1C;GACE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO;;AAEtC,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;KAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW;AACjD,KAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG;;KAEjB,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;SACjC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7D,QAAO,MAAM;AACb,SAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;AACjD;AACA,MAAK,MAAM;OACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;SACvB,GAAG,GAAG,CAAC,GAAG;AAClB,SAAQ,GAAG,CAAC,GAAG,CAAC,GAAG;AACnB;AACA,OAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC9C;AACA;;AAEA;GACE,IAAI,gBAAgB,IAAI,GAAG,IAAI,qBAAqB,IAAI,GAAG,EAAE;AAC/D,KAAI,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC1F;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,eAAe,EAAE,OAAO,EAAE;GACjC,MAAM,GAAG,GAAG;GACZ,IAAI,gBAAgB,GAAG;GACvB,IAAI,qBAAqB,GAAG;;AAE9B,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;KAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ;AACvC,KAAI,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;;AAE9C,KAAI,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,gBAAgB,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,EAAE;AACnG,OAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;AACvB,OAAM,gBAAgB,GAAG;AACzB,MAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,KAAK,GAAG,KAAK,qBAAqB,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,qBAAqB,CAAC,EAAE;OAC9G,qBAAqB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;AACnD,MAAK,MAAM;AACX,OAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;AACvB;AACA;;AAEA;AACA,GAAE,IAAI,gBAAgB,IAAI,qBAAqB,KAAK,EAAE,EAAE;AACxD,KAAI,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC1F;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,QAAQ,EAAE,MAAM,EAAE;AAC3B;GACE,OAAO,MAAM,YAAY,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;AAC/D;;AAEA,CAAA,SAAS,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;GAClD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/C,KAAI,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAC9D;;AAEA,GAAE,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;AAC/C,KAAI,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC7D;;AAEA,GAAE,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE;AAC7C,KAAI,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC3D;;AAEA,GAAE,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;AACpF,KAAI,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAC9D;;AAEA,GAAE,IAAI,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE;AACvC,KAAI,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;AACjD,OAAM,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC/D;AACA,IAAG,MAAM;AACT,KAAI,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;AACjD,OAAM,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC/D;;AAEA,KAAI,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9C,OAAM,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC5D;;AAEA,KAAI,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AAClD,OAAM,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAChE;AACA;AACA;;AAEA;AACA;CACA,SAAS,WAAW,EAAE,IAAI,EAAE;GAC1B,OAAO,CAAC,EAAE,IAAI;AAChB,KAAI,MAAM,CAAC;SACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;SAC3C,IAAI,CAAC,SAAS,CAAC;SACf,IAAI,CAAC,eAAe;UACnB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;SACxD,iBAAiB,CAAC,IAAI;IAC3B;AACH;;CAEA,SAAS,SAAS,EAAE,IAAI,EAAE;GACxB,OAAO,CAAC,EAAE,IAAI;AAChB,KAAI,MAAM,CAAC;AACX,SAAQ,MAAM,CAAC,SAAS,CAAC,IAAI;SACrB,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;AACrD,QAAO,CAAC;AACR;;CAEA,SAAS,UAAU,EAAE,IAAI,EAAE;GACzB,OAAO,CAAC,EAAE,IAAI;AAChB,KAAI,MAAM,CAAC;AACX,SAAQ,MAAM,CAAC,UAAU,CAAC,IAAI;SACtB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;AACtD,QAAO,CAAC;AACR;;CAEA,SAAS,aAAa,EAAE,MAAM,EAAE;AAChC,GAAE,OAAO;AACT,KAAI,YAAY,EAAE,MAAM,CAAC,YAAY;AACrC,KAAI,SAAS,EAAE,MAAM,CAAC,SAAS;AAC/B,KAAI,aAAa,EAAE,MAAM,CAAC,aAAa;AACvC,KAAI,UAAU,EAAE,MAAM,CAAC,UAAU;AACjC,KAAI,YAAY,EAAE,MAAM,CAAC,YAAY;AACrC,KAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,KAAI,YAAY,EAAE,MAAM,CAAC,YAAY;KACjC,SAAS,EAAE,MAAM,CAAC;AACtB;AACA;;CAEA,iBAAiB,uBAAuB,EAAE,QAAQ,EAAE;AACpD,GAAE,WAAW,MAAM,KAAK,IAAI,QAAQ,EAAE;AACtC,KAAI,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK;AAC5D;AACA;;CAEA,IAAI;CACJ,SAAS,kBAAkB,EAAE,QAAQ,EAAE;GACrC,IAAI,CAAC,cAAc,EAAE;KACnB,cAAc,GAAGC,WAAqB,CAAC;AAC3C;;AAEA,GAAE,IAAI,cAAc,CAAC,IAAI,EAAE;KACvB,OAAO,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;AAChE;;AAEA,GAAE,IAAI;GACJ,OAAO,IAAI,cAAc;KACvB;OACE,MAAM,KAAK,CAAC,GAAG;AACrB,SAAQ,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1C;AACP,OAAM,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE;SACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI;SAC3C,IAAI,IAAI,EAAE;WACR,cAAc,CAAC,MAAM;aACnB,UAAU,CAAC,KAAK;YACjB;AACX,UAAS,MAAM;AACf,WAAU,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK;WAC9D,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC;AAChD;AACA,SAAQ,OAAO,UAAU,CAAC,WAAW,GAAG;QACjC;AACP,OAAM,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE;SACpB,MAAM,QAAQ,CAAC,MAAM;AAC7B;MACK;KACD;AACJ;AACA;;AAEA;AACA;CACA,SAAS,cAAc,EAAE,MAAM,EAAE;GAC/B;AACF,KAAI,MAAM;KACN,OAAO,MAAM,KAAK,QAAQ;AAC9B,KAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;AACvC,KAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;AACvC,KAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;AACpC,KAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;AACvC,KAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;AACpC,KAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;AACpC,KAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK;AACnC;AACA;;CAEA,SAAS,cAAc,EAAE,MAAM,EAAE;AACjC,GAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM;AACvB,GAAE,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE;KAC/C,MAAM,CAAC,cAAc;AACzB,IAAG,MAAM;AACT,KAAI,IAAI,MAAM,CAAC,OAAO,EAAE;AACxB;AACA,OAAM,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,2BAA2B;OACjD,GAAG,CAAC,IAAI,GAAG;AACjB,OAAM,MAAM;AACZ;AACA;AACA;;AAEA,CAAA,SAAS,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC7C,GAAE,IAAI,kBAAkB,IAAI,MAAM,EAAE;AACpC,KAAI,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;KACzD,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ;AAC7D;AACA,GAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ;GACpC,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ;AACtD;;AAEA,CAAA,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;;AAE3C;AACA;AACA;CACA,SAAS,WAAW,EAAE,GAAG,EAAE;GACzB,IAAI,eAAe,EAAE;AACvB,KAAI,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY;AAChC,IAAG,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE;AACnC,KAAI,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG;AACnC;;AAEA,GAAE,OAAO,CAAC,EAAE,GAAG,CAAC;AAChB;;AAEA;AACA;CACA,SAAS,gBAAgB,EAAE,KAAK,EAAE;GAChC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;GAE3E,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,GAAG;AACjE,GAAE,OAAO;OACH;SACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,SAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;AACzC,SAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACtC;OACM;AACN;;AAEA,CAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;CAC9C,mBAAmB,CAAC,UAAU,GAAG;;AAEjC,CAAAC,MAAc,GAAG;AACjB,GAAE,mBAAmB;AACrB,GAAE,GAAG;AACL,GAAE,WAAW;AACb,GAAE,SAAS;AACX,GAAE,UAAU;AACZ,GAAE,WAAW;AACb,GAAE,iBAAiB;AACnB,GAAE,UAAU;AACZ,GAAE,WAAW;AACb,GAAE,QAAQ;AACV,GAAE,aAAa;AACf,GAAE,QAAQ;AACV,GAAE,UAAU;AACZ,GAAE,eAAe;AACjB,GAAE,WAAW;AACb,GAAE,kBAAkB;AACpB,GAAE,eAAe;AACjB,GAAE,YAAY;AACd,GAAE,qBAAqB;AACvB,GAAE,OAAO;AACT,GAAE,UAAU;AACZ,GAAE,SAAS;AACX,GAAE,kBAAkB;AACpB,GAAE,QAAQ;AACV,GAAE,eAAe;AACjB,GAAE,aAAa;AACf,GAAE,cAAc;AAChB,GAAE,QAAQ;AACV,GAAE,cAAc;AAChB,GAAE,gBAAgB;AAClB,GAAE,gBAAgB;AAClB,GAAE,SAAS;AACX,GAAE,SAAS;AACX,GAAE,uBAAuB,EAAE,SAAS,GAAG,EAAE,KAAK,SAAS,KAAK,EAAE,IAAI,SAAS,IAAI,EAAE,CAAC;GAChF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;AACrD;;;;;;;;;;;ACvgBA,CAAA,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG;CACtB,IAAI;;AAEJ,CAAA,MAAM,UAAU,GAAG;;AAEnB,CAAA,SAAS,SAAS,IAAI;AACtB,GAAE,OAAO,GAAG,IAAI,CAAC,GAAG;;AAEpB,GAAE,IAAI,GAAG,GAAG,UAAU,CAAC;GACrB,IAAI,GAAG,GAAG;AACZ,GAAE,OAAO,GAAG,GAAG,GAAG,EAAE;AACpB,KAAI,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG;;AAEhC,KAAI,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;AAC3B,OAAM,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;AACpC,MAAK,MAAM,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;AAC1D,OAAM,KAAK,CAAC,KAAK,GAAG;AACpB,OAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;AACjC;;AAEA,KAAI,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AAC5B,OAAM,KAAK,CAAC,KAAK,GAAG;AACpB,OAAM,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE;AAC3B,SAAQ,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG;AACxC,QAAO,MAAM;SACL,UAAU,CAAC,GAAG;AACtB;AACA,OAAM,GAAG,IAAI;AACb,MAAK,MAAM;AACX,OAAM,GAAG,IAAI;AACb;AACA;;AAEA,GAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,KAAI,cAAc;AAClB;AACA;;AAEA,CAAA,SAAS,cAAc,IAAI;AAC3B,GAAE,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;KAC5C,cAAc,CAAC,OAAO;AAC1B,IAAG,MAAM;KACL,YAAY,CAAC,cAAc;AAC/B,KAAI,cAAc,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG;AAC9C,KAAI,IAAI,cAAc,CAAC,KAAK,EAAE;OACxB,cAAc,CAAC,KAAK;AAC1B;AACA;AACA;;AAEA,CAAA,MAAM,OAAO,CAAC;GACZ,WAAW,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;KACpC,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,MAAM,GAAG;;AAElB;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,KAAK,GAAG;;KAEb,IAAI,CAAC,OAAO;AAChB;;GAEE,OAAO,CAAC,GAAG;AACb,KAAI,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;AAC3B,OAAM,UAAU,CAAC,IAAI,CAAC,IAAI;OACpB,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACtD,SAAQ,cAAc;AACtB;AACA;;KAEI,IAAI,CAAC,KAAK,GAAG;AACjB;;GAEE,KAAK,CAAC,GAAG;AACX,KAAI,IAAI,CAAC,KAAK,GAAG;AACjB;AACA;;AAEA,CAAA,MAAc,GAAG;GACf,UAAU,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;KACnC,OAAO,KAAK,GAAG;AACnB,SAAQ,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;AAC1C,SAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;IACxC;AACH,GAAE,YAAY,CAAC,CAAC,OAAO,EAAE;AACzB,KAAI,IAAI,OAAO,YAAY,OAAO,EAAE;OAC9B,OAAO,CAAC,KAAK;AACnB,MAAK,MAAM;OACL,YAAY,CAAC,OAAO;AAC1B;AACA;AACA;;;;;;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,MAAM,YAAY,GAAGb,YAAsB,CAAC;CAC5C,MAAM,QAAQ,GAAGD,YAAoB,CAAC;;CAEtC,SAAS,IAAI,EAAE,MAAM,EAAE;AACvB,GAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClC,KAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;AAC/B;;GAEE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,KAAI,MAAM,IAAI,SAAS,CAAC,4CAA4C;AACpE;;AAEA,GAAE,MAAM,YAAY,GAAG,MAAM,CAAC;;AAE9B,GAAE,IAAI,YAAY,KAAK,CAAC,EAAE;AAC1B,KAAI,MAAM,IAAI,KAAK,CAAC,8CAA8C;AAClE;;AAEA,GAAE,IAAI,YAAY,GAAG,GAAG,EAAE;AAC1B,KAAI,MAAM,IAAI,KAAK,CAAC,kDAAkD;AACtE;;GAEE,IAAI,CAAC,UAAU,GAAG;GAClB,IAAI,CAAC,OAAO,GAAG;;AAEjB,GAAE,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG;MACtB,IAAI,CAAC,YAAY,EAAC;GACrB,IAAI,CAAC,gBAAgB,GAAG;GACxB,IAAI,CAAC,OAAO,GAAG;GACf,IAAI,CAAC,OAAO,GAAG;;GAEf,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY;;AAE9C;AACA;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,KAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG;AAC9C;AACA;CACA,QAAQ,CAAC,IAAI,EAAE,YAAY;;AAE3B,CAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;GACjC,IAAI,CAAC,gBAAgB,GAAG;GACxB,IAAI,CAAC,OAAO,GAAG;GACf,IAAI,CAAC,OAAO,GAAG;AACjB;;CAEA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,KAAK,EAAE,GAAG,EAAE;GAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;KAC3B,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ;AACvC;AACA,GAAE,MAAM,KAAK,GAAG,KAAK,CAAC;AACtB,GAAE,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI;AACxB,GAAE,IAAI;GACJ,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC;AACpF,GAAE,OAAO;AACT;;AAEA,CAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;AAC5C,GAAE,MAAM,GAAG,GAAG,IAAI,CAAC;AACnB,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC;AACtB,GAAE,MAAM,YAAY,GAAG,MAAM,CAAC;AAC9B,GAAE,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC;;AAEhD;AACA;AACA;AACA;AACA,GAAE,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAClB,GAAE,IAAI;;AAEN,GAAE,IAAI,GAAG,GAAG,CAAC,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;KACI,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,YAAY,EAAE;AACjD,OAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,GAAG,CAAC;;OAExD;SACE,EAAE,KAAK,cAAc;SACrB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC;SAC7C;SACA,IAAI,CAAC,gBAAgB,GAAG;SACxB,EAAE,IAAI,CAAC;AACf,SAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI;;AAE9B,SAAQ,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,YAAY;AACjD;AACA,OAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AACzB;;AAEA;;AAEA,KAAI,IAAI,GAAG,GAAG,CAAC,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;OACM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,IAAG;AACzE;;AAEA,KAAI,IAAI,GAAG,IAAI,CAAC,EAAE;AAClB;AACA,OAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB;OACnE,IAAI,CAAC,gBAAgB,GAAG;AAC9B,MAAK,MAAM;AACX;AACA;AACA;AACA,OAAM,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG;AACpD,OAAM,IAAI,aAAa,GAAG,CAAC,EAAE;AAC7B;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;AACnE;;AAEA,OAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,aAAa;AAC9D,SAAQ,IAAI,CAAC,gBAAgB,GAAG,aAAa;OACvC,IAAI,CAAC,gBAAgB,IAAI;;OAEzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB;OACjD,IAAI,CAAC,gBAAgB,IAAI;;OAEzB,IAAI,CAAC,OAAO,GAAG;AACrB,OAAM,OAAO;AACb;AACA;;GAEE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;;AAE3B;AACA;AACA,GAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE;KACpC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;KAC9B,EAAE,IAAI,CAAC;AACX,KAAI,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAC;;AAEpG,KAAI,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,YAAY;AAC7C,IAAG,MAAM;KACL,GAAG,GAAG,GAAG,GAAG;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE;KACE,GAAG,GAAG,GAAG;AACb;OACM,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC7B;UACS,MAAM,CAAC,OAAO;WACb,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;WACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG;AACtC,UAAS,KAAK,CAAC;AACf;AACA;KACI;AACJ,KAAI,EAAE;AACN;AACA,GAAE,IAAI,GAAG,GAAG,GAAG,EAAE;AACjB,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;AACzD,KAAI,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG;AAClC;;AAEA;GACE,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAC;;GAElF,IAAI,CAAC,OAAO,GAAG;AACjB,GAAE,OAAO;AACT;;CAEA,IAAI,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE;AACxD,GAAE,OAAO,CAAC,GAAG,GAAG,CAAC;OACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG;OAC5C,IAAI,CAAC,GAAG;AACd;;CAEA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACxD,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;KAC5B,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,KAAK;AACjF;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,IAAc,GAAG;;;;;;;;;;;CCjOjB,MAAM,QAAQ,GAAGC,YAAoB,CAAC;CACtC,MAAM,cAAc,GAAGD,YAAsB,CAAC;;CAE9C,SAAS,UAAU,EAAE,IAAI,EAAE;AAC3B,GAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;AAChC;CACA,QAAQ,CAAC,UAAU,EAAE,cAAc;;AAEnC,CAAA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;;AAE1C,CAAA,YAAc,GAAG;;;;;;;;;;;ACVjB,CAAc,QAAA,GAAG,SAAS,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;GAC9D;AACF,KAAI,CAAC,MAAM;AACX,KAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS;AAC9B,KAAI,MAAM,CAAC,IAAI,CAAC,KAAK;KACjB,EAAE,OAAO,YAAY;;GAEvB;AACF,KAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ;AACpC,KAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;KAClB,EAAE,MAAM,IAAI,SAAS,CAAC,QAAQ,GAAG,IAAI,GAAG,wBAAwB,CAAC;;GAEnE,OAAO,MAAM,CAAC,IAAI;AACpB;;;;;;;;;;;CCbA,MAAM,YAAY,GAAGC,YAAsB,CAAC;CAC5C,MAAM,QAAQ,GAAGD,YAAoB,CAAC;AACtC,CAAA,MAAM,QAAQ,GAAGE,eAAA;;AAEjB,CAAA,MAAM,YAAY,GAAGC,WAAA;;AAErB,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU;AACtC,CAAA,MAAM,OAAO,GAAG;CAChB,MAAM,MAAM,GAAG,kCAAiC;;CAEhD,SAAS,YAAY,EAAE,GAAG,EAAE;AAC5B,GAAE,YAAY,CAAC,IAAI,CAAC,IAAI;;GAEtB,GAAG,GAAG,GAAG,IAAI;GACb,MAAM,IAAI,GAAG;GACb,IAAI,CAAC,KAAK,GAAG;GACb,IAAI,CAAC,KAAK,GAAG;GACb,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI;AAC5D,GAAE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,GAAG,IAAI;GAC7D,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,QAAQ,GAAG;AAClB,GAAE,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,OAAO;AACpC,GAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1D,KAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC7B,OAAM,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;SAClD,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG;AAChD,SAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,KAAK,GAAG;QACd,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,EAAC;;AAE1C,OAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG;AACvD;AACA,KAAI,IAAI,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,GAAE;IAC9B;AACH;CACA,QAAQ,CAAC,YAAY,EAAE,YAAY;;AAEnC,CAAA,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE;GAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI;AAC7B,GAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;AAC/B;;AAEA,CAAA,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;GACzC,IAAI,CAAC,QAAQ,GAAG;GAChB,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,MAAM,GAAG;AAChB,GAAE,IAAI,CAAC,EAAE,CAAC,KAAK;AACf;;AAEA,CAAA,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;GAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,YAAY,GAAE;GACtC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC;AAC5B,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC;GACpB,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,QAAQ,GAAG;AAClB,GAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG;GAC3B,IAAI,CAAC,KAAK,GAAG;AACf,GAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM;AAC5B;;AAEA,CAAA,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;GAChD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM;;GAEjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;AACzC,GAAE,MAAM,GAAG,GAAG,KAAK,CAAC;GAClB,IAAI,CAAC,EAAE;;AAET,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;KAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,QAAQ;KACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACrD;AACA;AACA;OACM,IAAI,CAAC,EAAE;SACL,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;SACpD;AACR;AACA;;KAEI,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;KACrC;OACE,QAAQ,KAAK,EAAE;AACrB,OAAM,QAAQ,KAAK;OACb;OACA;AACN;KACI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B,KAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;AACxB,KAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;AACvC,KAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK;AACtD;AACA;;AAEA,CAAA,cAAc,GAAG;;;;;;;;;;;CCjGjB,MAAM,cAAc,GAAGF,YAAsB,CAAC;CAC9C,MAAM,QAAQ,GAAGD,YAAoB,CAAC;;AAEtC,CAAA,MAAM,YAAY,GAAGE,WAAA;;AAErB,CAAA,MAAM,UAAU,GAAGC,iBAAA;AACnB,CAAA,MAAM,YAAY,GAAGM,mBAAA;;AAErB,CAAA,MAAM,IAAI,GAAG;AACb,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACjC,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;CACjC,MAAM,QAAQ,GAAG,YAAY;;CAE7B,SAAS,KAAK,EAAE,GAAG,EAAE;AACrB,GAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE,EAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC;AACvD,GAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG;;GAE7B,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC;;GAE9G,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAS;;AAE3G,GAAE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;;GAExB,IAAI,CAAC,OAAO,GAAG;GACf,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,SAAS,GAAG;GACjB,IAAI,CAAC,WAAW,GAAG;GACnB,IAAI,CAAC,WAAW,GAAG;GACnB,IAAI,CAAC,YAAY,GAAG;GACpB,IAAI,CAAC,WAAW,GAAG;GACnB,IAAI,CAAC,SAAS,GAAG;GACjB,IAAI,CAAC,KAAK,GAAG;GACb,IAAI,CAAC,GAAG,GAAG;GACX,IAAI,CAAC,WAAW,GAAG;GACnB,IAAI,CAAC,SAAS,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,OAAO;GAC7C,IAAI,CAAC,MAAM,GAAG;;GAEd,MAAM,IAAI,GAAG;AACf,GAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,GAAG;GACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,MAAM,EAAE;KAC3C,IAAI,CAAC,SAAS,GAAG;KACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM;IACjC;AACH;CACA,QAAQ,CAAC,KAAK,EAAE,cAAc;;AAE9B,CAAA,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,EAAE,EAAE;GACnC,IAAI,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC5C,KAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;OACnB,MAAM,IAAI,GAAG;AACnB,OAAM,OAAO,CAAC,QAAQ,CAAC,YAAY;SAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC;SAChE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;WACnC,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,MAAM;AAC9D,WAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,GAAG,2DAA2D,CAAC;AAChH,WAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AAC9B,WAAU,OAAO,CAAC,QAAQ,CAAC,YAAY;aAC3B,IAAI,CAAC,WAAW,GAAG;AAC/B,aAAY,IAAI,CAAC,IAAI,CAAC,QAAQ;aAClB,IAAI,CAAC,WAAW,GAAG;YACpB;WACD;AACV;SACQ,IAAI,CAAC,WAAW,GAAG;AAC3B,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;SAClB,IAAI,CAAC,WAAW,GAAG;QACpB;AACP;AACA,IAAG,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAC;AAC/D;;CAEA,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;AACvD;AACA,GAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE;;GAEnD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;AAC7C,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;OACf,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS;OAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,GAAE;AAC3G;KACI,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;AACrC,KAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;AAC1G;;AAEA;AACA,GAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACxB,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;KACzB,IAAI,CAAC,WAAW,GAAG;AACvB;;AAEA,GAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;;AAEzB,GAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,GAAE,EAAE,MAAM,EAAE,EAAE,GAAE;AAChD;;AAEA,CAAA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;GAClC,IAAI,CAAC,KAAK,GAAG;GACb,IAAI,CAAC,QAAQ,GAAG;GAChB,IAAI,CAAC,QAAQ,GAAG;AAClB;;AAEA,CAAA,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,QAAQ,EAAE;GAChD,MAAM,IAAI,GAAG;GACb,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,GAAG,QAAQ;AACtD,GAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;KAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;IACvC;AACH;;AAEA,CAAA,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;GACpC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;KACnC,IAAI,CAAC,WAAW,GAAG;KACnB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ;AACnC;AACA;AACA;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AACrB;AACA;;AAEA,CAAA,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;GAC7D,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,GAAG;;GAEpE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;AAChD,KAAI,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE;OAC5C,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;AACpC,SAAQ,EAAE;SACF,EAAE,IAAI,CAAC;AACf,QAAO,MAAM;SACL,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,UAAS;SACnC,IAAI,CAAC,OAAO,GAAG;SACf;AACR;AACA;AACA,KAAI,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;AAC5B,OAAM,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,EAAC;OAChH,IAAI,CAAC,KAAK;OACV,IAAI,CAAC,SAAS,GAAG;AACvB;AACA,OAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;SACrB,IAAI,CAAC,WAAW,GAAG;AAC3B,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;SAClB,IAAI,CAAC,WAAW,GAAG;AAC3B;AACA;AACA,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM;AAC9B;GACE,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,YAAY,GAAG,MAAK;AACpD,GAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;KACf,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS;KAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;OAC9B,IAAI,CAAC,QAAQ;AACnB;AACA,KAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OAC5D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK;AACtC,MAAK,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;OACxE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK;AAClC,MAAK,MAAM;OACL,IAAI,CAAC,OAAO;AAClB;KACI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,GAAG,KAAI;AAClD;GACE,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;KAC5C,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC7C,OAAM,IAAI,GAAG,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAC;AACvD,OAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;OACxD,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,KAAI;MAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;OAC9C,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAC;AACxC,OAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACnD,OAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAC;AACpG;AACA;GACE,IAAI,OAAO,EAAE;AACf,KAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;AACvB,KAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,WAAW,GAAG,MAAK,EAAE,MAAM;AAC5D,OAAM,IAAI,KAAK,KAAK,GAAG,EAAE;SACjB,EAAE,IAAI,CAAC;SACP,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY;AACzC,WAAU,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,aAAY,IAAI,IAAI,CAAC,SAAS,EAAE;eAClB,IAAI,CAAC,WAAW,GAAG;AACjC,eAAc,IAAI,CAAC,IAAI,CAAC,QAAQ;eAClB,IAAI,CAAC,WAAW,GAAG;AACjC,cAAa,MAAM;eACL,IAAI,CAAC,QAAQ;AAC3B;AACA;UACS;AACT;AACA;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;KACpB,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,WAAW,GAAG;KACnB,IAAI,CAAC,YAAY,GAAG;KACpB,IAAI,CAAC,OAAO,GAAG;AACnB;AACA;;AAEA,CAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AACvC,GAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM;;GAE1B,IAAI,CAAC,MAAM,GAAG;AAChB,GAAE,IAAI,IAAI,CAAC,GAAG,EAAE;AAChB,KAAI,MAAM,EAAE,GAAG,IAAI,CAAC;KAChB,IAAI,CAAC,GAAG,GAAG;AACf,KAAI,EAAE;AACN;AACA;;AAEA,CAAA,OAAc,GAAG;;;;;;;;;;;AClNjB;AACA,CAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO;AAC3C,CAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;AAC7B,GAAE,CAAC,OAAO,EAAE,WAAW,CAAC;GACtB,CAAC,MAAM,EAAE,WAAW;EACrB;;CAED,SAAS,UAAU,EAAE,OAAO,EAAE;AAC9B,GAAE,IAAI;GACJ,OAAO,IAAI,EAAE;AACf,KAAI,QAAQ,OAAO;AACnB,OAAM,KAAK,OAAO;AAClB,OAAM,KAAK,MAAM;SACT,OAAO,QAAQ,CAAC;AACxB,OAAM,KAAK,QAAQ;OACb,KAAK,OAAO,CAAC;AACnB,OAAM,KAAK,UAAU;AACrB,OAAM,KAAK,YAAY;AACvB,OAAM,KAAK,WAAW;AACtB,OAAM,KAAK,UAAU;AACrB,OAAM,KAAK,YAAY;AACvB,OAAM,KAAK,cAAc;AACzB,OAAM,KAAK,iBAAiB;AAC5B,OAAM,KAAK,QAAQ;AACnB,OAAM,KAAK,UAAU;SACb,OAAO,QAAQ,CAAC;AACxB,OAAM,KAAK,SAAS;AACpB,OAAM,KAAK,UAAU;AACrB,OAAM,KAAK,MAAM;AACjB,OAAM,KAAK,OAAO;SACV,OAAO,QAAQ,CAAC;AACxB,OAAM,KAAK,QAAQ;SACX,OAAO,QAAQ,CAAC;OAClB;AACN,SAAQ,IAAI,EAAE,KAAK,SAAS,EAAE;AAC9B,WAAU,EAAE,GAAG;AACf,WAAU,OAAO,GAAG,OAAO,CAAC,WAAW;WAC7B;AACV;AACA,SAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;AAC1C;AACA;AACA;;AAEA,CAAA,MAAM,QAAQ,GAAG;AACjB,GAAE,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK;AAClC,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,OAAM,OAAO;AACb;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;OAC5B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc;AAC7C;KACI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM;IACrC;;AAEH,GAAE,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK;AACpC,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,OAAM,OAAO;AACb;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,OAAO;AACb;KACI,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM;IACvC;;AAEH,GAAE,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK;AACrC,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,OAAM,OAAO;AACb;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;OAC5B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc;AAC7C;KACI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM;IACrC;;AAEH,GAAE,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK;AACpC,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,OAAM,OAAO;AACb;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;OAC5B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc;AAC7C;KACI,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM;IACvC;;AAEH,GAAE,KAAK,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK;AACnC,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,OAAM,OAAO;AACb;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;OAC5B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc;AAC7C;;KAEI,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;AAC3C,OAAM,IAAI;SACF,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;AACjD,QAAO,CAAC,MAAM;AACd;KACI,OAAO,OAAO,IAAI,KAAK;SACnB;SACA,IAAI,CAAC,QAAQ;AACrB;AACA;;AAEA,CAAA,SAAS,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE;GACvD,IAAI,IAAI,EAAE;KACR,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,cAAc;AACxD;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,YAAc,GAAG;;;;;;;;;;;;;AC9GjB,CAAA,MAAM,UAAU,GAAGR,iBAAA;;AAEnB,CAAA,MAAM,UAAU,GAAG;;AAEnB,CAAA,MAAM,aAAa,GAAG;AACtB,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;AAC3E,GAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AACtD;;CAEA,SAAS,eAAe,EAAE,KAAK,EAAE;GAC/B,OAAO,aAAa,CAAC,KAAK;AAC5B;;AAEA,CAAA,MAAM,SAAS,GAAG;AAClB,CAAA,MAAM,WAAW,GAAG;AACpB,CAAA,MAAM,aAAa,GAAG;AACtB,CAAA,MAAM,UAAU,GAAG;;CAEnB,SAAS,WAAW,EAAE,GAAG,EAAE;GACzB,MAAM,GAAG,GAAG;GACZ,IAAI,KAAK,GAAG;GACZ,IAAI,OAAO,GAAG;GACd,IAAI,OAAO,GAAG;GACd,IAAI,QAAQ,GAAG;GACf,IAAI,CAAC,GAAG;GACR,IAAI,GAAG,GAAG;AACZ,GAAE,MAAM,GAAG,GAAG,GAAG,CAAC;;AAElB,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAChC,KAAI,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;AACtB,KAAI,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,EAAE;OAC5B,IAAI,QAAQ,EAAE,EAAE,QAAQ,GAAG,MAAK,EAAE,MAAM;AAC9C,SAAQ,QAAQ,GAAG;SACX;AACR;AACA,MAAK,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE;OACvB,IAAI,CAAC,QAAQ,EAAE;SACb,IAAI,OAAO,EAAE;AACrB,WAAU,OAAO,GAAG;AACpB,WAAU,KAAK,GAAG;AAClB,UAAS,MAAM,EAAE,OAAO,GAAG,KAAI;SACvB;AACR,QAAO,MAAM,EAAE,QAAQ,GAAG,MAAK;AAC/B,MAAK,MAAM;OACL,IAAI,QAAQ,IAAI,OAAO,EAAE,EAAE,GAAG,IAAI,KAAI;AAC5C,OAAM,QAAQ,GAAG;AACjB,OAAM,IAAI,CAAC,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,UAAU,KAAK,IAAI,KAAK,GAAG,EAAE;AAC7E,SAAQ,IAAI,KAAK,KAAK,aAAa,EAAE;AACrC,WAAU,KAAK,GAAG;AAClB,WAAU,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AACnC,UAAS,MAAM,EAAE,KAAK,GAAG,YAAW;AACpC,SAAQ,GAAG,GAAG;SACN;AACR,QAAO,MAAM,IAAI,KAAK,KAAK,SAAS;AACpC,UAAS,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;SAC9B,GAAG,CAAC,MAAM,EAAE;SACZ,KAAK,GAAG,IAAI,KAAK;aACb;aACA;SACJ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS;AAChC,SAAQ,GAAG,GAAG;SACN;QACD,MAAM,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,GAAG,EAAE;AAC3C,SAAQ,KAAK,GAAG;SACR,IAAI,OAAO,EAAE;AACrB,WAAU,IAAI,GAAG,CAAC,MAAM,EAAE;aACd,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC;AACrE,eAAc,QAAQ;AACtB,eAAc,OAAO;AACrB;AACA,WAAU,OAAO,GAAG;AACpB,UAAS,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;WACrB,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM;AAChD;SACQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAG;AACzE,SAAQ,GAAG,GAAG;AACd,SAAQ,EAAE;SACF;AACR,QAAO,MAAM,IAAI,CAAC,OAAO,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,QAAQ;AACxE;AACA,KAAI,GAAG,IAAI;AACX;AACA,GAAE,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE;KACzB,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC;AAC7D,OAAM,QAAQ;AACd,OAAM,OAAO;IACV,MAAM,IAAI,GAAG,EAAE;KACd,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM;AAC1C;;AAEA,GAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;KACxB,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAG;IACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAG;;AAE1B,GAAE,OAAO;AACT;;AAEA,CAAA,aAAc,GAAG;;;;;;;;;;;ACjMjB,CAAA,QAAc,GAAG,SAAS,QAAQ,EAAE,IAAI,EAAE;GACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,EAAE,OAAO,EAAE;AAC3C,GAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,KAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;OACxB,KAAK,IAAI,CAAC;AAChB,OAAM,KAAK,IAAI;SACP,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;SACvB,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI;AACzD;AACA;GACE,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI;AACnD;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;;CAEA,MAAM,EAAE,QAAQ,EAAE,GAAGA;CACrB,MAAM,EAAE,QAAQ,EAAE,GAAGD;;AAErB,CAAA,MAAM,KAAK,GAAGE,YAAA;;AAEd,CAAA,MAAM,WAAW,GAAGC,kBAAA;AACpB,CAAA,MAAM,UAAU,GAAGM,iBAAA;AACnB,CAAA,MAAM,QAAQ,GAAGC,eAAA;AACjB,CAAA,MAAM,QAAQ,GAAGN,eAAA;;AAEjB,CAAA,MAAM,WAAW,GAAG;AACpB,CAAA,MAAM,QAAQ,GAAG;AACjB,CAAA,MAAM,UAAU,GAAG;AACnB,CAAA,MAAM,WAAW,GAAG;AACpB,CAAA,MAAM,OAAO,GAAG;;CAEhB,SAAS,CAAC,MAAM,GAAG;AACnB,CAAA,SAAS,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;AAC9B,GAAE,IAAI;AACN,GAAE,IAAI;GACJ,MAAM,IAAI,GAAG;AACf,GAAE,IAAI;AACN,GAAE,MAAM,MAAM,GAAG,GAAG,CAAC;GACnB,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,MAAM,WAAW,KAAK,0BAA0B,IAAI,QAAQ,KAAK,SAAS,CAAC;AACtJ,GAAE,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI;AAC7C,GAAE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI;AACvC,GAAE,MAAM,YAAY,GAAG,GAAG,CAAC;GACzB,MAAM,QAAQ,GAAG,EAAE,aAAa,EAAE,GAAG,CAAC,OAAO;;AAE/C,GAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;KACpD,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,OAAM,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7C,OAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;OAC7B;AACN;AACA;;GAEE,SAAS,aAAa,IAAI;KACxB,IAAI,KAAK,KAAK,CAAC,IAAI,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAC/C,OAAM,QAAQ,GAAG;OACX,IAAI,CAAC,GAAG;AACd;AACA;;AAEA,GAAE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;;AAEtF,GAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;GACpE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ;GAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;GACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;GACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ;GACrD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI;GAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,IAAI;;GAEhE,IAAI,MAAM,GAAG;GACb,IAAI,OAAO,GAAG;GACd,IAAI,KAAK,GAAG;AACd,GAAE,IAAI;AACN,GAAE,IAAI;GACJ,IAAI,QAAQ,GAAG;;GAEf,IAAI,CAAC,UAAU,GAAG;GAClB,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,GAAG,GAAG;GACX,IAAI,CAAC,OAAO,GAAG;GACf,IAAI,CAAC,IAAI,GAAG;;GAEZ,MAAM,SAAS,GAAG;AACpB,KAAI,QAAQ;KACR,cAAc,EAAE,gBAAgB;KAChC,aAAa,EAAE,eAAe;AAClC,KAAI,OAAO,EAAE,QAAQ,CAAC,aAAa;KAC/B,aAAa,EAAE,GAAG,CAAC;AACvB;;AAEA,GAAE,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS;GACjC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY;KAClC,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAClC,OAAM,MAAM,EAAE,GAAG,IAAI,CAAC;OAChB,IAAI,CAAC,GAAG,GAAG;AACjB,OAAM,EAAE;AACR;IACG,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE;AACvC,KAAI,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE;OAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM;OACzC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ;OAC/B,GAAG,CAAC,aAAa,GAAG;AAC1B,OAAM,GAAG,CAAC,IAAI,CAAC,YAAY;OACrB,OAAO,QAAQ,CAAC,IAAI;AAC1B;;AAEA;AACA;AACA;KACI,IAAI,QAAQ,EAAE;OACZ,MAAM,KAAK,GAAG;AACpB,OAAM,KAAK,CAAC,IAAI,CAAC,KAAK;AACtB,OAAM,KAAK,CAAC,kBAAkB,CAAC,KAAK;AACpC;;KAEI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,MAAM,EAAE;AACxC,OAAM,IAAI;AACV,OAAM,IAAI;AACV,OAAM,IAAI;AACV,OAAM,IAAI;AACV,OAAM,IAAI;AACV,OAAM,IAAI;OACJ,IAAI,KAAK,GAAG;;AAElB,OAAM,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE;SAC1B,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACtD,SAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;AACvB,WAAU,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW;AACzC,WAAU,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACzD,aAAY,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;eACjC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;eAClC;AACd;AACA;AACA;AACA;;OAEM,IAAI,OAAO,KAAK,SAAS,EAAE,EAAE,OAAO,GAAG,aAAY;OACnD,IAAI,OAAO,KAAK,SAAS,EAAE,EAAE,OAAO,GAAG,WAAU;;AAEvD,OAAM,IAAI,MAAM,CAAC,qBAAqB,CAAC,EAAE;SACjC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7D,SAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC9D,SAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACvD,WAAU,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1C,aAAY,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,YAAW,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACrD,aAAY,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACtB,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAC;AAC9D;AACA;AACA,QAAO,MAAM,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;;OAE9B,IAAI,MAAM,CAAC,2BAA2B,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAM;;AAE3I,OAAM,IAAI,MAAM;SACR;;OAEF,IAAI,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;AACrD;AACA,SAAQ,IAAI,MAAM,KAAK,UAAU,EAAE;AACnC,WAAU,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;aACtB,GAAG,CAAC,aAAa,GAAG;AAChC,aAAY,GAAG,CAAC,IAAI,CAAC,YAAY;AACjC;WACU,OAAO,QAAQ,CAAC,IAAI;AAC9B;;AAEA,SAAQ,EAAE;;SAEF,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC7C,WAAU,IAAI,CAAC,MAAM,CAAC,OAAO;WACnB;AACV;;AAEA,SAAQ,EAAE;AACV,SAAQ,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,QAAQ;AAC5C,SAAQ,OAAO,GAAG;AAClB,SAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY;AACnC,WAAU,EAAE;WACF,IAAI,CAAC,MAAM,GAAG;AACxB,WAAU,aAAa;WACb,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,aAAY,MAAM,EAAE,GAAG,IAAI,CAAC;aAChB,IAAI,CAAC,GAAG,GAAG;AACvB,aAAY,EAAE;AACd;UACS;AACT,SAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;AAClC,WAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM;WAC1B,IAAI,CAAC,MAAM,GAAG;WACd,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,aAAY,MAAM,EAAE,GAAG,IAAI,CAAC;aAChB,IAAI,CAAC,GAAG,GAAG;AACvB,aAAY,EAAE;AACd;AACA;AACA,SAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;;AAErE,SAAQ,MAAM,GAAG,UAAU,IAAI,EAAE;WACvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE;aAC1C,MAAM,QAAQ,GAAG,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC;AAC1D,aAAY,IAAI,QAAQ,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAC;aACtD,IAAI,CAAC,SAAS,GAAG;aACjB,IAAI,CAAC,SAAS,GAAG;AAC7B,aAAY,IAAI,CAAC,kBAAkB,CAAC,MAAM;AAC1C,aAAY,IAAI,CAAC,IAAI,CAAC,OAAO;aACjB;AACZ,YAAW,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,KAAI;;WAEjD,IAAI,CAAC,SAAS,GAAG;AAC3B;;SAEQ,KAAK,GAAG,YAAY;AAC5B,WAAU,OAAO,GAAG;AACpB,WAAU,IAAI,CAAC,IAAI,CAAC,IAAI;AACxB;AACA,QAAO,MAAM;AACb;AACA,SAAQ,IAAI,OAAO,KAAK,WAAW,EAAE;AACrC,WAAU,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;aACvB,GAAG,CAAC,cAAc,GAAG;AACjC,aAAY,GAAG,CAAC,IAAI,CAAC,aAAa;AAClC;WACU,OAAO,QAAQ,CAAC,IAAI;AAC9B;;AAEA,SAAQ,EAAE;AACV,SAAQ,EAAE;SACF,IAAI,MAAM,GAAG;SACb,IAAI,SAAS,GAAG;AACxB,SAAQ,QAAQ,GAAG;;AAEnB,SAAQ,MAAM,GAAG,UAAU,IAAI,EAAE;WACvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE;aAC3C,MAAM,QAAQ,IAAI,cAAc,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;aACxD,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ;AACzD,aAAY,SAAS,GAAG;AACxB,aAAY,IAAI,CAAC,kBAAkB,CAAC,MAAM;YAC/B,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC;AACpD;;SAEQ,KAAK,GAAG,YAAY;AAC5B,WAAU,QAAQ,GAAG;AACrB,WAAU,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAC;AAC7E,WAAU,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO;AAClF,WAAU,EAAE;AACZ,WAAU,aAAa;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAM,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG;;AAEjC,OAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM;AAC5B,OAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK;MACrB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;OAC5B,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAC;MAC1C;IACF,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;AAChC,KAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG;AACzB,IAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY;AAC9B,KAAI,QAAQ,GAAG;AACf,KAAI,aAAa;IACd;AACH;;CAEA,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAE,EAAE,EAAE;GAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK;AACnC,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACzB,KAAI,EAAE;AACN,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,UAAU,GAAG,CAAC;KACnB,IAAI,CAAC,GAAG,GAAG;AACf;AACA;;AAEA,CAAA,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY;GACpC,MAAM,IAAI,GAAG;;AAEf,GAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC5B,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;IAChB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC/B,KAAI,OAAO,CAAC,QAAQ,CAAC,YAAY;AACjC,OAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;AACxB,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;MACxB;AACL;AACA;;CAEA,SAAS,QAAQ,EAAE,IAAI,EAAE;GACvB,IAAI,CAAC,MAAM;AACb;;CAEA,SAAS,UAAU,EAAE,IAAI,EAAE;AAC3B,GAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;;GAExB,IAAI,CAAC,SAAS,GAAG;;GAEjB,IAAI,CAAC,SAAS,GAAG;AACnB;;CAEA,QAAQ,CAAC,UAAU,EAAE,QAAQ;;AAE7B,CAAA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;;AAE1C,CAAA,SAAc,GAAG;;;;;;;;;;;AC/SjB,CAAA,MAAM,OAAO,GAAG;;AAEhB,CAAA,MAAM,GAAG,GAAG;AACZ,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/C;;AAEA,CAAA,SAAS,OAAO,IAAI;GAClB,IAAI,CAAC,MAAM,GAAG;AAChB;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE;AACzC;GACE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG;GAC9B,IAAI,GAAG,GAAG;AACZ,GAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC;AACxC,GAAE,OAAO,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AACvB,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;OAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AACnC,SAAQ,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC;SAClB,IAAI,CAAC,MAAM,GAAG;AACtB,SAAQ,EAAE,EAAC;AACX,QAAO,MAAM;AACb,SAAQ,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;AAC5B,SAAQ,EAAE;SACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,WAAU,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;WACpD,IAAI,CAAC,MAAM,GAAG;AACxB;AACA;MACK,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC/B,OAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SACT,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;AACjC,SAAQ,CAAC,GAAG;AACZ;OACM,IAAI,CAAC,MAAM,GAAG;AACpB,OAAM,EAAE;AACR;AACA;AACA,GAAE,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,EAAC;AACrE,GAAE,OAAO;AACT;AACA,CAAA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;GACpC,IAAI,CAAC,MAAM,GAAG;AAChB;;AAEA,CAAA,SAAc,GAAG;;;;;;;;;;;ACnDjB,CAAA,MAAM,OAAO,GAAGH,cAAA;AAChB,CAAA,MAAM,UAAU,GAAGD,iBAAA;AACnB,CAAA,MAAM,QAAQ,GAAGE,eAAA;;AAEjB,CAAA,MAAM,UAAU,GAAG;;CAEnB,UAAU,CAAC,MAAM,GAAG;AACpB,CAAA,SAAS,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE;AAC/B,GAAE,MAAM,MAAM,GAAG,GAAG,CAAC;AACrB,GAAE,MAAM,aAAa,GAAG,GAAG,CAAC;GAC1B,IAAI,CAAC,GAAG,GAAG;;AAEb,GAAE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;GACnE,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG;GAC/D,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;;AAExD,GAAE,IAAI;AACN,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;KACxD,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACvC,SAAQ,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;OACxC,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;OACzC;AACN;AACA;;AAEA,GAAE,IAAI,OAAO,KAAK,SAAS,EAAE,EAAE,OAAO,GAAG,GAAG,CAAC,UAAU,IAAI,OAAM;;AAEjE,GAAE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO;GAC1B,IAAI,CAAC,OAAO,GAAG;GACf,IAAI,CAAC,OAAO,GAAG;GACf,IAAI,CAAC,MAAM,GAAG;GACd,IAAI,CAAC,cAAc,GAAG;GACtB,IAAI,CAAC,SAAS,GAAG;GACjB,IAAI,CAAC,SAAS,GAAG;GACjB,IAAI,CAAC,IAAI,GAAG;GACZ,IAAI,CAAC,IAAI,GAAG;GACZ,IAAI,CAAC,SAAS,GAAG;GACjB,IAAI,CAAC,SAAS,GAAG;GACjB,IAAI,CAAC,SAAS,GAAG;AACnB;;CAEA,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,EAAE,EAAE;GAC/C,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;AACzC,KAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;AAClC,OAAM,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG;AAChC,OAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa;AACjC;AACA,KAAI,OAAO,EAAE;AACb;;GAEE,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC;;AAE5D,GAAE,OAAO,CAAC,GAAG,GAAG,EAAE;AAClB,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;OACzB,KAAK,GAAG,MAAM,GAAG;OACjB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;SACxB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAC;AACvC,SAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS;AACrC,WAAU,KAAK,GAAG;WACR;UACD,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS;AAC5C,WAAU,MAAM,GAAG;WACT;AACV;AACA,SAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,kBAAkB,EAAE;WACrE,IAAI,CAAC,SAAS,GAAG;WACjB;UACD,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,UAAS;AAC1D;;AAEA,OAAM,IAAI,KAAK,KAAK,SAAS,EAAE;AAC/B;SACQ,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,EAAC;SACnF,IAAI,CAAC,MAAM,GAAG;;SAEd,IAAI,CAAC,SAAS,GAAG;SACjB,IAAI,CAAC,cAAc,GAAG;SACtB,IAAI,CAAC,IAAI,GAAG;SACZ,IAAI,CAAC,SAAS,GAAG;SACjB,IAAI,CAAC,SAAS,GAAG;AACzB,SAAQ,IAAI,CAAC,OAAO,CAAC,KAAK;;SAElB,CAAC,GAAG,KAAK,GAAG;AACpB,QAAO,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AACvC;SACQ,EAAE,IAAI,CAAC;SACP,IAAI,GAAG,CAAC,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AACvC,SAAQ,IAAI,MAAM,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAC,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,KAAI;;SAEtH,IAAI,CAAC,SAAS,GAAG;SACjB,IAAI,CAAC,cAAc,GAAG;SACtB,IAAI,CAAC,IAAI,GAAG;SACZ,IAAI,CAAC,SAAS,GAAG;SACjB,IAAI,CAAC,SAAS,GAAG;AACzB,SAAQ,IAAI,CAAC,OAAO,CAAC,KAAK;;AAE1B,SAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,WAAU,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;AACxE,aAAY,EAAE;AACd,aAAY,QAAQ;AACpB,aAAY,KAAK;AACjB;;SAEQ,CAAC,GAAG,MAAM,GAAG;AACrB,SAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE;AAC5D,QAAO,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AACjC;SACQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC;AACnF,SAAQ,CAAC,GAAG;AACZ,SAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,kBAAkB,EAAE;AAC7E;WACU,IAAI,CAAC,cAAc,GAAG;WACtB,IAAI,CAAC,SAAS,GAAG;AAC3B;AACA,QAAO,MAAM;SACL,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAC;AAClF,SAAQ,CAAC,GAAG;AACZ;AACA,MAAK,MAAM;AACX,OAAM,MAAM,GAAG;OACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;SACxB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAC;AACvC,SAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS;AACrC,WAAU,MAAM,GAAG;WACT;AACV;AACA,SAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE;WACjE,IAAI,CAAC,SAAS,GAAG;WACjB;UACD,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,UAAS;AAC1D;;AAEA,OAAM,IAAI,MAAM,KAAK,SAAS,EAAE;SACxB,EAAE,IAAI,CAAC;SACP,IAAI,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,EAAC;AAC7F,SAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;WAClE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;WAC7C,IAAI,CAAC,SAAS;WACd,IAAI,CAAC,SAAS;SAChB,IAAI,CAAC,MAAM,GAAG;;SAEd,IAAI,CAAC,SAAS,GAAG;SACjB,IAAI,CAAC,cAAc,GAAG;SACtB,IAAI,CAAC,IAAI,GAAG;SACZ,IAAI,CAAC,SAAS,GAAG;SACjB,IAAI,CAAC,SAAS,GAAG;AACzB,SAAQ,IAAI,CAAC,OAAO,CAAC,KAAK;;SAElB,CAAC,GAAG,MAAM,GAAG;AACrB,SAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE;AAC5D,QAAO,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AACjC;SACQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC;AACnF,SAAQ,CAAC,GAAG;AACZ,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC;AAC1D,aAAY,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,cAAc,EAAE;AACzE;WACU,IAAI,CAAC,cAAc,GAAG;WACtB,IAAI,CAAC,SAAS,GAAG;AAC3B;AACA,QAAO,MAAM;SACL,IAAI,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAC;AAClF,SAAQ,CAAC,GAAG;AACZ;AACA;AACA;AACA,GAAE,EAAE;AACJ;;AAEA,CAAA,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY;GACrC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM;;AAE9B,GAAE,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,KAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;AACxE,OAAM,EAAE;OACF,IAAI,CAAC,SAAS;AACpB,OAAM,KAAK;AACX,IAAG,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AACpC,KAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;OAClE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;OAC7C,IAAI,CAAC,SAAS;OACd,IAAI,CAAC,SAAS;AACpB;AACA,GAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG;AACnB,GAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;AACxB;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;CC3LjB,MAAM,cAAc,GAAGD,YAAsB,CAAC;CAC9C,MAAM,EAAE,QAAQ,EAAE,GAAGD;AACrB,CAAA,MAAM,KAAK,GAAGE,YAAA;;AAEd,CAAA,MAAM,eAAe,GAAGC,gBAAA;AACxB,CAAA,MAAM,gBAAgB,GAAGM,iBAAA;AACzB,CAAA,MAAM,WAAW,GAAGC,kBAAA;;CAEpB,SAAS,MAAM,EAAE,IAAI,EAAE;AACvB,GAAE,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,EAAE,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;;AAE1D,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,MAAM,IAAI,SAAS,CAAC,oCAAoC;AAC5D;AACA,GAAE,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;AACxC,KAAI,MAAM,IAAI,SAAS,CAAC,2DAA2D;AACnF;GACE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,QAAQ,EAAE;AACxD,KAAI,MAAM,IAAI,SAAS,CAAC,8BAA8B;AACtD;;AAEA,GAAE,MAAM;AACR,KAAI,OAAO;AACX,KAAI,GAAG;AACP,IAAG,GAAG;;GAEJ,IAAI,CAAC,IAAI,GAAG;KACV,WAAW,EAAE,KAAK;AACtB,KAAI,GAAG;AACP;GACE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;;GAEnC,IAAI,CAAC,KAAK,GAAG;GACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO;GAC9C,IAAI,CAAC,SAAS,GAAG;AACnB;CACA,QAAQ,CAAC,MAAM,EAAE,cAAc;;AAE/B,CAAA,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,EAAE,EAAE;AACtC,GAAE,IAAI,EAAE,KAAK,QAAQ,EAAE;AACvB,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACrB,OAAM,IAAI,CAAC,OAAO,EAAE,GAAG;OACjB;AACN,MAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;OACzB;AACN;KACI,IAAI,CAAC,SAAS,GAAG;AACrB;GACE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS;AACrD;;AAEA,CAAA,MAAM,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,OAAO,EAAE;GACvD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;;GAElD,MAAM,GAAG,GAAG;AACd,KAAI,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;AACpC,KAAI,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AAC9B,KAAI,OAAO;AACX,KAAI,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;AAC1C,KAAI,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;AACtC,KAAI,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;KACxB,aAAa,EAAE,MAAM;AACzB,KAAI,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC;AAC5B;;AAEA,GAAE,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,KAAI,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG;AACxC;AACA,GAAE,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/C,KAAI,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,GAAG;AACzC;AACA,GAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B;AAC7C;;CAEA,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;GACvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;AAC9B;;AAEA,CAAAK,IAAA,CAAA,OAAc,GAAG;AACjB,CAAAA,IAAA,CAAA,OAAA,CAAA,OAAsB,GAAG;AACzB,CAAAA,IAAA,CAAA,OAAA,CAAA,MAAqB,GAAG;;AAExB,CAAAA,IAAA,CAAA,OAAA,CAAA,KAAoB,GAAG;;;;;;;;;;;AClFvB,CAAA,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,GAAGd;;AAEjD,CAAA,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;AACpD,CAAA,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,qBAAqB;;CAE9D,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;;CAE1C,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC/C,CAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,cAAc;;AAEhD;AACA,CAAA,MAAM,QAAQ,GAAG;AACjB,GAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACrH,GAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AAC9G,GAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;AACzG,GAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;GAC1G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;GACtG;AACF;;AAEA,CAAA,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ;;AAEpC;AACA,CAAA,MAAM,cAAc,GAAG;AACvB,GAAE,EAAE;AACJ,GAAE,aAAa;AACf,GAAE,4BAA4B;AAC9B,GAAE,aAAa;AACf,GAAE,QAAQ;AACV,GAAE,eAAe;AACjB,GAAE,0BAA0B;AAC5B,GAAE,iCAAiC;GACjC;AACF;AACA,CAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,cAAc;;AAEhD,CAAA,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO;;CAEpD,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;AACtD,CAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW;;CAE1C,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;;AAEjE,CAAA,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS;;AAE5D,CAAA,MAAM,YAAY,GAAG;AACrB,GAAE,SAAS;AACX,GAAE,UAAU;AACZ,GAAE,QAAQ;AACV,GAAE,UAAU;AACZ,GAAE,aAAa;GACb;AACF;;AAEA;AACA,CAAA,MAAM,iBAAiB,GAAG;AAC1B,GAAE,kBAAkB;AACpB,GAAE,kBAAkB;AACpB,GAAE,kBAAkB;AACpB,GAAE,cAAc;AAChB;AACA;AACA;AACA;GACE;AACF;;AAEA;AACA,CAAA,MAAM,aAAa,GAAG;GACpB;AACF;;AAEA;AACA,CAAA,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO;AACrD,CAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,gBAAgB;;AAEpD,CAAA,MAAM,WAAW,GAAG;AACpB,GAAE,OAAO;AACT,GAAE,cAAc;AAChB,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,UAAU;AACZ,GAAE,cAAc;AAChB,GAAE,QAAQ;AACV,GAAE,OAAO;AACT,GAAE,OAAO;AACT,GAAE,OAAO;AACT,GAAE,MAAM;GACN;AACF;AACA,CAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW;;AAE1C;AACA,CAAA,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,CAAC,MAAM;AACvD;AACA;AACA,GAAE,IAAI;KACF,IAAI,CAAC,GAAG;IACT,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACtC;EACC;;CAED,IAAI;;AAEJ;AACA,CAAA,MAAM,eAAe;GACnB,UAAU,CAAC,eAAe;AAC5B;AACA;GACE,SAAS,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE;AACxD,KAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,OAAM,MAAM,IAAI,SAAS,CAAC,kBAAkB;AAC5C;;KAEI,IAAI,CAAC,OAAO,EAAE;OACZ,OAAO,GAAG,IAAI,cAAc;AAClC;AACA,KAAI,OAAO,CAAC,KAAK,CAAC,KAAK;AACvB,KAAI,OAAO,CAAC,KAAK,CAAC,KAAK;KACnB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;AACtD,KAAI,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/C;;AAEA,CAAAO,WAAc,GAAG;AACjB,GAAE,YAAY;AACd,GAAE,eAAe;AACjB,GAAE,WAAW;AACb,GAAE,gBAAgB;AAClB,GAAE,iBAAiB;AACnB,GAAE,cAAc;AAChB,GAAE,eAAe;AACjB,GAAE,WAAW;AACb,GAAE,kBAAkB;AACpB,GAAE,YAAY;AACd,GAAE,cAAc;AAChB,GAAE,qBAAqB;AACvB,GAAE,cAAc;AAChB,GAAE,WAAW;AACb,GAAE,QAAQ;AACV,GAAE,aAAa;AACf,GAAE,cAAc;AAChB,GAAE,WAAW;AACb,GAAE,iBAAiB;AACnB,GAAE,wBAAwB;AAC1B,GAAE,cAAc;AAChB,GAAE,mBAAmB;GACnB;AACF;;;;;;;;;;;ACpJA;AACA;AACA,CAAA,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB;;AAEvD,CAAA,SAAS,eAAe,IAAI;GAC1B,OAAO,UAAU,CAAC,YAAY;AAChC;;CAEA,SAAS,eAAe,EAAE,SAAS,EAAE;AACrC,GAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/B,KAAI,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE;OAC9C,KAAK,EAAE,SAAS;OAChB,QAAQ,EAAE,IAAI;OACd,UAAU,EAAE,KAAK;AACvB,OAAM,YAAY,EAAE;MACf;;KAED;AACJ;;AAEA,GAAE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS;;AAErC,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;KACrE,MAAM,IAAI,SAAS,CAAC,CAAC,6CAA6C,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC5F;;AAEA,GAAE,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE;KAC9C,KAAK,EAAE,SAAS;KAChB,QAAQ,EAAE,IAAI;KACd,UAAU,EAAE,KAAK;AACrB,KAAI,YAAY,EAAE;IACf;AACH;;AAEA,CAAAQ,QAAc,GAAG;AACjB,GAAE,eAAe;GACf;AACF;;;;;;;;;;;CCrCA,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,GAAGf,kBAAA;CACpF,MAAM,EAAE,eAAe,EAAE,GAAGD,eAAA;CAC5B,MAAM,EAAE,WAAW,EAAE,GAAGE;AACxB,CAAA,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAGC,aAAA;AACxD,CAAA,MAAM,MAAM,GAAGM;CACf,MAAM,EAAE,YAAY,EAAE,GAAG;;AAEzB,CAAA,IAAI,eAAe,GAAG;;AAEtB;AACA;CACA,IAAI;;CAEJ,IAAI;GACF,MAAM,GAAG,OAAA,CAAQ,QAAQ;GACzB,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ;AAC9D,GAAE,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7F;AACA,EAAC,CAAC,MAAM;AACR;;CAEA,SAAS,WAAW,EAAE,QAAQ,EAAE;AAChC;AACA;AACA;AACA,GAAE,MAAM,OAAO,GAAG,QAAQ,CAAC;AAC3B,GAAE,MAAM,MAAM,GAAG,OAAO,CAAC;AACzB,GAAE,OAAO,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ;AAC3D;;AAEA;AACA,CAAA,SAAS,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE;AACzD;GACE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/C,KAAI,OAAO;AACX;;AAEA;AACA;GACE,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU;;AAEpD;AACA;GACE,IAAI,QAAQ,KAAK,IAAI,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;KACrD,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;AACtD;;AAEA;AACA;AACA,GAAE,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;KAC9B,QAAQ,CAAC,IAAI,GAAG;AACpB;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,iBAAiB,EAAE,OAAO,EAAE;GACnC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;AACnD;;CAEA,SAAS,cAAc,EAAE,OAAO,EAAE;AAClC;AACA,GAAE,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO;;AAEvC;AACA;AACA,GAAE,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC9D,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,WAAW,EAAE,MAAM,EAAE;GAC5B,OAAO,MAAM,YAAY,KAAK;AAChC,KAAI,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,OAAO;AACzC,KAAI,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,mBAAmB,EAAE,UAAU,EAAE;AAC1C,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,KAAI,MAAM,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;KACjC;OACE;AACN;WACU,CAAC,KAAK,IAAI;AACpB,YAAW,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AAClC,YAAW,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AACjC;AACA;OACM;AACN,OAAM,OAAO;AACb;AACA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,eAAe,EAAE,CAAC,EAAE;AAC7B,GAAE,QAAQ,CAAC;AACX,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,IAAI;AACb;AACA,OAAM,OAAO;KACT;AACJ;AACA,OAAM,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC/B;AACA;;AAEA;AACA;AACA;CACA,SAAS,gBAAgB,EAAE,UAAU,EAAE;AACvC,GAAE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,KAAI,OAAO;AACX;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;KAC1C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AACpD,OAAM,OAAO;AACb;AACA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,EAAE,cAAc,EAAE;GAC1C,OAAO,gBAAgB,CAAC,cAAc;AACxC;;AAEA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,cAAc,EAAE;AAC7C;AACA;GACE;AACF,KAAI,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;AACnC,KAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;AAClC,KAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjC,KAAI,cAAc,CAAC,QAAQ,CAAC,GAAG;KAC3B;AACJ,KAAI,OAAO;AACX;;GAEE;AACF,KAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjC,KAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjC,KAAI,cAAc,CAAC,QAAQ,CAAC,IAAI;KAC5B;AACJ,KAAI,OAAO;AACX;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE;AACtE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE,MAAM,EAAE,WAAW,EAAE,GAAG;AAC1B;AACA;AACA;AACA,GAAE,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG;;AAE3E;AACA;AACA;AACA;GACE,IAAI,MAAM,GAAG;AACf,GAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B;AACA;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;OAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;AAC5C,OAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC3C,SAAQ,MAAM,GAAG;SACT;AACR;AACA;AACA;;AAEA;AACA,GAAE,IAAI,MAAM,KAAK,EAAE,EAAE;KACjB,OAAO,CAAC,cAAc,GAAG;AAC7B;AACA;;AAEA;AACA,CAAA,SAAS,8BAA8B,IAAI;AAC3C;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,SAAS,IAAI;AACtB;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,QAAQ,IAAI;AACrB;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,mBAAmB,EAAE,WAAW,EAAE;AAC3C;AACA;;AAEA;;AAEA;AACA;;AAEA;GACE,IAAI,MAAM,GAAG;;AAEf;GACE,MAAM,GAAG,WAAW,CAAC;;AAEvB;GACE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM;;AAEtD;AACA;;AAEA;AACA;AACA;;AAEA;CACA,SAAS,yBAAyB,EAAE,OAAO,EAAE;AAC7C;AACA,GAAE,IAAI,gBAAgB,GAAG,OAAO,CAAC;;AAEjC;AACA,GAAE,IAAI,OAAO,CAAC,gBAAgB,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;KACvE,IAAI,gBAAgB,EAAE;OACpB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB;AAC3D;;AAEA;AACA,IAAG,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;AACpE;KACI,QAAQ,OAAO,CAAC,cAAc;AAClC,OAAM,KAAK,aAAa;AACxB;AACA,SAAQ,gBAAgB,GAAG;SACnB;AACR,OAAM,KAAK,4BAA4B;AACvC,OAAM,KAAK,eAAe;AAC1B,OAAM,KAAK,iCAAiC;AAC5C;SACQ,IAAI,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE;AACnH,WAAU,gBAAgB,GAAG;AAC7B;SACQ;AACR,OAAM,KAAK,aAAa;AACxB;SACQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE;AAC9D,WAAU,gBAAgB,GAAG;AAC7B;SACQ;AAER;AACA;;KAEI,IAAI,gBAAgB,EAAE;AAC1B;OACM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB;AAC3D;AACA;AACA;;CAEA,SAAS,0BAA0B,EAAE,6BAA6B,EAAE;AACpE;GACE,OAAO,WAAW,CAAC,GAAG;AACxB;;AAEA;CACA,SAAS,sBAAsB,EAAE,UAAU,EAAE;AAC7C,GAAE,OAAO;AACT,KAAI,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,CAAC;KACpC,iBAAiB,EAAE,CAAC;KACpB,eAAe,EAAE,CAAC;AACtB,KAAI,qBAAqB,EAAE,UAAU,CAAC,SAAS,IAAI,CAAC;KAChD,2BAA2B,EAAE,CAAC;KAC9B,6BAA6B,EAAE,CAAC;KAChC,4BAA4B,EAAE,CAAC;KAC/B,OAAO,EAAE,CAAC;KACV,eAAe,EAAE,CAAC;KAClB,eAAe,EAAE,CAAC;AACtB,KAAI,yBAAyB,EAAE;AAC/B;AACA;;AAEA;AACA,CAAA,SAAS,mBAAmB,IAAI;AAChC;AACA,GAAE,OAAO;AACT,KAAI,cAAc,EAAE;AACpB;AACA;;AAEA;CACA,SAAS,oBAAoB,EAAE,eAAe,EAAE;AAChD,GAAE,OAAO;KACL,cAAc,EAAE,eAAe,CAAC;AACpC;AACA;;AAEA;CACA,SAAS,yBAAyB,EAAE,OAAO,EAAE;AAC7C;AACA,GAAE,MAAM,MAAM,GAAG,OAAO,CAAC;;AAEzB;GACE,MAAM,CAAC,MAAM;;AAEf;;GAEE,IAAI,cAAc,GAAG;;AAEvB;AACA,GAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrC;AACA;;KAEI,MAAM,YAAY,GAAG,eAAe;;KAEpC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,EAAE;AACzD,OAAM,OAAO;AACb;;AAEA;AACA,KAAI,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY;AACzC,IAAG,MAAM,IAAI,OAAO,CAAC,QAAQ,YAAY,GAAG,EAAE;AAC9C;KACI,cAAc,GAAG,OAAO,CAAC;AAC7B;;AAEA;AACA;AACA,GAAE,IAAI,WAAW,GAAG,mBAAmB,CAAC,cAAc;;AAEtD;AACA;AACA,GAAE,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI;;AAEjE;AACA;GACE,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE;AAC5C,KAAI,WAAW,GAAG;AAClB;;AAEA,GAAE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,WAAW;AACvD,GAAE,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,WAAW,CAAC;AAC9E,KAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,GAAG;;AAE5C;AACA,GAAE,QAAQ,MAAM;AAChB,KAAI,KAAK,QAAQ,EAAE,OAAO,cAAc,IAAI,IAAI,GAAG,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI;KACxG,KAAK,YAAY,EAAE,OAAO;AAC9B,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO,aAAa,GAAG,cAAc,GAAG;AAC9C,KAAI,KAAK,0BAA0B;AACnC,OAAM,OAAO,aAAa,GAAG,WAAW,GAAG;KACvC,KAAK,iCAAiC,EAAE;AAC5C,OAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO;;AAElD;AACA;AACA,OAAM,IAAI,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE;AAC/C,SAAQ,OAAO;AACf;;AAEA;AACA;AACA;OACM,IAAI,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE;AAChG,SAAQ,OAAO;AACf;;AAEA;AACA,OAAM,OAAO;AACb;KACI,KAAK,eAAe,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;KACI,KAAK,4BAA4B,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;;KAEI;AACJ,OAAM,OAAO,2BAA2B,GAAG,aAAa,GAAG;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,mBAAmB,EAAE,GAAG,EAAE,UAAU,EAAE;AAC/C;AACA,GAAE,MAAM,CAAC,GAAG,YAAY,GAAG;;AAE3B;AACA,GAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1F,KAAI,OAAO;AACX;;AAEA;GACE,GAAG,CAAC,QAAQ,GAAG;;AAEjB;GACE,GAAG,CAAC,QAAQ,GAAG;;AAEjB;GACE,GAAG,CAAC,IAAI,GAAG;;AAEb;GACE,IAAI,UAAU,EAAE;AAClB;KACI,GAAG,CAAC,QAAQ,GAAG;;AAEnB;KACI,GAAG,CAAC,MAAM,GAAG;AACjB;;AAEA;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,2BAA2B,EAAE,GAAG,EAAE;AAC3C,GAAE,IAAI,EAAE,GAAG,YAAY,GAAG,CAAC,EAAE;AAC7B,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE;AACjE,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,OAAO;;AAEvC;AACA,GAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,OAAO;;AAEvC,GAAE,OAAO,8BAA8B,CAAC,GAAG,CAAC,MAAM;;AAElD,GAAE,SAAS,8BAA8B,EAAE,MAAM,EAAE;AACnD;KACI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,OAAO;;AAEpD,KAAI,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM;;AAEtC;AACA,KAAI,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC9E,OAAM,OAAO;AACb;;AAEA;KACI,IAAI,qDAAqD,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACxF,OAAM,WAAW,CAAC,QAAQ,KAAK,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OACpF,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;AACpD,OAAM,OAAO;AACb;;AAEA;AACA,KAAI,OAAO;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;AAC1C;AACA;AACA;AACA;AACA,GAAE,IAAI,MAAM,KAAK,SAAS,EAAE;AAC5B,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,MAAM,cAAc,GAAG,aAAa,CAAC,YAAY;;AAEnD;AACA,GAAE,IAAI,cAAc,KAAK,aAAa,EAAE;AACxC,KAAI,OAAO;AACX;;AAEA;AACA;;AAEA;AACA,GAAE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,KAAI,OAAO;AACX;;AAEA;AACA;AACA,GAAE,MAAM,SAAS,GAAG,oBAAoB,CAAC,cAAc;AACvD,GAAE,MAAM,QAAQ,GAAG,6BAA6B,CAAC,cAAc,EAAE,SAAS;;AAE1E;AACA,GAAE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AAC/B;AACA,KAAI,MAAM,SAAS,GAAG,IAAI,CAAC;;AAE3B;AACA,KAAI,MAAM,aAAa,GAAG,IAAI,CAAC;;AAE/B;AACA;;AAEA;AACA,KAAI,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ;;KAE5E,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;OAC/C,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;SAC/C,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE;AAC7C,QAAO,MAAM;SACL,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE;AAC7C;AACA;;AAEA;AACA;AACA,KAAI,IAAI,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;AACxD,OAAM,OAAO;AACb;AACA;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA,CAAA,MAAM,oBAAoB,GAAG;;AAE7B;AACA;AACA;AACA;CACA,SAAS,aAAa,EAAE,QAAQ,EAAE;AAClC;AACA;GACE,MAAM,MAAM,GAAG;;AAEjB;GACE,IAAI,KAAK,GAAG;;AAEd;GACE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC3C;AACA,KAAI,KAAK,GAAG;;AAEZ;AACA,KAAI,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK;;AAEvD;KACI;OACE,WAAW,KAAK,IAAI;AAC1B,OAAM,WAAW,CAAC,MAAM,KAAK,SAAS;AACtC,OAAM,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK;OAC5B;AACN;AACA;AACA;AACA;OACM;AACN;;AAEA;KACI,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW;;AAEzD;AACA;AACA,KAAI,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC7C,OAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;AACpC;AACA;;AAEA;AACA,GAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,KAAI,OAAO;AACX;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,YAAY,EAAE;AAC7C;AACA;AACA,GAAE,IAAI,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AAClC;AACA;AACA,GAAE,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC5B,KAAI,OAAO;AACX;;AAEA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAChD,KAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC;AACnC;AACA;KACI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClC,OAAM,SAAS,GAAG;OACZ;AACN;MACK,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;OAC/B;AACN;AACA;MACK,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACzC,OAAM,SAAS,GAAG;AAClB;AACA;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,SAAS,6BAA6B,EAAE,YAAY,EAAE,SAAS,EAAE;AACjE,GAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,KAAI,OAAO;AACX;;GAEE,IAAI,GAAG,GAAG;AACZ,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;KAC5C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;OACtC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC;AAC1C;AACA;;GAEE,YAAY,CAAC,MAAM,GAAG;;AAExB,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAE;GACvD,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE;AACnD,KAAI,OAAO;AACX;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;KAC3C,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE;OACvC;AACN,SAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;AAC3D,UAAS,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG;SACnD;SACA;AACR;AACA,OAAM,OAAO;AACb;AACA;;AAEA,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,6CAA6C,EAAE,OAAO,EAAE;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3B;AACA,GAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;AACpD,KAAI,OAAO;AACX;;AAEA;AACA;GACE,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE;AACnF,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,SAAS,qBAAqB,IAAI;AAClC,GAAE,IAAI;AACN,GAAE,IAAI;GACJ,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACnD,KAAI,GAAG,GAAG;AACV,KAAI,GAAG,GAAG;IACP;;GAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;AAC7C;;CAEA,SAAS,SAAS,EAAE,WAAW,EAAE;AACjC,GAAE,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,KAAK;AAC1C;;CAEA,SAAS,WAAW,EAAE,WAAW,EAAE;AACnC,GAAE,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS;AACnD,KAAI,WAAW,CAAC,UAAU,CAAC,KAAK,KAAK;AACrC;;AAEA,CAAA,MAAM,qBAAqB,GAAG;GAC5B,MAAM,EAAE,QAAQ;GAChB,MAAM,EAAE,QAAQ;GAChB,GAAG,EAAE,KAAK;GACV,GAAG,EAAE,KAAK;GACV,IAAI,EAAE,MAAM;GACZ,IAAI,EAAE,MAAM;GACZ,OAAO,EAAE,SAAS;GAClB,OAAO,EAAE,SAAS;GAClB,IAAI,EAAE,MAAM;GACZ,IAAI,EAAE,MAAM;GACZ,GAAG,EAAE,KAAK;AACZ,GAAE,GAAG,EAAE;AACP;;AAEA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,IAAI;;AAEjD;AACA;AACA;AACA;CACA,SAAS,eAAe,EAAE,MAAM,EAAE;GAChC,OAAO,qBAAqB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI;AACxD;;AAEA;CACA,SAAS,oCAAoC,EAAE,KAAK,EAAE;AACtD;AACA,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;;AAErC;AACA,GAAE,IAAI,MAAM,KAAK,SAAS,EAAE;AAC5B,KAAI,MAAM,IAAI,SAAS,CAAC,gCAAgC;AACxD;;AAEA;AACA,GAAE,MAAM,CAAC,OAAO,MAAM,KAAK,QAAQ;;AAEnC;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;GAC3C,MAAM,MAAM,GAAG;KACb,KAAK,EAAE,CAAC;AACZ,KAAI,IAAI;AACR,KAAI,MAAM,EAAE;AACZ;;GAEE,MAAM,CAAC,GAAG;KACR,IAAI,CAAC,GAAG;AACZ;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;OACM,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACrC,MAAM,IAAI,SAAS;AAC3B,WAAU,CAAC,6DAA6D,EAAE,IAAI,CAAC,UAAU;AACzF;AACA;;AAEA;AACA;AACA;OACM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG;OAChC,MAAM,MAAM,GAAG,MAAM;;AAE3B;AACA,OAAM,MAAM,GAAG,GAAG,MAAM,CAAC;;AAEzB;AACA;AACA,OAAM,IAAI,KAAK,IAAI,GAAG,EAAE;SAChB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI;AAC7C;;AAEA;AACA,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK;;AAE/B;AACA,OAAM,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG;;AAE7B;AACA,OAAM,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI;MACjC;AACL;AACA;KACI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS;AAC3C;;AAEA;AACA,GAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,mBAAmB;AAC9C;AACA;AACA,GAAE,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;AACpC;;AAEA;AACA,CAAA,SAAS,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;AACrC,GAAE,IAAI;;AAEN;AACA,GAAE,QAAQ,IAAI;KACV,KAAK,KAAK,EAAE;AAChB;AACA;AACA;AACA;AACA,OAAM,MAAM,GAAG,IAAI,CAAC,CAAC;OACf;AACN;KACI,KAAK,OAAO,EAAE;AAClB;AACA;AACA;AACA;AACA,OAAM,MAAM,GAAG,IAAI,CAAC,CAAC;OACf;AACN;KACI,KAAK,WAAW,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM,MAAM,GAAG;OACT;AACN;AACA;;AAEA;GACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;AACrC;;AAEA;AACA;AACA;AACA,CAAA,eAAe,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;AACnE;AACA;;AAEA;AACA;GACE,MAAM,YAAY,GAAG;;AAEvB;AACA;GACE,MAAM,UAAU,GAAG;;AAErB;AACA;AACA;AACA,GAAE,IAAI;;AAEN,GAAE,IAAI;AACN,KAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;IAC/B,CAAC,OAAO,CAAC,EAAE;KACV,UAAU,CAAC,CAAC;KACZ;AACJ;;AAEA;AACA,GAAE,IAAI;AACN,KAAI,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM;KACxC,YAAY,CAAC,MAAM;IACpB,CAAC,OAAO,CAAC,EAAE;KACV,UAAU,CAAC,CAAC;AAChB;AACA;;AAEA;CACA,IAAI,cAAc,GAAG,UAAU,CAAC;;CAEhC,SAAS,oBAAoB,EAAE,MAAM,EAAE;GACrC,IAAI,CAAC,cAAc,EAAE;KACnB,cAAc,GAAGE,WAAqB,CAAC;AAC3C;;GAEE,OAAO,MAAM,YAAY,cAAc;AACzC,KAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,gBAAgB;AACnD,KAAI,OAAO,MAAM,CAAC,GAAG,KAAK;AAC1B;AACA;;AAEA,CAAA,MAAM,uBAAuB,GAAG;;AAEhC;AACA;AACA;AACA;CACA,SAAS,gBAAgB,EAAE,KAAK,EAAE;AAClC;AACA;AACA;;AAEA,GAAE,IAAI,KAAK,CAAC,MAAM,GAAG,uBAAuB,EAAE;AAC9C,KAAI,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK;AACvC;;AAEA,GAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;AACxF;;AAEA;AACA;AACA;CACA,SAAS,mBAAmB,EAAE,UAAU,EAAE;AAC1C,GAAE,IAAI;KACF,UAAU,CAAC,KAAK;IACjB,CAAC,OAAO,GAAG,EAAE;AAChB;KACI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE;AAC/D,OAAM,MAAM;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,gBAAgB,EAAE,KAAK,EAAE;AAClC;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACrC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI;AACtC;;AAEA;AACA;AACA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;CACA,eAAe,YAAY,EAAE,MAAM,EAAE;GACnC,MAAM,KAAK,GAAG;GACd,IAAI,UAAU,GAAG;;GAEjB,OAAO,IAAI,EAAE;AACf,KAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI;;KAEhD,IAAI,IAAI,EAAE;AACd;AACA,OAAM,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU;AAC5C;;AAEA;AACA;AACA,KAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC9B,OAAM,MAAM,IAAI,SAAS,CAAC,+BAA+B;AACzD;;AAEA;AACA,KAAI,KAAK,CAAC,IAAI,CAAC,KAAK;KAChB,UAAU,IAAI,KAAK,CAAC;;AAExB;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,UAAU,EAAE,GAAG,EAAE;AAC1B,GAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAC;;AAE3B,GAAE,MAAM,QAAQ,GAAG,GAAG,CAAC;;GAErB,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK;AACvE;;AAEA;AACA;AACA;CACA,SAAS,iBAAiB,EAAE,GAAG,EAAE;AACjC,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ;AAClC;;AAEA,GAAE,OAAO,GAAG,CAAC,QAAQ,KAAK;AAC1B;;AAEA;AACA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,GAAG,EAAE;AACpC,GAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAC;;AAE3B,GAAE,MAAM,QAAQ,GAAG,GAAG,CAAC;;AAEvB,GAAE,OAAO,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK;AAC9C;;AAEA;AACA;AACA;CACA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;;AAE/F,CAAAG,MAAc,GAAG;AACjB,GAAE,SAAS;AACX,GAAE,WAAW;AACb,GAAE,qBAAqB;AACvB,GAAE,kBAAkB;AACpB,GAAE,WAAW;AACb,GAAE,6CAA6C;AAC/C,GAAE,0BAA0B;AAC5B,GAAE,yBAAyB;AAC3B,GAAE,mBAAmB;AACrB,GAAE,oBAAoB;AACtB,GAAE,mBAAmB;AACrB,GAAE,yBAAyB;AAC3B,GAAE,QAAQ;AACV,GAAE,SAAS;AACX,GAAE,8BAA8B;AAChC,GAAE,sBAAsB;AACxB,GAAE,kCAAkC;AACpC,GAAE,gBAAgB;AAClB,GAAE,cAAc;AAChB,GAAE,iBAAiB;AACnB,GAAE,WAAW;AACb,GAAE,mBAAmB;AACrB,GAAE,UAAU;AACZ,GAAE,2BAA2B;AAC7B,GAAE,mBAAmB;AACrB,GAAE,UAAU;AACZ,GAAE,eAAe;AACjB,GAAE,oCAAoC;AACtC,GAAE,YAAY;AACd,GAAE,iBAAiB;AACnB,GAAE,kBAAkB;AACpB,GAAE,MAAM;AACR,GAAE,WAAW;AACb,GAAE,aAAa;AACf,GAAE,UAAU;AACZ,GAAE,oBAAoB;AACtB,GAAE,mBAAmB;AACrB,GAAE,gBAAgB;AAClB,GAAE,gBAAgB;AAClB,GAAE,UAAU;AACZ,GAAE,iBAAiB;AACnB,GAAE,oBAAoB;AACtB,GAAE,YAAY;AACd,GAAE,qBAAqB;GACrB;AACF;;;;;;;;;;;ACrnCA,CAAAR,SAAc,GAAG;AACjB,GAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;AACrB,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO;AACxB;;;;;;;;;;;CCPA,MAAM,EAAE,KAAK,EAAE,GAAGL;AAClB,CAAA,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAGD,aAAA;;AAEhC;AACA,CAAA,MAAM,MAAM,GAAG;CACf,MAAM,CAAC,UAAU,GAAG;CACpB,MAAM,CAAC,IAAI,GAAG;CACd,MAAM,CAAC,MAAM,GAAG;;AAEhB,CAAA,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,UAAU,OAAO,EAAE;AAC7C,GAAE,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9D;;AAEA,CAAA,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,UAAU,OAAO,EAAE;AACpD,GAAE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG;AACnD,GAAE,MAAM,OAAO;AACf,KAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;AACnD,KAAI,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;AAE5C,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AACjC,KAAI,MAAM,EAAE,OAAO,CAAC,MAAM;KACtB;IACD;AACH;;AAEA,CAAA,MAAM,CAAC,MAAM,CAAC,eAAe,GAAG,UAAU,OAAO,EAAE;AACnD,GAAE,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AACjC,KAAI,MAAM,EAAE,OAAO,CAAC,MAAM;AAC1B,KAAI,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;AACH;;AAEA;CACA,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE;AACtD,GAAE,IAAI,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;AACnD,KAAI,MAAM,IAAI,SAAS,CAAC,oBAAoB;AAC5C,IAAG,MAAM;AACT,KAAI,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW;AACrE;AACA;;CAEA,MAAM,CAAC,mBAAmB,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;AAC7D,GAAE,IAAI,MAAM,GAAG,GAAG,EAAE;AACpB,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AAClC,OAAM,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;AAClE,gBAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;AAC7D,OAAM,GAAG;MACJ;AACL;AACA;;CAEA,MAAM,CAAC,kBAAkB,GAAG,YAAY;AACxC,GAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;KAC5B,MAAM,EAAE,WAAW;AACvB,KAAI,OAAO,EAAE;IACV;AACH;;AAEA;AACA,CAAA,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,EAAE;GAC9B,QAAQ,OAAO,CAAC;KACd,KAAK,WAAW,EAAE,OAAO;KACzB,KAAK,SAAS,EAAE,OAAO;KACvB,KAAK,QAAQ,EAAE,OAAO;KACtB,KAAK,QAAQ,EAAE,OAAO;KACtB,KAAK,QAAQ,EAAE,OAAO;KACtB,KAAK,QAAQ,EAAE,OAAO;AAC1B,KAAI,KAAK,UAAU;KACf,KAAK,QAAQ,EAAE;AACnB,OAAM,IAAI,CAAC,KAAK,IAAI,EAAE;AACtB,SAAQ,OAAO;AACf;;AAEA,OAAM,OAAO;AACb;AACA;AACA;;AAEA;AACA,CAAA,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE;AAC1E,GAAE,IAAI;AACN,GAAE,IAAI;;AAEN;AACA,GAAE,IAAI,SAAS,KAAK,EAAE,EAAE;AACxB;KACI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;;AAEnC;AACA,KAAI,IAAI,UAAU,KAAK,UAAU,EAAE;AACnC,OAAM,UAAU,GAAG;AACnB,MAAK,MAAM;AACX;OACM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG;AACtC;AACA,IAAG,MAAM,IAAI,UAAU,KAAK,UAAU,EAAE;AACxC;;AAEA;AACA,KAAI,UAAU,GAAG;;AAEjB;KACI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;AAC1C,IAAG,MAAM;AACT;;AAEA;KACI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG;;AAE3C;AACA,KAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG;AAC9C;;AAEA;AACA,GAAE,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;;AAElB;AACA,GAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,KAAI,CAAC,GAAG;AACR;;AAEA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AAClC;KACI;AACJ,OAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrB,OAAM,CAAC,KAAK,MAAM,CAAC,iBAAiB;OAC9B,CAAC,KAAK,MAAM,CAAC;OACb;AACN,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,oBAAoB;AACpC,SAAQ,OAAO,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC,eAAe;QAChD;AACP;;AAEA;KACI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEjC;AACA;KACI,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,UAAU,EAAE;AAC1C,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,oBAAoB;AACpC,SAAQ,OAAO,EAAE,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvE;AACP;;AAEA;AACA,KAAI,OAAO;AACX;;AAEA;AACA;AACA;AACA,GAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAC/C;AACA,KAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU;;AAEpD;AACA;AACA;KACI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACjC,OAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtB,MAAK,MAAM;AACX,OAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB;;AAEA;AACA,KAAI,OAAO;AACX;;AAEA;GACE;AACF,KAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,MAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,KAAI,CAAC,KAAK,MAAM,CAAC,iBAAiB;KAC9B,CAAC,KAAK,MAAM,CAAC;KACb;AACJ,KAAI,OAAO;AACX;;AAEA;GACE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAE/B;GACE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS;;AAE/B;AACA;AACA,GAAE,IAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;KAC9D,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS;AACpC;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AACvC;AACA,GAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;AAElC;AACA,GAAE,IAAI,CAAC,GAAG,CAAC,EAAE;KACT,OAAO,EAAE,GAAG;AAChB;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,MAAM,CAAC,iBAAiB,GAAG,UAAU,SAAS,EAAE;GAC9C,OAAO,CAAC,CAAC,KAAK;AAChB;KACI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC1C,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,UAAU;AAC1B,SAAQ,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACjE;AACP;;AAEA;AACA;KACI,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;KACnC,MAAM,GAAG,GAAG;;AAEhB;KACI;OACE,MAAM,KAAK,SAAS;AAC1B,OAAM,OAAO,MAAM,CAAC,IAAI,KAAK;OACvB;AACN,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,UAAU;AAC1B,SAAQ,OAAO,EAAE;QACV;AACP;;AAEA;KACI,OAAO,IAAI,EAAE;OACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI;;OAEnC,IAAI,IAAI,EAAE;SACR;AACR;;AAEA,OAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC/B;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA;AACA,CAAA,MAAM,CAAC,eAAe,GAAG,UAAU,YAAY,EAAE,cAAc,EAAE;GAC/D,OAAO,CAAC,CAAC,KAAK;AAChB;KACI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC1C,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,QAAQ;AACxB,SAAQ,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACjE;AACP;;AAEA;KACI,MAAM,MAAM,GAAG;;KAEf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC3B;AACA,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;;AAEhC,OAAM,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC9B;AACA,SAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG;;AAEzC;AACA;SACQ,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;;AAEhD;AACA,SAAQ,MAAM,CAAC,QAAQ,CAAC,GAAG;AAC3B;;AAEA;AACA,OAAM,OAAO;AACb;;AAEA;AACA,KAAI,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;;AAElC;AACA,KAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B;OACM,MAAM,IAAI,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,EAAE,GAAG;;AAE1D;AACA,OAAM,IAAI,IAAI,EAAE,UAAU,EAAE;AAC5B;AACA,SAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG;;AAEzC;AACA;SACQ,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC;;AAEhD;AACA,SAAQ,MAAM,CAAC,QAAQ,CAAC,GAAG;AAC3B;AACA;;AAEA;AACA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC,EAAE;AACzC,GAAE,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,KAAK;AAC3B,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;AACpD,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;AACpC,SAAQ,MAAM,EAAE,CAAC,CAAC,IAAI;AACtB,SAAQ,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACxD;AACP;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,MAAM,CAAC,mBAAmB,GAAG,UAAU,UAAU,EAAE;GACjD,OAAO,CAAC,UAAU,KAAK;KACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;KACxC,MAAM,IAAI,GAAG;;KAEb,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE;AACjD,OAAM,OAAO;AACb,MAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,YAAY;AAC5B,SAAQ,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,uCAAuC;QACxE;AACP;;AAEA,KAAI,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;OAChC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG;;AAEzD,OAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;SACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AACtC,WAAU,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B,MAAM,EAAE,YAAY;AAChC,aAAY,OAAO,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE;YACzC;AACX;AACA;;AAEA,OAAM,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG;AAChC,OAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,cAAc;;AAEvD;AACA;AACA,OAAM,IAAI,UAAU,IAAI,KAAK,KAAK,IAAI,EAAE;SAChC,KAAK,GAAG,KAAK,IAAI;AACzB;;AAEA;AACA;AACA;OACM,IAAI,QAAQ,IAAI,UAAU,IAAI,KAAK,KAAK,SAAS,EAAE;AACzD,SAAQ,KAAK,GAAG,SAAS,CAAC,KAAK;;SAEvB;WACE,OAAO,CAAC,aAAa;AAC/B,WAAU,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK;WACrC;AACV,WAAU,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B,MAAM,EAAE,YAAY;AAChC,aAAY,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,0CAA0C,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACjG;AACX;;AAEA,SAAQ,IAAI,CAAC,GAAG,CAAC,GAAG;AACpB;AACA;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,MAAM,CAAC,iBAAiB,GAAG,UAAU,SAAS,EAAE;GAC9C,OAAO,CAAC,CAAC,KAAK;AAChB,KAAI,IAAI,CAAC,KAAK,IAAI,EAAE;AACpB,OAAM,OAAO;AACb;;KAEI,OAAO,SAAS,CAAC,CAAC;AACtB;AACA;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AACtD;AACA;AACA;AACA;GACE,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAClD,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC7B,KAAI,MAAM,IAAI,SAAS,CAAC,sDAAsD;AAC9E;;AAEA;AACA;AACA;GACE,OAAO,MAAM,CAAC,CAAC;AACjB;;AAEA;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE;AAC5C;AACA;GACE,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;;AAEzC;AACA;AACA,GAAE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;KAC7C,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;OAC7B,MAAM,IAAI,SAAS;AACzB,SAAQ,mEAAmE;AAC3E,SAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,2BAA2B;AACxF;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG;;AAE9B;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE;AACzC;AACA,GAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;;AAErB;AACA;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrC,GAAE,OAAO;AACT;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;AAC9C;AACA,GAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ;;AAEpD;AACA;AACA,GAAE,OAAO;AACT;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,UAAU,CAAC,EAAE;AACvD;AACA,GAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU;;AAEtD;AACA;AACA,GAAE,OAAO;AACT;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,EAAE;AAClD;AACA,GAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU;;AAEtD;AACA;AACA,GAAE,OAAO;AACT;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AACzD;AACA,GAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI;;AAE5D;AACA;AACA,GAAE,OAAO;AACT;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AACxD;AACA;AACA;AACA;AACA;GACE;KACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;AACpC,KAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;KACzB;AACJ,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AACzC,OAAM,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpB,OAAM,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;OAChB,KAAK,EAAE,CAAC,aAAa;MACtB;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAClE,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;OAC5B,MAAM,EAAE,aAAa;AAC3B,OAAM,OAAO,EAAE;MACV;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AAC1D;;AAEA;AACA;AACA;GACE;KACE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;AACpC,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1B,KAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;KACzB;AACJ,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;OACnC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACzB,OAAM,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,OAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;MACf;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACzE,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;OAC5B,MAAM,EAAE,aAAa;AAC3B,OAAM,OAAO,EAAE;MACV;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE,OAAO;AACT;;CAEA,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AACrD;AACA;AACA,GAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAChE,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;OAC5B,MAAM,EAAE,UAAU;AACxB,OAAM,OAAO,EAAE;MACV;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AACzE,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;OAC5B,MAAM,EAAE,aAAa;AAC3B,OAAM,OAAO,EAAE;MACV;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAE,OAAO;AACT;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE;AACzD,GAAE,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;KAC7B,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI;AAChD;;AAEA,GAAE,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;KACzB,OAAO,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW;AACxD;;AAEA,GAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KACvB,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI;AAC7C;;GAEE,MAAM,IAAI,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,mBAAmB,CAAC;AACjE;;CAEA,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,iBAAiB;GAClE,MAAM,CAAC,UAAU,CAAC;AACpB;;CAEA,MAAM,CAAC,UAAU,CAAC,gCAAgC,CAAC,GAAG,MAAM,CAAC,iBAAiB;AAC9E,GAAE,MAAM,CAAC,UAAU,CAAC,sBAAsB;AAC1C;;CAEA,MAAM,CAAC,UAAU,CAAC,gCAAgC,CAAC,GAAG,MAAM,CAAC,eAAe;AAC5E,GAAE,MAAM,CAAC,UAAU,CAAC,UAAU;GAC5B,MAAM,CAAC,UAAU,CAAC;AACpB;;AAEA,CAAA,QAAc,GAAG;GACf;AACF;;;;;;;;;;ACroBA,CAAA,MAAM,MAAM,GAAGC;CACf,MAAM,EAAE,IAAI,EAAE,GAAGD;CACjB,MAAM,EAAE,gBAAgB,EAAE,GAAGE,aAAA;;CAE7B,MAAM,OAAO,GAAG,IAAI,WAAW;;AAE/B;AACA;AACA;AACA,CAAA,MAAM,qBAAqB,GAAG;CAC9B,MAAM,qBAAqB,GAAG,gCAA+B;AAC7D;AACA;AACA;CACA,MAAM,yBAAyB,GAAG,uCAAsC;;AAExE;AACA;CACA,SAAS,gBAAgB,EAAE,OAAO,EAAE;AACpC;AACA,GAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;;AAErC;AACA;AACA;AACA,GAAE,IAAI,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI;;AAEzC;AACA,GAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;;AAEvB;AACA,GAAE,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;;AAEhC;AACA;AACA;GACE,IAAI,QAAQ,GAAG,gCAAgC;AACjD,KAAI,GAAG;AACP,KAAI,KAAK;KACL;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,MAAM,cAAc,GAAG,QAAQ,CAAC;GAChC,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI;;AAEvD;AACA;GACE,IAAI,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AACzC,KAAI,OAAO;AACX;;AAEA;GACE,QAAQ,CAAC,QAAQ;;AAEnB;GACE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC;;AAEpD;AACA,GAAE,IAAI,IAAI,GAAG,mBAAmB,CAAC,WAAW;;AAE5C;AACA;AACA;AACA,GAAE,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC9C;AACA,KAAI,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI;;AAE5C;AACA;AACA,KAAI,IAAI,GAAG,eAAe,CAAC,UAAU;;AAErC;AACA,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B,OAAM,OAAO;AACb;;AAEA;KACI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE;;AAEnC;AACA;KACI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;;AAEhD;KACI,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE;AACnC;;AAEA;AACA;AACA,GAAE,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;KAC5B,QAAQ,GAAG,YAAY,GAAG;AAC9B;;AAEA;AACA;AACA,GAAE,IAAI,cAAc,GAAG,aAAa,CAAC,QAAQ;;AAE7C;AACA;AACA,GAAE,IAAI,cAAc,KAAK,SAAS,EAAE;AACpC,KAAI,cAAc,GAAG,aAAa,CAAC,6BAA6B;AAChE;;AAEA;AACA;AACA;AACA,GAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,KAAK,EAAE;GACpD,IAAI,CAAC,eAAe,EAAE;KACpB,OAAO,GAAG,CAAC;AACf;;AAEA,GAAE,MAAM,IAAI,GAAG,GAAG,CAAC;AACnB,GAAE,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;;AAE9B,GAAE,OAAO,UAAU,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,4BAA4B,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnE;GACE,IAAI,MAAM,GAAG;;AAEf;AACA;AACA,GAAE,OAAO,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;AAClF;AACA,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ;;AAErC;KACI,QAAQ,CAAC,QAAQ;AACrB;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,gCAAgC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;GAChE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ;AACnD,GAAE,MAAM,KAAK,GAAG,QAAQ,CAAC;;AAEzB,GAAE,IAAI,GAAG,KAAK,EAAE,EAAE;AAClB,KAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;AAC5B;;GAEE,QAAQ,CAAC,QAAQ,GAAG;GACpB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAC7C;;AAEA;AACA;CACA,SAAS,mBAAmB,EAAE,KAAK,EAAE;AACrC;AACA,GAAE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK;;AAEpC;GACE,OAAO,aAAa,CAAC,KAAK;AAC5B;;AAEA;AACA;CACA,SAAS,aAAa,EAAE,KAAK,EAAE;AAC/B;AACA;GACE,MAAM,MAAM,GAAG;;AAEjB;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,KAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC;;AAExB;AACA,KAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACvB,OAAM,MAAM,CAAC,IAAI,CAAC,IAAI;;AAEtB;AACA;AACA;AACA;AACA;AACA,MAAK,MAAM;OACL,IAAI,KAAK,IAAI;OACb,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;OACzE;AACN,OAAM,MAAM,CAAC,IAAI,CAAC,IAAI;;AAEtB;AACA,MAAK,MAAM;AACX;AACA;AACA,OAAM,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;OACnE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE;;AAExD;AACA,OAAM,MAAM,CAAC,IAAI,CAAC,SAAS;;AAE3B;AACA,OAAM,CAAC,IAAI;AACX;AACA;;AAEA;AACA,GAAE,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM;AAC/B;;AAEA;AACA;CACA,SAAS,aAAa,EAAE,KAAK,EAAE;AAC/B;AACA;GACE,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI;;AAEhD;AACA;AACA,GAAE,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;;AAEhC;AACA;AACA;GACE,MAAM,IAAI,GAAG,gCAAgC;AAC/C,KAAI,GAAG;AACP,KAAI,KAAK;KACL;AACJ;;AAEA;AACA;AACA;AACA,GAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC9D,KAAI,OAAO;AACX;;AAEA;AACA;GACE,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE;AACxC,KAAI,OAAO;AACX;;AAEA;GACE,QAAQ,CAAC,QAAQ;;AAEnB;AACA;AACA;GACE,IAAI,OAAO,GAAG,gCAAgC;AAChD,KAAI,GAAG;AACP,KAAI,KAAK;KACL;AACJ;;AAEA;GACE,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI;;AAErD;AACA;AACA,GAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACpE,KAAI,OAAO;AACX;;AAEA,GAAE,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW;AACxC,GAAE,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW;;AAE9C;AACA;AACA;AACA;GACE,MAAM,QAAQ,GAAG;KACf,IAAI,EAAE,aAAa;KACnB,OAAO,EAAE,gBAAgB;AAC7B;AACA,KAAI,UAAU,EAAE,IAAI,GAAG,EAAE;AACzB;KACI,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,gBAAgB,CAAC;AAClD;;AAEA;GACE,OAAO,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE;AAC3C;KACI,QAAQ,CAAC,QAAQ;;AAErB;AACA;AACA,KAAI,4BAA4B;AAChC;AACA,OAAM,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9C,OAAM,KAAK;OACL;AACN;;AAEA;AACA;AACA;KACI,IAAI,aAAa,GAAG,4BAA4B;OAC9C,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;AAC5C,OAAM,KAAK;OACL;AACN;;AAEA;AACA;AACA,KAAI,aAAa,GAAG,aAAa,CAAC,WAAW;;AAE7C;KACI,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE;AAC1C;AACA;OACM,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;SACpC;AACR;;AAEA;OACM,QAAQ,CAAC,QAAQ;AACvB;;AAEA;KACI,IAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE;OACpC;AACN;;AAEA;KACI,IAAI,cAAc,GAAG;;AAEzB;AACA;KACI,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;AAC1C;AACA;AACA;OACM,cAAc,GAAG,yBAAyB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI;;AAEtE;AACA;AACA,OAAM,gCAAgC;AACtC,SAAQ,GAAG;AACX,SAAQ,KAAK;SACL;AACR;;AAEA;AACA,MAAK,MAAM;AACX;AACA;AACA;OACM,cAAc,GAAG,gCAAgC;AACvD,SAAQ,GAAG;AACX,SAAQ,KAAK;SACL;AACR;;AAEA;OACM,cAAc,GAAG,oBAAoB,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI;;AAEvE;AACA,OAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;SAC/B;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;KACI;AACJ,OAAM,aAAa,CAAC,MAAM,KAAK,CAAC;AAChC,OAAM,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC/C,QAAO,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACrF,OAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa;OACtC;OACA,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc;AAC3D;AACA;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;CACA,SAAS,eAAe,EAAE,IAAI,EAAE;AAChC;GACE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,EAAC;;AAE9D;AACA;GACE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B;AACA;KACI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AAClC;;AAEA;AACA;GACE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,KAAI,OAAO;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,KAAI,OAAO;AACX;;AAEA,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI;GACxB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM;;AAE5C,GAAE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;KAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI;AACxC;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,yBAAyB,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE;AACnE;AACA,GAAE,MAAM,aAAa,GAAG,QAAQ,CAAC;;AAEjC;GACE,IAAI,KAAK,GAAG;;AAEd;AACA;GACE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG;;AAEzC;GACE,QAAQ,CAAC,QAAQ;;AAEnB;GACE,OAAO,IAAI,EAAE;AACf;AACA;AACA;KACI,KAAK,IAAI,4BAA4B;OACnC,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;AAC7C,OAAM,KAAK;OACL;AACN;;AAEA;KACI,IAAI,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;OACrC;AACN;;AAEA;AACA;AACA,KAAI,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;;AAEpD;KACI,QAAQ,CAAC,QAAQ;;AAErB;AACA,KAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE;AACnC;AACA;OACM,IAAI,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC7C,SAAQ,KAAK,IAAI;SACT;AACR;;AAEA;AACA,OAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ;;AAEtC;OACM,QAAQ,CAAC,QAAQ;;AAEvB;AACA,MAAK,MAAM;AACX;AACA,OAAM,MAAM,CAAC,gBAAgB,KAAK,GAAG;;AAErC;OACM;AACN;AACA;;AAEA;GACE,IAAI,YAAY,EAAE;AACpB,KAAI,OAAO;AACX;;AAEA;AACA;GACE,OAAO,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ;AACrD;;AAEA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,QAAQ,EAAE;AACvC,GAAE,MAAM,CAAC,QAAQ,KAAK,SAAS;AAC/B,GAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG;;AAElC;AACA;GACE,IAAI,aAAa,GAAG;;AAEtB;AACA,GAAE,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE;AAClD;AACA,KAAI,aAAa,IAAI;;AAErB;AACA,KAAI,aAAa,IAAI;;AAErB;AACA,KAAI,aAAa,IAAI;;AAErB;AACA;KACI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC5C;AACA;OACM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM;;AAE7C;OACM,KAAK,GAAG,GAAG,GAAG;;AAEpB;AACA,OAAM,KAAK,IAAI;AACf;;AAEA;AACA,KAAI,aAAa,IAAI;AACrB;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,gBAAgB,EAAE,IAAI,EAAE;AACjC,GAAE,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK;AACrE;;AAEA;AACA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE;GACnE,IAAI,IAAI,GAAG;AACb,GAAE,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG;;GAEzB,IAAI,OAAO,EAAE;AACf,KAAI,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AACpE;;GAEE,IAAI,QAAQ,EAAE;AAChB,KAAI,OAAO,KAAK,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9D;;GAEE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC;AAClC;;AAEA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,EAAE,IAAI,EAAE;AAClC,GAAE,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK;AACtF;;AAEA;AACA;AACA;CACA,SAAS,qBAAqB,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE;GACpE,IAAI,IAAI,GAAG;AACb,GAAE,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG;;GAEzB,IAAI,OAAO,EAAE;AACf,KAAI,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AACrE;;GAEE,IAAI,QAAQ,EAAE;AAChB,KAAI,OAAO,KAAK,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC/D;;GAEE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC;AAClC;;AAEA,CAAA,OAAc,GAAG;AACjB,GAAE,gBAAgB;AAClB,GAAE,aAAa;AACf,GAAE,4BAA4B;AAC9B,GAAE,gCAAgC;AAClC,GAAE,mBAAmB;AACrB,GAAE,aAAa;AACf,GAAE,yBAAyB;GACzB;AACF;;;;;;;;;;;AChnBA,CAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAGD;CACnC,MAAM,EAAE,KAAK,EAAE,GAAGD;CAClB,MAAM,EAAE,MAAM,EAAE,GAAGE,gBAAA;CACnB,MAAM,EAAE,UAAU,EAAE,GAAGC,aAAA;CACvB,MAAM,EAAE,MAAM,EAAE,GAAGM,aAAA;AACnB,CAAA,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAGC,cAAA;CAC9C,MAAM,EAAE,mBAAmB,EAAE,GAAGN,aAAA;CAChC,MAAM,OAAO,GAAG,IAAI,WAAW;;CAE/B,MAAM,IAAI,SAAS,IAAI,CAAC;GACtB,WAAW,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE;AACjD;AACA;AACA;AACA,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;;KAEvE,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,QAAQ;KAC3D,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ;KAC/C,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO;;AAEvD;AACA;AACA;;AAEA;KACI,MAAM,CAAC,GAAG;;AAEd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,GAAG,OAAO,CAAC;AACpB,KAAI,IAAI;;AAER;AACA,KAAI,OAAO,EAAE;OACP,IAAI,CAAC,EAAE;AACb,SAAQ,CAAC,GAAG,aAAa,CAAC,CAAC;;AAE3B,SAAQ,IAAI,CAAC,KAAK,SAAS,EAAE;AAC7B,WAAU,CAAC,GAAG;AACd;AACA,WAAU,MAAM;AAChB;;AAEA,SAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW;AAC7C;;AAEA;AACA;AACA;AACA;OACM,CAAC,GAAG,OAAO,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAC1D,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;OACb,IAAI,EAAE,CAAC;OACP,YAAY,EAAE,CAAC;AACrB,OAAM,IAAI,EAAE;AACZ;AACA;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI;;AAEhC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;GAEE,IAAI,YAAY,CAAC,GAAG;AACtB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI;;AAEhC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI;;AAEhC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;AACA;;AAEA,CAAA,MAAM,QAAQ,CAAC;GACb,WAAW,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,EAAE;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;KACI,MAAM,CAAC,GAAG;;AAEd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAI,MAAM,CAAC,GAAG,OAAO,CAAC;;AAEtB;AACA;;AAEA;AACA;AACA;AACA;KACI,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG;;AAE9C;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,OAAM,QAAQ;OACR,IAAI,EAAE,CAAC;OACP,IAAI,EAAE,CAAC;AACb,OAAM,YAAY,EAAE;AACpB;AACA;;AAEA,GAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;KAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;AAC/C;;AAEA,GAAE,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE;AACxB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;KAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI;AACpD;;AAEA,GAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;KAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI;AAC9C;;AAEA,GAAE,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;KAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;AAC7C;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AACjC;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;AACjC;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;GAEE,IAAI,YAAY,CAAC,GAAG;AACtB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA,GAAE,KAAK,MAAM,CAAC,WAAW,EAAE,GAAG;AAC9B,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE;AACxC,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,MAAM;AACjB,KAAI,YAAY,EAAE;IACf;GACD,IAAI,EAAE,mBAAmB;AAC3B,GAAE,YAAY,EAAE;EACf;;CAED,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI;;CAEvD,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;GAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACxC,KAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACvB,OAAM,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACxD;;KAEI;AACJ,OAAM,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3B,OAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;OACxB;OACA,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI;AACnD;AACA;;GAEE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI;AAC5C;;CAEA,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,iBAAiB;GAChE,MAAM,CAAC,UAAU,CAAC;AACpB;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC;GAC7D;KACE,GAAG,EAAE,cAAc;AACvB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;KACzC,IAAI,YAAY,CAAC,GAAG;OAClB,OAAO,IAAI,CAAC,GAAG;AACrB;IACG;GACD;KACE,GAAG,EAAE,MAAM;AACf,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,SAAS;AAClB,KAAI,SAAS,EAAE,CAAC,KAAK,KAAK;OACpB,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK;AAC/C,OAAM,KAAK,GAAG,KAAK,CAAC,WAAW;;AAE/B,OAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;AAC9B,SAAQ,KAAK,GAAG;AAChB;;AAEA,OAAM,OAAO;MACR;AACL,KAAI,YAAY,EAAE;AAClB;EACC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE;AAC3C;AACA;GACE,MAAM,KAAK,GAAG;;AAEhB;AACA,GAAE,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;AAC/B;AACA,KAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC;OACM,IAAI,CAAC,GAAG;;AAEd;AACA;AACA;AACA,OAAM,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;AACxC,SAAQ,CAAC,GAAG,wBAAwB,CAAC,CAAC;AACtC;;AAEA;OACM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAClC,MAAK,MAAM;AACX,OAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC;AACrC,OAAM,KAAK,CAAC,YAAY,CAAC,OAAO;OAC1B;AACN;AACA;AACA;AACA,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;SACnB,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC;AAC1C,QAAO,MAAM;SACL,KAAK,CAAC,IAAI;AAClB,WAAU,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU;AAC/E;AACA;AACA,MAAK,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;AACpC;AACA;AACA,OAAM,KAAK,CAAC,IAAI,CAAC,OAAO;AACxB;AACA;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,wBAAwB,EAAE,CAAC,EAAE;AACtC;GACE,IAAI,gBAAgB,GAAG;;AAEzB;AACA;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACpC,KAAI,gBAAgB,GAAG;AACvB;;AAEA,GAAE,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB;AAC7C;;AAEA;AACA;AACA;CACA,SAAS,UAAU,EAAE,MAAM,EAAE;GAC3B;AACF,KAAI,CAAC,UAAU,IAAI,MAAM,YAAY,UAAU;KAC3C,MAAM,YAAY,IAAI;AAC1B,OAAM,MAAM;AACZ,QAAO,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;AAC1C,OAAM,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC;AAC/C,OAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK;AACrC;AACA;AACA;;AAEA,CAAA,IAAc,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU;;;;;;;;;;;ACrV7C,CAAA,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,GAAGH,aAAA;CAClD,MAAM,EAAE,MAAM,EAAE,GAAGD,gBAAA;CACnB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAGE,WAAA;CACnD,MAAM,EAAE,MAAM,EAAE,GAAGC,aAAA;AACnB,CAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAGM;;AAEnC;CACA,MAAM,IAAI,GAAG,UAAU,IAAI;;AAE3B;AACA,CAAA,MAAM,QAAQ,CAAC;AACf,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;SACnC,MAAM,EAAE,sBAAsB;SAC9B,QAAQ,EAAE,YAAY;SACtB,KAAK,EAAE,CAAC,WAAW;QACpB;AACP;;AAEA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB;;GAEE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE;AAC7C,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;;AAE1E,KAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OAChD,MAAM,IAAI,SAAS;SACjB;AACR;AACA;;AAEA;;KAEI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;AAC3C,KAAI,KAAK,GAAG,UAAU,CAAC,KAAK;AAC5B,SAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACvD,SAAQ,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK;AACzC,KAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK;AACpC,SAAQ,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ;SACpC;;AAER;AACA;KACI,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ;;AAEjD;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK;AAC3B;;AAEA,GAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;;KAEtE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;;AAE3C;AACA;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;AACnE;;AAEA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;;KAEnE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;;AAE3C;AACA;AACA,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI;AACrE,KAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AACpB,OAAM,OAAO;AACb;;AAEA;AACA;KACI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B;;AAEA,GAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;;KAEtE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;;AAE3C;AACA;AACA;AACA;KACI,OAAO,IAAI,CAAC,MAAM;QACf,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI;AAC5C,QAAO,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;AACjC;;AAEA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;;KAEnE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;;AAE3C;AACA;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK;AACtE;;GAEE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,EAAE;AAC1C,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;;AAEvE,KAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OAChD,MAAM,IAAI,SAAS;SACjB;AACR;AACA;;AAEA;AACA;;AAEA;;KAEI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;AAC3C,KAAI,KAAK,GAAG,UAAU,CAAC,KAAK;AAC5B,SAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACvD,SAAQ,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK;AACzC,KAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK;SAC5B,WAAW,CAAC,QAAQ;SACpB;;AAER;AACA;KACI,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ;;AAEjD;AACA;AACA,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI;AACrE,KAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AACpB,OAAM,IAAI,CAAC,MAAM,CAAC,GAAG;SACb,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AACrC,SAAQ,KAAK;SACL,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI;AAC5E;AACA,MAAK,MAAM;AACX;AACA,OAAM,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK;AAC7B;AACA;;GAEE,OAAO,CAAC,GAAG;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,YAAY;AACvB,OAAM,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,OAAM,UAAU;OACV;AACN;AACA;;GAEE,IAAI,CAAC,GAAG;AACV,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,YAAY;AACvB,OAAM,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,OAAM,UAAU;OACV;AACN;AACA;;GAEE,MAAM,CAAC,GAAG;AACZ,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,YAAY;AACvB,OAAM,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7D,OAAM,UAAU;OACV;AACN;AACA;;AAEA;AACA;AACA;AACA;GACE,OAAO,CAAC,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,EAAE;AAC7C,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;;AAE3E,KAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;OACpC,MAAM,IAAI,SAAS;SACjB;AACR;AACA;;KAEI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACrC,OAAM,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;AAClD;AACA;AACA;;CAEA,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;;AAEzD,CAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC5C,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,UAAU;AACrB,KAAI,YAAY,EAAE;AAClB;EACC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC3C;AACA;AACA;AACA;GACE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM;;AAE1C;AACA;AACA,GAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;KAC7B,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM;AAC9C,IAAG,MAAM;AACT;;AAEA;AACA;AACA,KAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OACtB,KAAK,GAAG,KAAK,YAAY;AAC/B,WAAU,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;AACxD,WAAU,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1D;;AAEA;AACA;AACA,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC;OACM,MAAM,OAAO,GAAG;AACtB,SAAQ,IAAI,EAAE,KAAK,CAAC,IAAI;SAChB,YAAY,EAAE,KAAK,CAAC;AAC5B;;OAEM,KAAK,GAAG,CAAC,UAAU,IAAI,KAAK,YAAY,UAAU,KAAK,KAAK,YAAY;WACpE,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,OAAO;AAC7C,WAAU,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO;AAC/C;AACA;;AAEA;AACA,GAAE,OAAO,EAAE,IAAI,EAAE,KAAK;AACtB;;AAEA,CAAc,QAAA,GAAG,EAAE,QAAQ;;;;;;;;;;;ACtQ3B,CAAA,MAAM,MAAM,GAAGR,WAAA;AACf,CAAA,MAAM,IAAI,GAAGD,aAAA;CACb,MAAM;AACN,GAAE,kBAAkB;AACpB,GAAE,UAAU;AACZ,GAAE,oBAAoB;AACtB,GAAE,mBAAmB;AACrB,GAAE,qBAAqB;GACrB;AACF,EAAC,GAAGE,aAAA;CACJ,MAAM,EAAE,QAAQ,EAAE,GAAGC,eAAA;CACrB,MAAM,EAAE,MAAM,EAAE,GAAGM,gBAAA;CACnB,MAAM,EAAE,MAAM,EAAE,GAAGC,aAAA;AACnB,CAAA,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAGN,kBAAA;AAC1C,CAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG;CACnC,MAAM,EAAE,SAAS,EAAE,GAAGa,gBAAA;AACtB,CAAA,MAAM,MAAM,GAAGL;CACf,MAAM,EAAE,SAAS,EAAE,GAAGZ,aAAA;AACtB,CAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAGa;AACxC,CAAA,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAGK,WAAA;AAC7B,CAAA,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAGC,cAAA;;CAE9C,IAAI;CACJ,IAAI;AACJ,GAAE,MAAM,MAAM,GAAG,OAAA,CAAQ,aAAa;GACpC,MAAM,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG;AAC3C,EAAC,CAAC,MAAM;AACR,GAAE,MAAM,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC/C;;CAEA,IAAI,cAAc,GAAG,UAAU,CAAC;;AAEhC;CACA,MAAM,IAAI,GAAG,UAAU,IAAI;CAC3B,MAAM,WAAW,GAAG,IAAI,WAAW;CACnC,MAAM,WAAW,GAAG,IAAI,WAAW;;AAEnC;AACA,CAAA,SAAS,WAAW,EAAE,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE;GAC/C,IAAI,CAAC,cAAc,EAAE;KACnB,cAAc,GAAG,WAAqB,CAAC;AAC3C;;AAEA;GACE,IAAI,MAAM,GAAG;;AAEf;AACA,GAAE,IAAI,MAAM,YAAY,cAAc,EAAE;AACxC,KAAI,MAAM,GAAG;AACb,IAAG,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AACjC;AACA;AACA,KAAI,MAAM,GAAG,MAAM,CAAC,MAAM;AAC1B,IAAG,MAAM;AACT;AACA;AACA,KAAI,MAAM,GAAG,IAAI,cAAc,CAAC;AAChC,OAAM,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE;SACtB,UAAU,CAAC,OAAO;WAChB,OAAO,MAAM,KAAK,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;AACpE;AACA,SAAQ,cAAc,CAAC,MAAM,mBAAmB,CAAC,UAAU,CAAC;QACrD;OACD,KAAK,CAAC,GAAG,EAAE;AACjB,OAAM,IAAI,EAAE;MACP;AACL;;AAEA;AACA,GAAE,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;;AAErC;GACE,IAAI,MAAM,GAAG;;AAEf;GACE,IAAI,MAAM,GAAG;;AAEf;GACE,IAAI,MAAM,GAAG;;AAEf;GACE,IAAI,IAAI,GAAG;;AAEb;AACA,GAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClC;AACA;AACA,KAAI,MAAM,GAAG;;AAEb;AACA,KAAI,IAAI,GAAG;AACX,IAAG,MAAM,IAAI,MAAM,YAAY,eAAe,EAAE;AAChD;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI,MAAM,GAAG,MAAM,CAAC,QAAQ;;AAE5B;AACA,KAAI,IAAI,GAAG;AACX,IAAG,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;AACpC;;AAEA;KACI,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACzC;;AAEA;KACI,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtG,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;KACtC,MAAM,QAAQ,GAAG,CAAC,qBAAqB,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;KAC7E,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,kCAAkC;;AAEnE;AACA,KAAI,MAAM,MAAM,GAAG,CAAC,GAAG;OACjB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK;AACzE,KAAI,MAAM,kBAAkB,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;;AAE3E;AACA;AACA;AACA;AACA;;KAEI,MAAM,SAAS,GAAG;KAClB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAC;AACvC,KAAI,MAAM,GAAG;KACT,IAAI,mBAAmB,GAAG;;KAE1B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE;AACxC,OAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACrC,SAAQ,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM;AAC/C,WAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;WAC9C,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACpD,SAAQ,SAAS,CAAC,IAAI,CAAC,KAAK;SACpB,MAAM,IAAI,KAAK,CAAC;AACxB,QAAO,MAAM;SACL,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;AAC3E,WAAU,CAAC,cAAc;aACb,KAAK,CAAC,IAAI,IAAI;AAC1B,YAAW,QAAQ,CAAC;SACZ,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;AACvC,SAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;WAClC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;AACvD,UAAS,MAAM;AACf,WAAU,mBAAmB,GAAG;AAChC;AACA;AACA;;AAEA,KAAI,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;AACtD,KAAI,SAAS,CAAC,IAAI,CAAC,KAAK;KACpB,MAAM,IAAI,KAAK,CAAC;KAChB,IAAI,mBAAmB,EAAE;AAC7B,OAAM,MAAM,GAAG;AACf;;AAEA;AACA,KAAI,MAAM,GAAG;;KAET,MAAM,GAAG,oBAAoB;AACjC,OAAM,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;AACpC,SAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;WACf,QAAQ,IAAI,CAAC,MAAM;AAC7B,UAAS,MAAM;AACf,WAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;KACI,IAAI,GAAG,gCAAgC,GAAG;AAC9C,IAAG,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AACjC;;AAEA;AACA,KAAI,MAAM,GAAG;;AAEb;KACI,MAAM,GAAG,MAAM,CAAC;;AAEpB;AACA;AACA,KAAI,IAAI,MAAM,CAAC,IAAI,EAAE;OACf,IAAI,GAAG,MAAM,CAAC;AACpB;IACG,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,EAAE;AACjE;KACI,IAAI,SAAS,EAAE;AACnB,OAAM,MAAM,IAAI,SAAS,CAAC,WAAW;AACrC;;AAEA;KACI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;OAC7C,MAAM,IAAI,SAAS;SACjB;AACR;AACA;;AAEA,KAAI,MAAM;OACJ,MAAM,YAAY,cAAc,GAAG,MAAM,GAAG,kBAAkB,CAAC,MAAM;AAC3E;;AAEA;AACA;AACA,GAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3D,KAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;AACrC;;AAEA;AACA,GAAE,IAAI,MAAM,IAAI,IAAI,EAAE;AACtB;AACA,KAAI,IAAI;AACR,KAAI,MAAM,GAAG,IAAI,cAAc,CAAC;OAC1B,MAAM,KAAK,CAAC,GAAG;SACb,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD;AACP,OAAM,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE;SACtB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI;SAC3C,IAAI,IAAI,EAAE;AAClB;WACU,cAAc,CAAC,MAAM;aACnB,UAAU,CAAC,KAAK;YACjB;AACX,UAAS,MAAM;AACf;AACA;AACA;AACA,WAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;aACtB,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC;AACpD;AACA;AACA,SAAQ,OAAO,UAAU,CAAC,WAAW,GAAG;QACjC;AACP,OAAM,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE;SACpB,MAAM,QAAQ,CAAC,MAAM;QACtB;AACP,OAAM,IAAI,EAAE;MACP;AACL;;AAEA;AACA;GACE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;AAEvC;AACA,GAAE,OAAO,CAAC,IAAI,EAAE,IAAI;AACpB;;AAEA;AACA,CAAA,SAAS,iBAAiB,EAAE,MAAM,EAAE,SAAS,GAAG,KAAK,EAAE;GACrD,IAAI,CAAC,cAAc,EAAE;AACvB;KACI,cAAc,GAAG,WAAqB,CAAC;AAC3C;;AAEA;AACA;;AAEA;AACA,GAAE,IAAI,MAAM,YAAY,cAAc,EAAE;AACxC;AACA;KACI,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,qCAAqC;AAC3E;AACA,KAAI,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB;AAClD;;AAEA;AACA,GAAE,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS;AACtC;;CAEA,SAAS,SAAS,EAAE,IAAI,EAAE;AAC1B;;AAEA;;AAEA;GACE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG;AACtC,GAAE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9D;AACA;AACA,GAAE,MAAM,GAAG,UAAU,CAAC,GAAG,SAAS,CAAC,GAAG;;AAEtC;GACE,IAAI,CAAC,MAAM,GAAG;;AAEhB;AACA,GAAE,OAAO;KACL,MAAM,EAAE,UAAU;AACtB,KAAI,MAAM,EAAE,IAAI,CAAC,MAAM;KACnB,MAAM,EAAE,IAAI,CAAC;AACjB;AACA;;CAEA,iBAAiB,WAAW,EAAE,IAAI,EAAE;GAClC,IAAI,IAAI,EAAE;AACZ,KAAI,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AAC5B,OAAM,MAAM;AACZ,MAAK,MAAM;AACX,OAAM,MAAM,MAAM,GAAG,IAAI,CAAC;;AAE1B,OAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACpC,SAAQ,MAAM,IAAI,SAAS,CAAC,qCAAqC;AACjE;;AAEA,OAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACzB,SAAQ,MAAM,IAAI,SAAS,CAAC,uBAAuB;AACnD;;AAEA;AACA,OAAM,MAAM,CAAC,SAAS,CAAC,GAAG;;AAE1B,OAAM,QAAQ;AACd;AACA;AACA;;CAEA,SAAS,cAAc,EAAE,KAAK,EAAE;AAChC,GAAE,IAAI,KAAK,CAAC,OAAO,EAAE;AACrB,KAAI,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY;AACrE;AACA;;CAEA,SAAS,gBAAgB,EAAE,QAAQ,EAAE;GACnC,MAAM,OAAO,GAAG;KACd,IAAI,CAAC,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA,OAAM,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK;AAC9C,SAAQ,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI;;AAExC,SAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACpC,WAAU,QAAQ,GAAG;UACZ,MAAM,IAAI,QAAQ,EAAE;AAC7B,WAAU,QAAQ,GAAG,kBAAkB,CAAC,QAAQ;AAChD;;AAEA;AACA;AACA,SAAQ,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;AACnD,QAAO,EAAE,QAAQ;MACZ;;KAED,WAAW,CAAC,GAAG;AACnB;AACA;AACA;AACA;AACA,OAAM,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK;AAC9C,SAAQ,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACrC,QAAO,EAAE,QAAQ;MACZ;;KAED,IAAI,CAAC,GAAG;AACZ;AACA;AACA,OAAM,OAAO,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ;MACvD;;KAED,IAAI,CAAC,GAAG;AACZ;AACA;AACA,OAAM,OAAO,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ;MAC1D;;KAED,MAAM,QAAQ,CAAC,GAAG;AACtB,OAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEtC,OAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;;OAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc;;AAEzD;AACA,OAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;SAC5C,MAAM,OAAO,GAAG;AACxB,SAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG;;AAE9E,SAAQ,MAAM,gBAAgB,GAAG,IAAI,QAAQ;;AAE7C,SAAQ,IAAI;;AAEZ,SAAQ,IAAI;AACZ,WAAU,MAAM,GAAG,IAAI,MAAM,CAAC;AAC9B,aAAY,OAAO;AACnB,aAAY,YAAY,EAAE;YACf;UACF,CAAC,OAAO,GAAG,EAAE;WACZ,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,YAAY;AACvD;;SAEQ,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK;AAC5C,WAAU,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK;UACpC;AACT,SAAQ,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK;WAC/D,MAAM,MAAM,GAAG;;WAEf,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;aAChE,IAAI,WAAW,GAAG;;aAElB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;eAC1B,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;;eAEtD,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG;AACpE,eAAc,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;;AAE1E,eAAc,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG;cACpC;AACb,aAAY,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;eACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC5D,eAAc,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;cAC7E;AACb,YAAW,MAAM;aACL,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACxC,eAAc,MAAM,CAAC,IAAI,CAAC,KAAK;cAClB;AACb,aAAY,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAClC,eAAc,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;cAC7E;AACb;UACS;;SAED,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC/D,WAAU,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO;AACrC,WAAU,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;UACvD;;SAED,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,WAAW,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;SACpG,MAAM,CAAC,GAAG;AAClB,SAAQ,MAAM;;AAEd,SAAQ,OAAO;QACR,MAAM,IAAI,oCAAoC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACzE;;AAEA;AACA,SAAQ,IAAI;AACZ,SAAQ,IAAI;WACF,IAAI,IAAI,GAAG;AACrB;AACA;AACA;AACA,WAAU,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;;AAE/E,WAAU,WAAW,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACpE,aAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AACtC,eAAc,MAAM,IAAI,SAAS,CAAC,2BAA2B;AAC7D;AACA,aAAY,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AACnE;AACA,WAAU,IAAI,IAAI,gBAAgB,CAAC,MAAM;AACzC,WAAU,OAAO,GAAG,IAAI,eAAe,CAAC,IAAI;UACnC,CAAC,OAAO,GAAG,EAAE;AACtB;AACA;AACA,WAAU,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC7D;;AAEA;AACA,SAAQ,MAAM,QAAQ,GAAG,IAAI,QAAQ;SAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;AAC7C,WAAU,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK;AACrC;AACA,SAAQ,OAAO;AACf,QAAO,MAAM;AACb;AACA;SACQ,MAAM,OAAO,CAAC,OAAO;;AAE7B,SAAQ,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC;AACA,SAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;WAC5B,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7C,WAAU,OAAO,EAAE;UACV;AACT;AACA;AACA;;AAEA,GAAE,OAAO;AACT;;CAEA,SAAS,SAAS,EAAE,SAAS,EAAE;GAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,eAAe,eAAe,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE;AACzE,GAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ;;AAEpC,GAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;;AAE/B;AACA;GACE,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE;AACzC,KAAI,MAAM,IAAI,SAAS,CAAC,kBAAkB;AAC1C;;AAEA;GACE,MAAM,OAAO,GAAG,qBAAqB;;AAEvC;GACE,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK;;AAEpD;AACA;AACA;AACA;AACA,GAAE,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK;AACjC,KAAI,IAAI;AACR,OAAM,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;MAC5C,CAAC,OAAO,CAAC,EAAE;OACV,UAAU,CAAC,CAAC;AAClB;AACA;;AAEA;AACA;GACE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE;AACnC,KAAI,YAAY,CAAC,IAAI,UAAU,EAAE;KAC7B,OAAO,OAAO,CAAC;AACnB;;AAEA;AACA;AACA,GAAE,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU;;AAEnE;GACE,OAAO,OAAO,CAAC;AACjB;;AAEA;CACA,SAAS,YAAY,EAAE,IAAI,EAAE;AAC7B;AACA;AACA;AACA,GAAE,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7E;;AAEA;AACA;AACA;AACA;CACA,SAAS,eAAe,EAAE,MAAM,EAAE;AAClC,GAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,KAAI,OAAO;AACX;;AAEA;AACA;;AAEA;AACA;GACE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACtE,KAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B;;AAEA;AACA;AACA,GAAE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM;;AAE1C;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,KAAK,EAAE;GAClC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;CACA,SAAS,YAAY,EAAE,MAAM,EAAE;AAC/B,GAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM;AACvC,GAAE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc;;AAEpD,GAAE,IAAI,WAAW,KAAK,IAAI,EAAE;AAC5B,KAAI,OAAO;AACX;;GAEE,OAAO,aAAa,CAAC,WAAW;AAClC;;AAEA,CAAA,IAAc,GAAG;AACjB,GAAE,WAAW;AACb,GAAE,iBAAiB;AACnB,GAAE,SAAS;GACT;AACF;;;;;;;;;;;CClmBA,MAAM;AACN,GAAE,oBAAoB;GACpB;AACF,EAAC,GAAGlB,eAAA;AACJ,CAAA,MAAM,MAAM,GAAGD;AACf,CAAA,MAAM,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAGE,gBAAA;AACtE,CAAA,MAAM,IAAI,GAAGC,aAAA;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,WAAW,GAAG;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,eAAe,GAAG;;AAExB;AACA,CAAA,MAAM,gBAAgB,GAAG;;AAEzB,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;;AAEjC,CAAA,MAAM,QAAQ,GAAG;;CAEjB,IAAI;;CAEJ,IAAI;AACJ,GAAE,MAAM,kBAAkB,GAAG,OAAA,CAAQ,qBAAqB;GACxD,QAAQ,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,uBAAuB;GACpE,QAAQ,CAAC,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,yBAAyB;GACxE,QAAQ,CAAC,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,wBAAwB;GACtE,QAAQ,CAAC,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,yBAAyB;GACxE,QAAQ,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,sBAAsB;AACpE,EAAC,CAAC,MAAM;AACR,GAAE,QAAQ,CAAC,MAAM,GAAG,EAAE,cAAc,EAAE,KAAK;AAC3C,GAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK;AAC7C,GAAE,QAAQ,CAAC,OAAO,GAAG,EAAE,cAAc,EAAE,KAAK;AAC5C,GAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK;AAC7C,GAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,cAAc,EAAE,KAAK;AAC1C;;AAEA,CAAA,MAAM,OAAO,CAAC;AACd,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE;AACvB,KAAI,IAAI;AACR,KAAI,MAAM;AACV,KAAI,IAAI;AACR,KAAI,OAAO;AACX,KAAI,KAAK;AACT,KAAI,UAAU;AACd,KAAI,QAAQ;AACZ,KAAI,OAAO;AACX,KAAI,cAAc;AAClB,KAAI,WAAW;AACf,KAAI,KAAK;AACT,KAAI,YAAY;KACZ;IACD,EAAE,OAAO,EAAE;AACd,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC5D,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;AACrB,OAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAClE,OAAM,MAAM,KAAK;OACX;AACN,OAAM,MAAM,IAAI,oBAAoB,CAAC,oDAAoD;MACpF,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;AACrD,OAAM,MAAM,IAAI,oBAAoB,CAAC,sBAAsB;AAC3D;;AAEA,KAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpC,OAAM,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;MACzD,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;AAClD,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D;;AAEA,KAAI,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAChD,OAAM,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC/D;;AAEA,KAAI,IAAI,cAAc,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE;AAC5F,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D;;AAEA,KAAI,IAAI,WAAW,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;AACnF,OAAM,MAAM,IAAI,oBAAoB,CAAC,qBAAqB;AAC1D;;KAEI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AACrD,OAAM,MAAM,IAAI,oBAAoB,CAAC,eAAe;AACpD;;KAEI,IAAI,cAAc,IAAI,IAAI,IAAI,OAAO,cAAc,KAAK,SAAS,EAAE;AACvE,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D;;KAEI,IAAI,CAAC,cAAc,GAAG;;KAEtB,IAAI,CAAC,WAAW,GAAG;;AAEvB,KAAI,IAAI,CAAC,YAAY,GAAG,YAAY,KAAK;;KAErC,IAAI,CAAC,MAAM,GAAG;;KAEd,IAAI,CAAC,KAAK,GAAG;;AAEjB,KAAI,IAAI,IAAI,IAAI,IAAI,EAAE;OAChB,IAAI,CAAC,IAAI,GAAG;MACb,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;OAC9B,IAAI,CAAC,IAAI,GAAG;;AAElB,OAAM,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;OACzB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AAC1C,SAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,WAAW,IAAI;AAClD,WAAU,IAAI,CAAC,OAAO,CAAC,IAAI;AAC3B;SACQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU;AAC3C;;AAEA,OAAM,IAAI,CAAC,YAAY,GAAG,GAAG,IAAI;AACjC,SAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,WAAU,IAAI,CAAC,KAAK,CAAC,GAAG;AACxB,UAAS,MAAM;WACL,IAAI,CAAC,KAAK,GAAG;AACvB;AACA;OACM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY;MACxC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;OAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG;MACtC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;OACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;AACxG,MAAK,MAAM,IAAI,IAAI,YAAY,WAAW,EAAE;AAC5C,OAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;AACxD,MAAK,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACzC,OAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;MAC/C,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;OACtF,IAAI,CAAC,IAAI,GAAG;AAClB,MAAK,MAAM;AACX,OAAM,MAAM,IAAI,oBAAoB,CAAC,uFAAuF;AAC5H;;KAEI,IAAI,CAAC,SAAS,GAAG;;KAEjB,IAAI,CAAC,OAAO,GAAG;;AAEnB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;;AAE9B,KAAI,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG;;KAEjD,IAAI,CAAC,MAAM,GAAG;;AAElB,KAAI,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI;AACpC,SAAQ,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK;SAChC;;KAEJ,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,GAAG,KAAK,GAAG;;KAE3C,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG;;KAEpC,IAAI,CAAC,IAAI,GAAG;;KAEZ,IAAI,CAAC,aAAa,GAAG;;KAErB,IAAI,CAAC,WAAW,GAAG;;KAEnB,IAAI,CAAC,OAAO,GAAG;;AAEnB;KACI,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,GAAG,cAAc,GAAG;;AAEpE,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;OAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACpC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,4BAA4B;AACnE;AACA,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,SAAQ,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AACtD;MACK,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACvD,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;AACtC,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,SAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC;SAClB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C;AACA,MAAK,MAAM,IAAI,OAAO,IAAI,IAAI,EAAE;AAChC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uCAAuC;AAC5E;;KAEI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACxC,OAAM,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;AAChF,SAAQ,MAAM,IAAI,oBAAoB,CAAC,8DAA8D;AACrG;;OAEM,IAAI,CAAC,WAAW,EAAE;SAChB,WAAW,GAAGO,WAAA,EAA2B,CAAC;AAClD;;OAEM,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,IAAI;AACxD,OAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;SAC5B,IAAI,CAAC,WAAW,GAAG;SACnB,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,IAAI;AACzD;AACA,OAAM,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;AAC7B,OAAM,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AACtC,MAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AAC/E,OAAM,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;OACxB,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;AACrD;;KAEI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO;;KAE7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;;AAElD,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;;AAErB,KAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE;OAClC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/C;AACA;;AAEA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE;AACrB,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;AACnC,OAAM,IAAI;SACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,KAAK;QACvC,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG;AACtB;AACA;AACA;;GAEE,aAAa,CAAC,GAAG;AACnB,KAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE;OACpC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACjD;;AAEA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE;AACtC,OAAM,IAAI;AACV,SAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa;QACpC,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG;AACtB;AACA;AACA;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,OAAM,KAAK,CAAC,IAAI,CAAC,KAAK;AACtB,MAAK,MAAM;OACL,IAAI,CAAC,KAAK,GAAG;OACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK;AAC3C;AACA;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;AACtD,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE;OACnC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;AAC/F;;AAEA,KAAI,IAAI;AACR,OAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;MACxE,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,KAAK,CAAC,GAAG;AACpB;AACA;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,IAAI;OACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK;MACnC,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,KAAK,CAAC,GAAG;AACpB,OAAM,OAAO;AACb;AACA;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;AAC1C,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE1B,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM;AAC/D;;AAEA,GAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;KACpB,IAAI,CAAC,SAAS;;AAElB,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;;KAEpB,IAAI,CAAC,SAAS,GAAG;AACrB,KAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC1C,OAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3D;;AAEA,KAAI,IAAI;OACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ;MAC1C,CAAC,OAAO,GAAG,EAAE;AAClB;AACA,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG;AACtB;AACA;;AAEA,GAAE,OAAO,CAAC,CAAC,KAAK,EAAE;KACd,IAAI,CAAC,SAAS;;AAElB,KAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE;AACvC,OAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;AACrD;;AAEA,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;OAChB;AACN;KACI,IAAI,CAAC,OAAO,GAAG;;KAEf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK;AACvC;;GAEE,SAAS,CAAC,GAAG;AACf,KAAI,IAAI,IAAI,CAAC,YAAY,EAAE;OACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY;OACxC,IAAI,CAAC,YAAY,GAAG;AAC1B;;AAEA,KAAI,IAAI,IAAI,CAAC,UAAU,EAAE;OACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU;OACpC,IAAI,CAAC,UAAU,GAAG;AACxB;AACA;;AAEA;AACA,GAAE,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE;AACzB,KAAI,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;AAClC,KAAI,OAAO;AACX;;GAEE,QAAQ,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD;AACA;KACI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;AAC5C;;GAEE,QAAQ,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC;KACrB,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI;;KAE/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;;KAEjD,OAAO,CAAC,OAAO,GAAG;;AAEtB,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;OAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACpC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,4BAA4B;AACnE;AACA,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,SAAQ,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI;AAC/D;MACK,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACvD,OAAM,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO;AACtC,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,SAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC;SAClB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI;AACtD;AACA,MAAK,MAAM,IAAI,OAAO,IAAI,IAAI,EAAE;AAChC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uCAAuC;AAC5E;;AAEA,KAAI,OAAO;AACX;;AAEA,GAAE,QAAQ,iBAAiB,EAAE,CAAC,GAAG,EAAE;AACnC,KAAI,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM;KACnC,MAAM,OAAO,GAAG;;AAEpB,KAAI,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;OAC/B,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI;;OAEtC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE/C,OAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;AAClD,YAAW,OAAO,CAAC,GAAG,CAAC,GAAG;AAC1B;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,SAAS,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE;AACnD,GAAE,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;KAClC,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC1D;;GAEE,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG;;GAE/B,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;KACtC,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC1D;;AAEA,GAAE,OAAO,UAAU,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI;AAC/C;;CAEA,SAAS,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,KAAK,EAAE;AAC/D,GAAE,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;KAC3D,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC1D,IAAG,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE;KAC5B;AACJ;;GAEE;AACF,KAAI,OAAO,CAAC,IAAI,KAAK,IAAI;AACzB,KAAI,GAAG,CAAC,MAAM,KAAK,CAAC;AACpB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;KACA,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;OACtC,MAAM,IAAI,oBAAoB,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;AAC5D;AACA;KACI,OAAO,CAAC,IAAI,GAAG;AACnB,IAAG,MAAM;AACT,KAAI,OAAO,CAAC,aAAa,KAAK,IAAI;AAClC,KAAI,GAAG,CAAC,MAAM,KAAK,EAAE;AACrB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;KACA,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE;KACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACjD,OAAM,MAAM,IAAI,oBAAoB,CAAC,+BAA+B;AACpE;AACA,IAAG,MAAM;AACT,KAAI,OAAO,CAAC,WAAW,KAAK,IAAI;AAChC,KAAI,GAAG,CAAC,MAAM,KAAK,EAAE;AACrB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;KACA,OAAO,CAAC,WAAW,GAAG;AAC1B,KAAI,IAAI,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU;UACzE,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG;AACvD,IAAG,MAAM;AACT,KAAI,GAAG,CAAC,MAAM,KAAK,EAAE;AACrB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;AACJ,KAAI,MAAM,IAAI,oBAAoB,CAAC,kCAAkC;AACrE,IAAG,MAAM;AACT,KAAI,GAAG,CAAC,MAAM,KAAK,EAAE;AACrB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;AACJ,KAAI,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG;KAC5D,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,YAAY,EAAE;AACrD,OAAM,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAChE,MAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE;OAC5B,OAAO,CAAC,KAAK,GAAG;AACtB;AACA,IAAG,MAAM;AACT,KAAI,GAAG,CAAC,MAAM,KAAK,EAAE;AACrB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;AACJ,KAAI,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAC9D,IAAG,MAAM;AACT,KAAI,GAAG,CAAC,MAAM,KAAK,CAAC;AACpB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;AACJ,KAAI,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC3D,IAAG,MAAM;AACT,KAAI,GAAG,CAAC,MAAM,KAAK,CAAC;AACpB,KAAI,GAAG,CAAC,WAAW,EAAE,KAAK;KACtB;AACJ,KAAI,MAAM,IAAI,iBAAiB,CAAC,6BAA6B;IAC1D,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AAC7C,KAAI,MAAM,IAAI,oBAAoB,CAAC,oBAAoB;AACvD,IAAG,MAAM;AACT,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC5B,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACnC,IAAI,UAAU,EAAE;AACxB,WAAU,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC5G,gBAAe,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU;AAChF,UAAS,MAAM;WACL,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3D;AACA;AACA,MAAK,MAAM;AACX,OAAM,IAAI,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU;YACzE,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,GAAG;AACzD;AACA;AACA;;AAEA,CAAAU,SAAc,GAAG;;;;;;;;;;;AChfjB,CAAA,MAAM,YAAY,GAAGnB;;CAErB,MAAM,UAAU,SAAS,YAAY,CAAC;GACpC,QAAQ,CAAC,GAAG;AACd,KAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB;AACrC;;GAEE,KAAK,CAAC,GAAG;AACX,KAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB;AACrC;;GAEE,OAAO,CAAC,GAAG;AACb,KAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB;AACrC;AACA;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;;AChBjB,CAAA,MAAM,UAAU,GAAGA,iBAAA;CACnB,MAAM;AACN,GAAE,oBAAoB;AACtB,GAAE,iBAAiB;GACjB;AACF,EAAC,GAAGD,eAAA;CACJ,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAGE,gBAAA;;AAEvD,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AACrC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;AAC/B,CAAA,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa;AACzC,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU;AACnC,CAAA,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB;;CAE1D,MAAM,cAAc,SAAS,UAAU,CAAC;GACtC,WAAW,CAAC,GAAG;AACjB,KAAI,KAAK;;AAET,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,YAAY,CAAC,GAAG;AACzB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG;AACtB;;GAEE,IAAI,SAAS,CAAC,GAAG;KACf,OAAO,IAAI,CAAC,UAAU;AAC1B;;GAEE,IAAI,MAAM,CAAC,GAAG;KACZ,OAAO,IAAI,CAAC,OAAO;AACvB;;GAEE,IAAI,YAAY,CAAC,GAAG;KAClB,OAAO,IAAI,CAAC,aAAa;AAC7B;;AAEA,GAAE,IAAI,YAAY,CAAC,CAAC,eAAe,EAAE;KACjC,IAAI,eAAe,EAAE;AACzB,OAAM,KAAK,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;SACpD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACjD,SAAQ,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AAC/C,WAAU,MAAM,IAAI,oBAAoB,CAAC,iCAAiC;AAC1E;AACA;AACA;;AAEA,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG;AAC1B;;AAEA,GAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACnB,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;OAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;SACtC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;WACxB,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;UACxC;QACF;AACP;;AAEA,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM,IAAI,oBAAoB,CAAC,kBAAkB;AACvD;;AAEA,KAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;OACpB,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,oBAAoB,EAAE,EAAE,IAAI,CAAC;OAC/D;AACN;;AAEA,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;AACvB,OAAM,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;AAC3B,SAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ;AACrC,QAAO,MAAM;SACL,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;AACjD;OACM;AACN;;AAEA,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB,KAAI,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ;;KAE7B,MAAM,QAAQ,GAAG,MAAM;AAC3B,OAAM,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AACtC,OAAM,IAAI,CAAC,SAAS,CAAC,GAAG;AACxB,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,SAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI;AAC/B;AACA;;AAEA;KACI,IAAI,CAAC,MAAM,CAAC;AAChB,QAAO,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACzB,IAAI,CAAC,MAAM;SACV,cAAc,CAAC,QAAQ;QACxB;AACP;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;AAC1B,KAAI,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACnC,OAAM,QAAQ,GAAG;AACjB,OAAM,GAAG,GAAG;AACZ;;AAEA,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;OAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;SACtC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;WAC/B,OAAO,GAAG,kDAAkD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;UACvF;QACF;AACP;;AAEA,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM,IAAI,oBAAoB,CAAC,kBAAkB;AACvD;;AAEA,KAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1B,OAAM,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AAC9B,SAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ;AACxC,QAAO,MAAM;SACL,cAAc,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;AACjD;OACM;AACN;;KAEI,IAAI,CAAC,GAAG,EAAE;OACR,GAAG,GAAG,IAAI,oBAAoB;AACpC;;AAEA,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;KACnB,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI;AAC/C,KAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,QAAQ;;KAEhC,MAAM,WAAW,GAAG,MAAM;AAC9B,OAAM,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY;AACzC,OAAM,IAAI,CAAC,YAAY,CAAC,GAAG;AAC3B,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,SAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI;AAC/B;AACA;;AAEA;KACI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM;OAC7B,cAAc,CAAC,WAAW;MAC3B;AACL;;AAEA,GAAE,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE;AACzC,KAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAClE,OAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,SAAS;OAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO;AAC1C;;KAEI,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI;AAC5C,KAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;OACxD,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;AAChD;AACA,KAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG;AACjC,KAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO;AACjC;;AAEA,GAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;KACvB,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACjD,OAAM,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAChE;;AAEA,KAAI,IAAI;OACF,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC7C,SAAQ,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;AAChE;;OAEM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;SAC1C,MAAM,IAAI,oBAAoB;AACtC;;AAEA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;SACjB,MAAM,IAAI,iBAAiB;AACnC;;OAEM,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,OAAO;MAChD,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE;AACjD,SAAQ,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC/D;;AAEA,OAAM,OAAO,CAAC,OAAO,CAAC,GAAG;;AAEzB,OAAM,OAAO;AACb;AACA;AACA;;AAEA,CAAA,cAAc,GAAG;;;;;;;;;;;AC7LjB,CAAA,MAAM,GAAG,GAAGD;AACZ,CAAA,MAAM,MAAM,GAAGD;AACf,CAAA,MAAM,IAAI,GAAGE,aAAA;AACb,CAAA,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAGC,eAAA;;AAEtD,CAAA,IAAI,IAAG;;AAEP;AACA;AACA;AACA;;CAEA,IAAI;AACJ;AACA;CACA,IAAIa,cAAM,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;AAClE,GAAE,YAAY,GAAG,MAAM,gBAAgB,CAAC;AACxC,KAAI,WAAW,CAAC,CAAC,iBAAiB,EAAE;OAC9B,IAAI,CAAC,kBAAkB,GAAG;AAChC,OAAM,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG;OAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAIA,cAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,KAAK;SAC/D,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;WACrD;AACV;;SAEQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG;SACtC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,SAAS,EAAE;AAC5D,WAAU,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG;AACvC;QACO;AACP;;AAEA,KAAI,GAAG,CAAC,CAAC,UAAU,EAAE;OACf,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU;AACnD,OAAM,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG;AACjC;;AAEA,KAAI,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE;AAC9B,OAAM,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;SACjC;AACR;;AAEA,OAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC;OACvD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;AACxD;AACA;AACA,EAAC,MAAM;AACP,GAAE,YAAY,GAAG,MAAM,kBAAkB,CAAC;AAC1C,KAAI,WAAW,CAAC,CAAC,iBAAiB,EAAE;OAC9B,IAAI,CAAC,kBAAkB,GAAG;AAChC,OAAM,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG;AAClC;;AAEA,KAAI,GAAG,CAAC,CAAC,UAAU,EAAE;AACrB,OAAM,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU;AAC9C;;AAEA,KAAI,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE;AAC9B,OAAM,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,EAAE;SACjC;AACR;;OAEM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC9D;AACA,SAAQ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI;AACnE,SAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS;AAC3C;;OAEM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO;AAChD;AACA;AACA;;AAEA,CAAA,SAAS,cAAc,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;AACvF,GAAE,IAAI,iBAAiB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,GAAG,CAAC,CAAC,EAAE;AACpG,KAAI,MAAM,IAAI,oBAAoB,CAAC,sDAAsD;AACzF;;GAEE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI;AAC7C,GAAE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,iBAAiB,IAAI,IAAI,GAAG,GAAG,GAAG,iBAAiB;AAC3F,GAAE,OAAO,GAAG,OAAO,IAAI,IAAI,GAAG,IAAI,GAAG;AACrC,GAAE,OAAO,GAAG,OAAO,IAAI,IAAI,GAAG,OAAO,GAAG;GACtC,OAAO,SAAS,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE;AAC/G,KAAI,IAAI;AACR,KAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;OACzB,IAAI,CAAC,GAAG,EAAE;AAChB,SAAQ,GAAG,GAAGP;AACd;AACA,OAAM,UAAU,GAAG,UAAU,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;;AAEnF,OAAM,MAAM,UAAU,GAAG,UAAU,IAAI;OACjC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;;OAEhD,MAAM,CAAC,UAAU;;AAEvB,OAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;SACnB,aAAa,EAAE,KAAK;AAC5B,SAAQ,GAAG,OAAO;AAClB,SAAQ,UAAU;AAClB,SAAQ,OAAO;AACf,SAAQ,YAAY;AACpB;AACA,SAAQ,aAAa,EAAE,OAAO,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;SAC1D,MAAM,EAAE,UAAU;AAC1B,SAAQ,IAAI,EAAE,IAAI,IAAI,GAAG;AACzB,SAAQ,IAAI,EAAE;QACP;;OAED;AACN,UAAS,EAAE,CAAC,SAAS,EAAE,UAAU,OAAO,EAAE;AAC1C;AACA,WAAU,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO;UACrC;AACT,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,CAAC,UAAU,EAAE,2CAA2C;AACrE,OAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;AAC3B,SAAQ,aAAa,EAAE,EAAE,GAAG,IAAI;AAChC,SAAQ,GAAG,OAAO;AAClB,SAAQ,YAAY;AACpB,SAAQ,IAAI,EAAE,IAAI,IAAI,EAAE;AACxB,SAAQ,IAAI,EAAE;QACP;AACP;;AAEA;KACI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;AACxD,OAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;AACjG,OAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,qBAAqB;AACrD;;KAEI,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO;;KAE1E;QACG,UAAU,CAAC,IAAI;QACf,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,eAAe,GAAG,SAAS,EAAE,YAAY;AAC7E,SAAQ,aAAa;;SAEb,IAAI,QAAQ,EAAE;WACZ,MAAM,EAAE,GAAG;AACrB,WAAU,QAAQ,GAAG;AACrB,WAAU,EAAE,CAAC,IAAI,EAAE,IAAI;AACvB;QACO;AACP,QAAO,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;AAClC,SAAQ,aAAa;;SAEb,IAAI,QAAQ,EAAE;WACZ,MAAM,EAAE,GAAG;AACrB,WAAU,QAAQ,GAAG;WACX,EAAE,CAAC,GAAG;AAChB;QACO;;AAEP,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,SAAS,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE;GAChD,IAAI,CAAC,OAAO,EAAE;AAChB,KAAI,OAAO,MAAM;AACjB;;GAEE,IAAI,EAAE,GAAG;GACT,IAAI,EAAE,GAAG;AACX,GAAE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;AACrC;AACA,KAAI,EAAE,GAAG,YAAY,CAAC,MAAM;AAC5B,OAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACxC;AACA,SAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,gBAAgB,EAAE;AAClD,QAAO,MAAM;AACb,SAAQ,gBAAgB;AACxB;MACK;AACL,IAAG,EAAE,OAAO;AACZ,GAAE,OAAO,MAAM;KACX,YAAY,CAAC,SAAS;KACtB,cAAc,CAAC,EAAE;KACjB,cAAc,CAAC,EAAE;AACrB;AACA;;CAEA,SAAS,gBAAgB,EAAE,MAAM,EAAE;GACjC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,mBAAmB,EAAE;AAChD;;AAEA,CAAA,OAAc,GAAG;;;;;;;;;;;;;AC3LjB,CAAA,MAAM,CAAC,cAAc,CAACX,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAiBA,OAAA,CAAA,SAAA,GAAG,MAAM;CAC1B,SAAS,SAAS,CAAC,GAAG,EAAE;KACpB,MAAM,GAAG,GAAG,EAAE;KACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACtC,SAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;AAC9B,SAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACvC,aAAY,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAC5B;AACA,MAAK,CAAC;AACN,KAAI,OAAO,GAAG;AACd;AACA,CAAAA,OAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B;;;;;;;;;;ECbA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,eAAA,GAA0B,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,sBAAA,GAAiC,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,GAAA,GAAc,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,eAAA,GAA0B,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,GAAA,GAAc,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,OAAA,GAAkB,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,MAAA,GAAiB,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,OAAA,GAAkB,OAAwB,CAAA,aAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAe,CAAA,IAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,MAAM;EACxkB,MAAM,OAAO,GAAGG,cAAkB,EAAA;EAGlC,CAAC,UAAU,KAAK,EAAE;MACd,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;MAC7B,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;MACzC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;MACrC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;MAC/C,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,2BAA2B;MAC3E,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB;MAC3D,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;MACrD,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa;MAC/C,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;MACzD,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB;MACvD,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAG,sBAAsB;MAClE,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,GAAG,wBAAwB;MACtE,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,GAAG,oBAAoB;MAC9D,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB;MACtD,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,mBAAmB;MAC5D,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,GAAG,2BAA2B;MAC5E,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,GAAG,kBAAkB;MAC1D,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB;MAChE,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,GAAG,qBAAqB;MAChE,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,iBAAiB;MACxD,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,mBAAmB;MAC5D,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MACtC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB;MACtD,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,mBAAmB;MAC5D,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;GACrC,EAAU,OAAO,CAAC,KAAK,KAAK,OAAA,CAAA,KAAA,GAAgB,EAAE,CAAC,CAAC;EAEjD,CAAC,UAAU,IAAI,EAAE;MACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;GAC1C,EAAS,OAAO,CAAC,IAAI,KAAK,OAAA,CAAA,IAAA,GAAe,EAAE,CAAC,CAAC;EAE9C,CAAC,UAAU,KAAK,EAAE;MACd,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,uBAAuB;MACnE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;MACzD,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB;MAC7D,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACvC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS;MACxC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB;MACtD,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC1C,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;AAC/C;MACI,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC,GAAG,mBAAmB;GAChE,EAAU,OAAO,CAAC,KAAK,KAAK,OAAA,CAAA,KAAA,GAAgB,EAAE,CAAC,CAAC;EAEjD,CAAC,UAAU,aAAa,EAAE;MACtB,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACvD,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;MACrE,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;GAChE,EAAkB,OAAO,CAAC,aAAa,KAAK,OAAA,CAAA,aAAA,GAAwB,EAAE,CAAC,CAAC;AACzE,EAAA,IAAI,OAAO;EACX,CAAC,UAAU,OAAO,EAAE;MAChB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;MACzC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;MACnC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MACrC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MACrC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACvC;MACI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MAC3C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MAC3C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;AAC3C;MACI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MACrC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MACrC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;MACxC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;MACtC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW;MAChD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAC1C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAC1C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;MACtC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAC1C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAC1C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK;AACxC;MACI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAC1C,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,YAAY;MAClD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;AAC5C;MACI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;MAC1C,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,WAAW;MAChD,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,GAAG,aAAa;AACxD;MACI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;MACxC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;AAC5C;MACI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,YAAY;AACtD;MACI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;MACtC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;AAC9C;MACI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;AAC9C;MACI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK;AACxC;MACI,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;MACxC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM;MACtC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;MACxC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;MACxD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,GAAG,eAAe;MACxD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU;MAC9C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ;AAC9C;MACI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;GAC3C,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,OAAA,CAAA,OAAA,GAAkB,EAAE,CAAC,CAAC;EACvD,OAAuB,CAAA,YAAA,GAAA;MACnB,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,GAAG;MACX,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,GAAG;MACX,OAAO,CAAC,OAAO;MACf,OAAO,CAAC,OAAO;MACf,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,QAAQ;MAChB,OAAO,CAAC,SAAS;MACjB,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,GAAG;MACX,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,UAAU;MAClB,OAAO,CAAC,QAAQ;MAChB,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,UAAU,CAAC;MACnB,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,SAAS;MACjB,OAAO,CAAC,WAAW;MACnB,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,UAAU;MAClB,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,GAAG;AACf;MACI,OAAO,CAAC,MAAM;GACjB;EACD,OAAsB,CAAA,WAAA,GAAA;MAClB,OAAO,CAAC,MAAM;GACjB;EACD,OAAuB,CAAA,YAAA,GAAA;MACnB,OAAO,CAAC,OAAO;MACf,OAAO,CAAC,QAAQ;MAChB,OAAO,CAAC,QAAQ;MAChB,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,IAAI;MACZ,OAAO,CAAC,KAAK;MACb,OAAO,CAAC,QAAQ;MAChB,OAAO,CAAC,aAAa;MACrB,OAAO,CAAC,aAAa;MACrB,OAAO,CAAC,QAAQ;MAChB,OAAO,CAAC,MAAM;MACd,OAAO,CAAC,KAAK;AACjB;MACI,OAAO,CAAC,GAAG;MACX,OAAO,CAAC,IAAI;GACf;AACD,EAAA,OAAA,CAAA,UAAA,GAAqB,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;AAC/C,EAAA,OAAA,CAAA,YAAA,GAAuB,EAAE;AACzB,EAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACjD,MAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACxB,UAAQ,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;AAC3D;AACA,GAAC,CAAC;EAEF,CAAC,UAAU,MAAM,EAAE;MACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;MACnC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc;MACnD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;GAC1C,EAAW,OAAO,CAAC,MAAM,KAAK,OAAA,CAAA,MAAA,GAAiB,EAAE,CAAC,CAAC;AACpD,EAAA,OAAA,CAAA,KAAA,GAAgB,EAAE;EAClB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D;AACA,MAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA,MAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD;EACA,OAAkB,CAAA,OAAA,GAAA;AAClB,MAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChC,MAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;GAC/B;EACD,OAAkB,CAAA,OAAA,GAAA;AAClB,MAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChC,MAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;MAC5B,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;MAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;GACjD;EACD,OAAc,CAAA,GAAA,GAAA;AACd,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;GACnD;EACD,OAAmB,CAAA,QAAA,GAAA,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACpD,EAAA,OAAA,CAAA,IAAA,GAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7D,EAAA,OAAA,CAAA,cAAA,GAAyB,OAAO,CAAC;AACjC,OAAK,MAAM,CAAC,OAAO,CAAC,IAAI;AACxB,OAAK,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrD;EACA,OAA0B,CAAA,eAAA,GAAA;MACtB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;AACjC,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;MACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;MACvB,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACjC,MAAI,GAAG;AACP,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACtB,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1B,EAAA,OAAA,CAAA,QAAA,GAAmB,OAAO,CAAC;AAC3B,OAAK,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzB;EACA,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,MAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;EACA,OAAuB,CAAA,YAAA,GAAA;MACnB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;AACjC,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACtB,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG;MACb,GAAG,EAAE,GAAG;AACZ,GAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;EAC1B,OAAgB,CAAA,KAAA,GAAA,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD;AACA;AACA;AACA;EACA,OAAuB,CAAA,YAAA,GAAA,CAAC,IAAI,CAAC;EAC7B,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;AAChC,MAAI,IAAI,CAAC,KAAK,GAAG,EAAE;AACnB,UAAQ,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC;AACA;AACA;AACA,EAAA,OAAA,CAAA,sBAAA,GAAiC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;EAC7E,OAAgB,CAAA,KAAA,GAAA,OAAO,CAAC,OAAO;EAC/B,OAAgB,CAAA,KAAA,GAAA,OAAO,CAAC,KAAK;AAC7B,EAAA,IAAI,YAAY;EAChB,CAAC,UAAU,YAAY,EAAE;MACrB,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACrD,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;MAC3D,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB;MACnE,YAAY,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB;MACzE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACrD,YAAY,CAAC,YAAY,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,uBAAuB;MACjF,YAAY,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB;MACvE,YAAY,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,oBAAoB;MAC3E,YAAY,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,2BAA2B;GAC5F,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,KAAK,OAAA,CAAA,YAAA,GAAuB,EAAE,CAAC,CAAC;EACtE,OAA0B,CAAA,eAAA,GAAA;AAC1B,MAAI,YAAY,EAAE,YAAY,CAAC,UAAU;AACzC,MAAI,gBAAgB,EAAE,YAAY,CAAC,cAAc;AACjD,MAAI,kBAAkB,EAAE,YAAY,CAAC,UAAU;AAC/C,MAAI,mBAAmB,EAAE,YAAY,CAAC,iBAAiB;AACvD,MAAI,SAAS,EAAE,YAAY,CAAC,OAAO;GAClC;AACD;;;;;;;;;;;;ACnRA,CAAA,MAAM,IAAI,GAAGA,aAAA;CACb,MAAM,EAAE,SAAS,EAAE,GAAGD,gBAAA;AACtB,CAAA,MAAM,MAAM,GAAGE;CACf,MAAM,EAAE,oBAAoB,EAAE,GAAGC,eAAA;AACjC,CAAA,MAAM,EAAE,GAAG;;AAEX,CAAA,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;;AAE7D,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;;AAE3B,CAAA,MAAM,iBAAiB,CAAC;AACxB,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG;AAClB,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG;AACtB;;AAEA,GAAE,SAAS,MAAM,CAAC,aAAa,EAAE,GAAG;KAChC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW;AACxC,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG;KAClB,QAAQ,IAAI,CAAC,KAAK;AACtB;AACA;;AAEA,CAAA,MAAM,eAAe,CAAC;GACpB,WAAW,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;AACzD,KAAI,IAAI,eAAe,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE;AAChG,OAAM,MAAM,IAAI,oBAAoB,CAAC,2CAA2C;AAChF;;AAEA,KAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO;;KAEvD,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC,GAAE;KAC3C,IAAI,CAAC,eAAe,GAAG;KACvB,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,OAAO,GAAG;;KAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACvC;AACA;AACA;AACA,OAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACzC,IAAI,CAAC,IAAI,CAAC;AAClB,YAAW,EAAE,CAAC,MAAM,EAAE,YAAY;aACtB,MAAM,CAAC,KAAK;YACb;AACX;;OAEM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;SACvD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG;AACpC,SAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY;AACjE,WAAU,IAAI,CAAC,SAAS,CAAC,GAAG;UACnB;AACT;AACA,MAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9E;AACA;AACA;AACA,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AAC3D,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI;AACpB,OAAM,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;OAClC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;OACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;OAC9B;AACN;AACA;AACA,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AAC3D;AACA;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE;KAChB,IAAI,CAAC,KAAK,GAAG;AACjB,KAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AAC3D;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;KACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM;AACtD;;AAEA,GAAE,OAAO,CAAC,CAAC,KAAK,EAAE;AAClB,KAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;AAC9B;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;KAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;SAC1F;AACR,SAAQ,aAAa,CAAC,UAAU,EAAE,OAAO;;AAEzC,KAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;OACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE;;AAEA,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxB,OAAM,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;AAC3E;;AAEA,KAAI,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5I,KAAI,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;;AAEnD;AACA;AACA;KACI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;AAC9G,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;AACrB,KAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AACvB,KAAI,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG;AAChC,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;;AAEtB;AACA;AACA,KAAI,IAAI,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AAC3D,OAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;AACzB,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;AACvB;AACA;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAkBlB,MAAM;AACX,OAAM,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;AACtC;AACA;;AAEA,GAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;AACxB,KAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB;AACA;;AAEA;AACA;;AAEA;AACA;;OAEM,IAAI,CAAC,QAAQ,GAAG;OAChB,IAAI,CAAC,KAAK,GAAG;;OAEb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;AACnC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ;AACtC;AACA;;AAEA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE;AACrB,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AACjC,OAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;AACnC;AACA;AACA;;AAEA,CAAA,SAAS,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE;GAC3C,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE;AAC1D,KAAI,OAAO;AACX;;AAEA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9C,KAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC5D,OAAM,OAAO,OAAO,CAAC,CAAC,GAAG,CAAC;AAC1B;AACA;AACA;;AAEA;AACA,CAAA,SAAS,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE;AACnE,GAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,KAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK;AAC/C;AACA,GAAE,IAAI,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;AAC/E,KAAI,OAAO;AACX;GACE,IAAI,aAAa,KAAK,MAAM,CAAC,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE;AAC9F,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM;KAC3C,OAAO,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK;AACrE;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE;GACnE,MAAM,GAAG,GAAG;AACd,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,OAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE;AACzE,SAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA;IACG,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;KACjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;OACtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE;SAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAClC;AACA;AACA,IAAG,MAAM;AACT,KAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,uCAAuC;AACnE;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,iBAAc,GAAG;;;;;;;;;;;AC1NjB,CAAA,MAAM,eAAe,GAAGF,sBAAA;;AAExB,CAAA,SAAS,yBAAyB,EAAE,EAAE,eAAe,EAAE,sBAAsB,EAAE,EAAE;GAC/E,OAAO,CAAC,QAAQ,KAAK;AACvB,KAAI,OAAO,SAAS,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;AAC9C,OAAM,MAAM,EAAE,eAAe,GAAG,sBAAsB,EAAE,GAAG;;OAErD,IAAI,CAAC,eAAe,EAAE;AAC5B,SAAQ,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO;AACrC;;AAEA,OAAM,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO;OACpF,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC,GAAE;AAC5C,OAAM,OAAO,QAAQ,CAAC,IAAI,EAAE,eAAe;AAC3C;AACA;AACA;;AAEA,CAAA,mBAAc,GAAG;;;;;;;;;;ACpBjB,CAAA,UAAc,GAAG;;;;;;;;;;ACAjB,CAAA,eAAc,GAAG;;;;;;;;;;;ACIjB;;AAEA,CAAA,MAAM,MAAM,GAAGA;AACf,CAAA,MAAM,GAAG,GAAGD;AACZ,CAAA,MAAM,IAAI,GAAG;CACb,MAAM,EAAE,QAAQ,EAAE,GAAGG;AACrB,CAAA,MAAM,IAAI,GAAGM,aAAA;AACb,CAAA,MAAM,MAAM,GAAGC,aAAA;AACf,CAAA,MAAM,OAAO,GAAGN,gBAAA;AAChB,CAAA,MAAM,cAAc,GAAGO,qBAAA;CACvB,MAAM;AACN,GAAE,iCAAiC;AACnC,GAAE,kCAAkC;AACpC,GAAE,oBAAoB;AACtB,GAAE,mBAAmB;AACrB,GAAE,mBAAmB;AACrB,GAAE,oBAAoB;AACtB,GAAE,WAAW;AACb,GAAE,kBAAkB;AACpB,GAAE,gBAAgB;AAClB,GAAE,eAAe;AACjB,GAAE,4BAA4B;GAC5B;AACF,EAAC,GAAGM,eAAA;AACJ,CAAA,MAAM,cAAc,GAAGL,cAAA;CACvB,MAAM;AACN,GAAE,IAAI;AACN,GAAE,MAAM;AACR,GAAE,WAAW;AACb,GAAE,OAAO;AACT,GAAE,KAAK;AACP,GAAE,OAAO;AACT,GAAE,QAAQ;AACV,GAAE,SAAS;AACX,GAAE,SAAS;AACX,GAAE,QAAQ;AACV,GAAE,QAAQ;AACV,GAAE,KAAK;AACP,GAAE,QAAQ;AACV,GAAE,MAAM;AACR,GAAE,UAAU;AACZ,GAAE,WAAW;AACb,GAAE,UAAU;AACZ,GAAE,MAAM;AACR,GAAE,wBAAwB;AAC1B,GAAE,WAAW;AACb,GAAE,WAAW;AACb,GAAE,WAAW;AACb,GAAE,MAAM;AACR,GAAE,WAAW;AACb,GAAE,OAAO;AACT,GAAE,sBAAsB;AACxB,GAAE,eAAe;AACjB,GAAE,oBAAoB;AACtB,GAAE,0BAA0B;AAC5B,GAAE,eAAe;AACjB,GAAE,YAAY;AACd,GAAE,oBAAoB;AACtB,GAAE,UAAU;AACZ,GAAE,gBAAgB;AAClB,GAAE,YAAY;AACd,GAAE,QAAQ;AACV,GAAE,MAAM;AACR,GAAE,QAAQ;AACV,GAAE,SAAS;AACX,GAAE,aAAa;AACf,GAAE,aAAa;AACf,GAAE,gBAAgB;AAClB,GAAE,gBAAgB;AAClB;AACA,GAAE,KAAK;AACP,GAAE,aAAa;AACf,GAAE,kBAAkB;AACpB,GAAE,kBAAkB;AACpB,GAAE,iBAAiB;GACjB;AACF,EAAC,GAAGC,gBAAA;;AAEJ;CACA,IAAI;CACJ,IAAI;GACF,KAAK,GAAG,OAAA,CAAQ,OAAO;AACzB,EAAC,CAAC,MAAM;AACR;AACA,GAAE,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE;AACzB;;CAEA,MAAM;AACN,GAAE,SAAS,EAAE;AACb,KAAI,sBAAsB;AAC1B,KAAI,mBAAmB;AACvB,KAAI,iBAAiB;AACrB,KAAI,mBAAmB;AACvB,KAAI,2BAA2B;AAC/B,KAAI,mBAAmB;KACnB;AACJ;AACA,EAAC,GAAG;;AAEJ;AACA,CAAA,IAAI,oBAAoB,GAAG;;AAE3B,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO;;AAExC,CAAA,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB;;AAE9C,CAAA,MAAM,QAAQ,GAAG;;CAEjB,IAAI;AACJ,GAAE,MAAM,kBAAkB,GAAG,OAAA,CAAQ,qBAAqB;GACxD,QAAQ,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,2BAA2B;GAC7E,QAAQ,CAAC,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,6BAA6B;GACjF,QAAQ,CAAC,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,4BAA4B;GAC/E,QAAQ,CAAC,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,yBAAyB;AAC3E,EAAC,CAAC,MAAM;AACR,GAAE,QAAQ,CAAC,WAAW,GAAG,EAAE,cAAc,EAAE,KAAK;AAChD,GAAE,QAAQ,CAAC,aAAa,GAAG,EAAE,cAAc,EAAE,KAAK;AAClD,GAAE,QAAQ,CAAC,YAAY,GAAG,EAAE,cAAc,EAAE,KAAK;AACjD,GAAE,QAAQ,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,KAAK;AAC9C;;AAEA;AACA;AACA;CACA,MAAM,MAAM,SAAS,cAAc,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,CAAC,GAAG,EAAE;AACpB,KAAI,YAAY;AAChB,KAAI,aAAa;AACjB,KAAI,cAAc;AAClB,KAAI,aAAa;AACjB,KAAI,cAAc;AAClB,KAAI,cAAc;AAClB,KAAI,WAAW;AACf,KAAI,WAAW;AACf,KAAI,SAAS;AACb,KAAI,gBAAgB;AACpB,KAAI,mBAAmB;AACvB,KAAI,mBAAmB;AACvB,KAAI,yBAAyB;AAC7B,KAAI,UAAU;AACd,KAAI,UAAU;AACd,KAAI,GAAG;AACP,KAAI,mBAAmB;AACvB,KAAI,iBAAiB;AACrB,KAAI,eAAe;AACnB,KAAI,OAAO;AACX,KAAI,oBAAoB;AACxB,KAAI,YAAY;AAChB,KAAI,eAAe;AACnB,KAAI,gBAAgB;AACpB,KAAI,8BAA8B;AAClC;AACA,KAAI,OAAO;KACP;IACD,GAAG,EAAE,EAAE;AACV,KAAI,KAAK;;AAET,KAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AACjC,OAAM,MAAM,IAAI,oBAAoB,CAAC,iDAAiD;AACtF;;AAEA,KAAI,IAAI,aAAa,KAAK,SAAS,EAAE;AACrC,OAAM,MAAM,IAAI,oBAAoB,CAAC,qEAAqE;AAC1G;;AAEA,KAAI,IAAI,cAAc,KAAK,SAAS,EAAE;AACtC,OAAM,MAAM,IAAI,oBAAoB,CAAC,sEAAsE;AAC3G;;AAEA,KAAI,IAAI,WAAW,KAAK,SAAS,EAAE;AACnC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uDAAuD;AAC5F;;AAEA,KAAI,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,kEAAkE;AACvG;;AAEA,KAAI,IAAI,aAAa,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAClE,OAAM,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC5D;;KAEI,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAC9D,OAAM,MAAM,IAAI,oBAAoB,CAAC,oBAAoB;AACzD;;AAEA,KAAI,IAAI,cAAc,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE;AAC5F,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D;;AAEA,KAAI,IAAI,gBAAgB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC,CAAC,EAAE;AACnG,OAAM,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC/D;;AAEA,KAAI,IAAI,mBAAmB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,IAAI,CAAC,CAAC,EAAE;AAC5G,OAAM,MAAM,IAAI,oBAAoB,CAAC,6BAA6B;AAClE;;AAEA,KAAI,IAAI,yBAAyB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE;AAC1F,OAAM,MAAM,IAAI,oBAAoB,CAAC,mCAAmC;AACxE;;AAEA,KAAI,IAAI,cAAc,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE;AAC7F,OAAM,MAAM,IAAI,oBAAoB,CAAC,mDAAmD;AACxF;;AAEA,KAAI,IAAI,WAAW,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;AACpF,OAAM,MAAM,IAAI,oBAAoB,CAAC,gDAAgD;AACrF;;AAEA,KAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzF,OAAM,MAAM,IAAI,oBAAoB,CAAC,yCAAyC;AAC9E;;AAEA,KAAI,IAAI,eAAe,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE;AAChG,OAAM,MAAM,IAAI,oBAAoB,CAAC,2CAA2C;AAChF;;AAEA,KAAI,IAAI,oBAAoB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,GAAG,CAAC,CAAC,EAAE;AAC/G,OAAM,MAAM,IAAI,oBAAoB,CAAC,gDAAgD;AACrF;;AAEA,KAAI,IAAI,YAAY,IAAI,IAAI,KAAK,OAAO,YAAY,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;AACpG,OAAM,MAAM,IAAI,oBAAoB,CAAC,8CAA8C;AACnF;;AAEA,KAAI,IAAI,eAAe,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,EAAE,CAAC,EAAE;AACjG,OAAM,MAAM,IAAI,oBAAoB,CAAC,2CAA2C;AAChF;;KAEI;OACE,8BAA8B,IAAI,IAAI;QACrC,CAAC,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAAC,IAAI,8BAA8B,GAAG,EAAE;OACzF;AACN,OAAM,MAAM,IAAI,oBAAoB,CAAC,0DAA0D;AAC/F;;AAEA;KACI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;AACzD,OAAM,MAAM,IAAI,oBAAoB,CAAC,uCAAuC;AAC5E;;AAEA,KAAI,IAAI,oBAAoB,IAAI,IAAI,KAAK,OAAO,oBAAoB,KAAK,QAAQ,IAAI,oBAAoB,GAAG,CAAC,CAAC,EAAE;AAChH,OAAM,MAAM,IAAI,oBAAoB,CAAC,kEAAkE;AACvG;;AAEA,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;OACjC,OAAO,GAAG,cAAc,CAAC;AAC/B,SAAQ,GAAG,GAAG;AACd,SAAQ,iBAAiB;AACzB,SAAQ,OAAO;AACf,SAAQ,UAAU;SACV,OAAO,EAAE,cAAc;AAC/B,SAAQ,IAAI,IAAI,CAAC,uBAAuB,IAAI,gBAAgB,GAAG,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,GAAG,SAAS,CAAC;AAChI,SAAQ,GAAG;QACJ;AACP;;AAEA,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM;AAClG,SAAQ,YAAY,CAAC;AACrB,SAAQ,CAAC,yBAAyB,CAAC,EAAE,eAAe,EAAE,CAAC;KACnD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG;AACrC,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;KAChB,IAAI,CAAC,WAAW,CAAC,GAAG,UAAU,IAAI,IAAI,GAAG,UAAU,GAAG;KACtD,IAAI,CAAC,eAAe,CAAC,GAAG,aAAa,IAAI,IAAI,CAAC;KAC9C,IAAI,CAAC,wBAAwB,CAAC,GAAG,gBAAgB,IAAI,IAAI,GAAG,GAAG,GAAG;KAClE,IAAI,CAAC,oBAAoB,CAAC,GAAG,mBAAmB,IAAI,IAAI,GAAG,KAAK,GAAG;KACnE,IAAI,CAAC,0BAA0B,CAAC,GAAG,yBAAyB,IAAI,IAAI,GAAG,GAAG,GAAG;AACjF,KAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,wBAAwB;AAChE,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;KACpB,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,IAAI,IAAI,GAAG,YAAY,GAAG;AAChE,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAC;AACvB,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC;AACxB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;KACpG,IAAI,CAAC,YAAY,CAAC,GAAG,WAAW,IAAI,IAAI,GAAG,WAAW,GAAG;KACzD,IAAI,CAAC,eAAe,CAAC,GAAG,cAAc,IAAI,IAAI,GAAG,cAAc,GAAG;KAClE,IAAI,CAAC,oBAAoB,CAAC,GAAG,mBAAmB,IAAI,IAAI,GAAG,IAAI,GAAG;AACtE,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG;AAC7B,KAAI,IAAI,CAAC,YAAY,CAAC,GAAG;AACzB,KAAI,IAAI,CAAC,cAAc,CAAC,GAAG;AAC3B,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,eAAe,GAAG,EAAE,GAAG,eAAe,GAAG;AACtE,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG;;AAE7B;AACA,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG;AAC1B,KAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;SACxB;SACA;AACR;WACU,WAAW,EAAE,CAAC;WACd,oBAAoB,EAAE,oBAAoB,IAAI,IAAI,GAAG,oBAAoB,GAAG,GAAG;AACzF;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB;;GAEE,IAAI,UAAU,CAAC,GAAG;KAChB,OAAO,IAAI,CAAC,WAAW;AAC3B;;AAEA,GAAE,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE;AACzB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,KAAI,MAAM,CAAC,IAAI,EAAE,IAAI;AACrB;;GAEE,KAAK,QAAQ,EAAE,GAAG;KAChB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW;AACjD;;GAEE,KAAK,QAAQ,EAAE,GAAG;KAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW;AAC/C;;GAEE,KAAK,KAAK,EAAE,GAAG;KACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW;AACjD;;GAEE,KAAK,UAAU,EAAE,GAAG;AACtB,KAAI,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE;;GAEE,KAAK,KAAK,EAAE,GAAG;AACjB,KAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;KAC3B;AACJ,OAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;AAC1E,QAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,OAAM,IAAI,CAAC,QAAQ,CAAC,GAAG;AACvB;AACA;;AAEA;AACA,GAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;KACd,OAAO,CAAC,IAAI;AAChB,KAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;AAC3B;;AAEA,GAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE;KAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE7C,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK;SACvC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;SACjD,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;;AAEzD,KAAI,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AAC7B,KAAI,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAEpB,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvF;AACA,OAAM,IAAI,CAAC,SAAS,CAAC,GAAG;AACxB,OAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;AACnC,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,IAAI,EAAE,IAAI;AACvB;;AAEA,KAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AAClE,OAAM,IAAI,CAAC,UAAU,CAAC,GAAG;AACzB;;AAEA,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG;AAC9B;;GAEE,OAAO,MAAM,EAAE,GAAG;AACpB;AACA;AACA,KAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,OAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SAChB,OAAO,CAAC,IAAI;AACpB,QAAO,MAAM;AACb,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG;AAC/B;MACK;AACL;;AAEA,GAAE,OAAO,QAAQ,EAAE,CAAC,GAAG,EAAE;AACzB,KAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpC,OAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5D,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChD,SAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC;AAClC,SAAQ,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG;AACvC;;OAEM,MAAM,QAAQ,GAAG,MAAM;AAC7B,SAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE;AAClC;WACU,IAAI,CAAC,cAAc,CAAC;AAC9B,WAAU,IAAI,CAAC,cAAc,CAAC,GAAG;AACjC;AACA,SAAQ,OAAO;AACf;;AAEA,OAAM,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;SAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,GAAG;AAC7C,SAAQ,IAAI,CAAC,aAAa,CAAC,GAAG;AAC9B,SAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG;AACnC;;AAEA,OAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;SAClB,cAAc,CAAC,QAAQ;AAC/B,QAAO,MAAM;AACb,SAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG;AAC7D;;OAEM,MAAM,CAAC,IAAI;MACZ;AACL;AACA;;CAEA,SAAS,mBAAmB,EAAE,GAAG,EAAE;AACnC,GAAE,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,8BAA8B;;AAEpD,GAAE,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG;;AAE1B,GAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;AAC5B;;AAEA,CAAA,SAAS,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5C,GAAE,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;;AAEjG,GAAE,IAAI,EAAE,KAAK,CAAC,EAAE;AAChB,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG;AAC5B,KAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;AAC9B;AACA;;AAEA,CAAA,SAAS,iBAAiB,IAAI;GAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,mBAAmB,CAAC;AACzD,GAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,WAAW,CAAC,mBAAmB,CAAC;AAClE;;CAEA,SAAS,aAAa,EAAE,IAAI,EAAE;AAC9B,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;GAC3B,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;AACxF,GAAE,MAAM,CAAC,OAAO,CAAC,GAAG;AACpB,GAAE,MAAM,CAAC,aAAa,CAAC,GAAG;;AAE1B,GAAE,IAAI,MAAM,CAAC,SAAS,EAAE;AACxB,KAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAE/B;AACA,KAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,OAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC;AAChC,OAAM,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG;AACrC;IACG,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACnC;KACI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;;AAE5C,KAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACrC;;AAEA,GAAE,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW;;AAE1C,GAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAE/B,GAAE,MAAM,CAAC,IAAI,CAAC,YAAY;KACtB,MAAM,CAAC,IAAI,CAAC;KACZ,CAAC,MAAM,CAAC;KACR;AACJ;;GAEE,MAAM,CAAC,MAAM;AACf;;AAEA,CAAA,MAAM,SAAS,GAAGQ,kBAAA;AAClB,CAAA,MAAM,yBAAyB,GAAGC,0BAAA;AAClC,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;;AAEhC,CAAA,eAAe,UAAU,IAAI;GAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,GAAGC,iBAAA,EAAkC,GAAG;;AAE3F,GAAE,IAAI;AACN,GAAE,IAAI;AACN,KAAI,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAACC,sBAAuC,EAAA,EAAE,QAAQ,CAAC;IAC/F,CAAC,OAAO,CAAC,EAAE;AACd;;AAEA;AACA;AACA;AACA;AACA,KAAI,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAID,iBAAkC,EAAA,EAAE,QAAQ,CAAC;AAC/G;;AAEA,GAAE,OAAO,MAAM,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE;AAC5C,KAAI,GAAG,EAAE;AACT;;OAEM,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;AACnC;AACA,SAAQ,OAAO;QACR;OACD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;SAC9B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SACvC,MAAM,KAAK,GAAG,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC/D,SAAQ,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI;QACvF;AACP,OAAM,qBAAqB,EAAE,CAAC,CAAC,KAAK;SAC5B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AAC/C,SAAQ,OAAO,aAAa,CAAC,cAAc,EAAE,IAAI;QAC1C;OACD,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;SACpC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SACvC,MAAM,KAAK,GAAG,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC/D,SAAQ,OAAO,aAAa,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI;QAC5F;OACD,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;SACpC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SACvC,MAAM,KAAK,GAAG,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC/D,SAAQ,OAAO,aAAa,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI;QAC5F;OACD,wBAAwB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,KAAK;SACrE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AAC/C,SAAQ,OAAO,aAAa,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI;QACnG;OACD,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK;SAC5B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SACvC,MAAM,KAAK,GAAG,EAAE,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC/D,SAAQ,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI;QACrF;AACP,OAAM,wBAAwB,EAAE,CAAC,CAAC,KAAK;SAC/B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AAC/C,SAAQ,OAAO,aAAa,CAAC,iBAAiB,EAAE,IAAI;AACpD;;AAEA;AACA;IACG;AACH;;AAEA,CAAA,IAAI,cAAc,GAAG;CACrB,IAAI,aAAa,GAAG,UAAU;AAC9B,CAAA,aAAa,CAAC,KAAK;;AAEnB,CAAA,IAAI,aAAa,GAAG;AACpB,CAAA,IAAI,gBAAgB,GAAG;AACvB,CAAA,IAAI,iBAAiB,GAAG;AACxB,CAAA,IAAI,gBAAgB,GAAG;;AAEvB,CAAA,MAAM,eAAe,GAAG;AACxB,CAAA,MAAM,YAAY,GAAG;AACrB,CAAA,MAAM,YAAY,GAAG;;AAErB,CAAA,MAAM,MAAM,CAAC;GACX,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE;AAC5C,KAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;;KAE9E,IAAI,CAAC,MAAM,GAAG;AAClB,KAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ;KAC3D,IAAI,CAAC,MAAM,GAAG;KACd,IAAI,CAAC,MAAM,GAAG;KACd,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,YAAY,GAAG;KACpB,IAAI,CAAC,WAAW,GAAG;KACnB,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,WAAW,GAAG;AACvB,KAAI,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,eAAe;KAC5C,IAAI,CAAC,eAAe,GAAG;KACvB,IAAI,CAAC,MAAM,GAAG;KACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;;KAEnC,IAAI,CAAC,SAAS,GAAG;;KAEjB,IAAI,CAAC,SAAS,GAAG;KACjB,IAAI,CAAC,aAAa,GAAG;KACrB,IAAI,CAAC,UAAU,GAAG;AACtB,KAAI,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,gBAAgB;AAClD;;AAEA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE;KACvB,IAAI,CAAC,WAAW,GAAG;AACvB,KAAI,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;AACrC,OAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO;OAChC,IAAI,KAAK,EAAE;AACjB,SAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI;AACrE;AACA,SAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,WAAU,IAAI,CAAC,OAAO,CAAC,KAAK;AAC5B;AACA,QAAO,MAAM;SACL,IAAI,CAAC,OAAO,GAAG;AACvB;OACM,IAAI,CAAC,YAAY,GAAG;AAC1B,MAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B;AACA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChC,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO;AAC5B;AACA;AACA;;GAEE,MAAM,CAAC,GAAG;KACR,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;OACzC;AACN;;AAEA,KAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;AAC3B,KAAI,MAAM,CAAC,aAAa,IAAI,IAAI;;KAE5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG;;AAEtC,KAAI,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,YAAY;AAC5C,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB;AACA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChC,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO;AAC5B;AACA;;KAEI,IAAI,CAAC,MAAM,GAAG;AAClB,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,EAAC;KAC7C,IAAI,CAAC,QAAQ;AACjB;;GAEE,QAAQ,CAAC,GAAG;KACV,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;AACrC,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AACpC,OAAM,IAAI,KAAK,KAAK,IAAI,EAAE;SAClB;AACR;AACA,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK;AACxB;AACA;;AAEA,GAAE,OAAO,CAAC,CAAC,IAAI,EAAE;AACjB,KAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;AAC3B,KAAI,MAAM,CAAC,aAAa,IAAI,IAAI;AAChC,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM;;AAEvB,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;;AAE/B,KAAI,IAAI,IAAI,CAAC,MAAM,GAAG,iBAAiB,EAAE;OACnC,IAAI,gBAAgB,EAAE;AAC5B,SAAQ,MAAM,CAAC,IAAI,CAAC,gBAAgB;AACpC;AACA,OAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG;AAC1D,OAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB;AACxD;;AAEA,KAAI,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,IAAI;;AAEtF;AACA;AACA;AACA;AACA,KAAI,IAAI;AACR,OAAM,IAAI;;AAEV,OAAM,IAAI;AACV,SAAQ,gBAAgB,GAAG;AAC3B,SAAQ,aAAa,GAAG;AACxB,SAAQ,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM;AAC3E;QACO,CAAC,OAAO,GAAG,EAAE;AACpB;AACA,SAAQ,MAAM;AACd,QAAO,SAAS;AAChB,SAAQ,aAAa,GAAG;AACxB,SAAQ,gBAAgB,GAAG;AAC3B;;OAEM,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;;OAEvD,IAAI,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE;SAC1C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;SACzC,IAAI,CAAC,MAAM,GAAG;SACd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE;SACrC,MAAM,GAAG,GAAG,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG;SACnD,IAAI,OAAO,GAAG;AACtB;SACQ,IAAI,GAAG,EAAE;AACjB,WAAU,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACzE,WAAU,OAAO;AACjB,aAAY,iDAAiD;AAC7D,aAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;aACtD;AACZ;AACA,SAAQ,MAAM,IAAI,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACnF;MACK,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;AAC9B;AACA;;GAEE,OAAO,CAAC,GAAG;AACb,KAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI;AAC3B,KAAI,MAAM,CAAC,aAAa,IAAI,IAAI;;KAE5B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;KAChC,IAAI,CAAC,GAAG,GAAG;;AAEf,KAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO;KAChC,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,YAAY,GAAG;KACpB,IAAI,CAAC,WAAW,GAAG;;KAEnB,IAAI,CAAC,MAAM,GAAG;AAClB;;AAEA,GAAE,QAAQ,CAAC,CAAC,GAAG,EAAE;AACjB,KAAI,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ;AAClC;;GAEE,cAAc,CAAC,GAAG;AACpB,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;;AAE/B;AACA,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,OAAM,OAAO;AACb;;KAEI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,IAAI,CAAC,OAAO,EAAE;AAClB,OAAM,OAAO;AACb;AACA;;AAEA,GAAE,aAAa,CAAC,CAAC,GAAG,EAAE;AACtB,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;;AAE7B,KAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;AACzB,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;AAC3B,MAAK,MAAM;OACL,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AACxE;;AAEA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM;AAC/B;;AAEA,GAAE,aAAa,CAAC,CAAC,GAAG,EAAE;AACtB,KAAI,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;;AAE3B,KAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE;AACzB,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;AAC3B,OAAM,GAAG,IAAI;AACb,MAAK,MAAM;OACL,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;AACxE;;KAEI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;AACpC,KAAI,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AAC5E,OAAM,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ;AACpC,MAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AACnF,OAAM,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ;AACrC,MAAK,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,gBAAgB,EAAE;AACvF,OAAM,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ;AACxC;;AAEA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM;AAC/B;;AAEA,GAAE,WAAW,CAAC,CAAC,GAAG,EAAE;KAChB,IAAI,CAAC,WAAW,IAAI;KACpB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;OAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,oBAAoB,EAAE;AAC1D;AACA;;AAEA,GAAE,SAAS,CAAC,CAAC,IAAI,EAAE;AACnB,KAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG;;KAEzD,MAAM,CAAC,OAAO;;KAEd,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,MAAM,CAAC,OAAO;;AAElB,KAAI,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS;AAC5B,KAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC;AACrC,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM;KACnB,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;;KAEtD,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,eAAe,GAAG;;KAEvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;KACpC,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,WAAW,GAAG;;AAEvB,KAAI,MAAM,CAAC,OAAO,CAAC,IAAI;;AAEvB,KAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO;AAC3B,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;;AAEtB,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;AACtB,KAAI,MAAM,CAAC,MAAM,CAAC,GAAG;KACjB;AACJ,QAAO,cAAc,CAAC,OAAO,EAAE,aAAa;AAC5C,QAAO,cAAc,CAAC,UAAU,EAAE,gBAAgB;AAClD,QAAO,cAAc,CAAC,KAAK,EAAE,WAAW;AACxC,QAAO,cAAc,CAAC,OAAO,EAAE,aAAa;;AAE5C,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;KAClB,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;AAC5C,KAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,kBAAkB,CAAC,SAAS,CAAC;;AAEvF,KAAI,IAAI;OACF,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM;MAC9C,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;AAC9B;;KAEI,MAAM,CAAC,MAAM;AACjB;;GAEE,iBAAiB,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE;KACvD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG;;AAEpD;AACA,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,OAAM,OAAO;AACb;;KAEI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;;AAEtD;KACI,IAAI,CAAC,OAAO,EAAE;AAClB,OAAM,OAAO;AACb;;AAEA,KAAI,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO;AACxB,KAAI,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG;;AAEhC,KAAI,IAAI,UAAU,KAAK,GAAG,EAAE;AAC5B,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACtF,OAAM,OAAO;AACb;;AAEA;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACrC,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACrF,OAAM,OAAO;AACb;;KAEI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe;;KAEpD,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,eAAe;AACxB,OAAM,eAAe;AACrB;AACA,QAAO,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,YAAY;AACrG;;AAEA,KAAI,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;AAChC,OAAM,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI;AACjD,WAAU,OAAO,CAAC;WACR,MAAM,CAAC,YAAY;AAC7B,OAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY;AAC/C,MAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B;AACA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChC,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO;AAC5B;AACA;;AAEA,KAAI,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;AACtC,OAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;OAC7B,IAAI,CAAC,OAAO,GAAG;AACrB,OAAM,OAAO;AACb;;KAEI,IAAI,OAAO,EAAE;AACjB,OAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;OAC7B,IAAI,CAAC,OAAO,GAAG;AACrB,OAAM,OAAO;AACb;;KAEI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;KACpC,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,WAAW,GAAG;;KAEnB,IAAI,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;AACrD,OAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG;;AAE7F,OAAM,IAAI,gBAAgB,IAAI,IAAI,EAAE;AACpC,SAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG;AAChC,WAAU,gBAAgB,GAAG,MAAM,CAAC,0BAA0B,CAAC;WACrD,MAAM,CAAC,oBAAoB;AACrC;AACA,SAAQ,IAAI,OAAO,IAAI,CAAC,EAAE;AAC1B,WAAU,MAAM,CAAC,MAAM,CAAC,GAAG;AAC3B,UAAS,MAAM;AACf,WAAU,MAAM,CAAC,sBAAsB,CAAC,GAAG;AAC3C;AACA,QAAO,MAAM;AACb,SAAQ,MAAM,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,wBAAwB;AACxE;AACA,MAAK,MAAM;AACX;AACA,OAAM,MAAM,CAAC,MAAM,CAAC,GAAG;AACvB;;AAEA,KAAI,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK;;AAEtF,KAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;AACnC,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;AAC1B,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;AAC3B,OAAM,MAAM,CAAC,SAAS,CAAC,GAAG;OACpB,MAAM,CAAC,MAAM;AACnB;;KAEI,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG;AAC5C;;AAEA,GAAE,MAAM,CAAC,CAAC,GAAG,EAAE;KACX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG;;AAE5D,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,OAAM,OAAO;AACb;;KAEI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,MAAM,CAAC,OAAO;;KAEd,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY;AACrD,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB;AACA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAChC,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO;AAC5B;AACA;;AAEA,KAAI,MAAM,CAAC,UAAU,IAAI,GAAG;;AAE5B,KAAI,IAAI,eAAe,GAAG,EAAE,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,GAAG,eAAe,EAAE;OACzE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,4BAA4B,EAAE;AAC7D,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;;KAEtB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;AACvC,OAAM,OAAO,SAAS,CAAC,KAAK,CAAC;AAC7B;AACA;;GAEE,iBAAiB,CAAC,GAAG;AACvB,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG;;KAEpG,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,UAAU,IAAI,eAAe,CAAC,EAAE;AAC9D,OAAM,OAAO;AACb;;KAEI,IAAI,OAAO,EAAE;OACX;AACN;;KAEI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,MAAM,CAAC,OAAO;;AAElB,KAAI,MAAM,CAAC,UAAU,IAAI,GAAG;;KAExB,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,SAAS,GAAG;KACjB,IAAI,CAAC,aAAa,GAAG;KACrB,IAAI,CAAC,SAAS,GAAG;KACjB,IAAI,CAAC,UAAU,GAAG;;KAElB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;KACpC,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,WAAW,GAAG;;AAEvB,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;OACpB;AACN;;AAEA;AACA,KAAI,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,aAAa,IAAI,SAAS,KAAK,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE;OAC3F,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kCAAkC,EAAE;AACnE,OAAM,OAAO;AACb;;AAEA,KAAI,OAAO,CAAC,UAAU,CAAC,OAAO;;KAE1B,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;;AAE5C,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;OACpB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5C;OACM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC;AAC1D,OAAM,OAAO,SAAS,CAAC,KAAK,CAAC;AAC7B,MAAK,MAAM,IAAI,CAAC,eAAe,EAAE;OAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC;AAC1D,OAAM,OAAO,SAAS,CAAC,KAAK,CAAC;AAC7B,MAAK,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACzD;AACA;AACA;AACA;OACM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC;AAC1D,OAAM,OAAO,SAAS,CAAC,KAAK,CAAC;MACxB,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC1C;AACA;AACA;AACA,OAAM,YAAY,CAAC,MAAM,EAAE,MAAM;AACjC,MAAK,MAAM;OACL,MAAM,CAAC,MAAM;AACnB;AACA;AACA;;CAEA,SAAS,eAAe,EAAE,MAAM,EAAE;GAChC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG;;AAE1C;AACA,GAAE,IAAI,WAAW,KAAK,eAAe,EAAE;AACvC,KAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC/E,OAAM,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,4CAA4C;OACnE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,mBAAmB,EAAE;AACpD;AACA,IAAG,MAAM,IAAI,WAAW,KAAK,YAAY,EAAE;AAC3C,KAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;OAClB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,gBAAgB,EAAE;AACjD;AACA,IAAG,MAAM,IAAI,WAAW,KAAK,YAAY,EAAE;AAC3C,KAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,sBAAsB,CAAC;KAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,qBAAqB,CAAC;AACtE;AACA;;AAEA,CAAA,SAAS,gBAAgB,IAAI;AAC7B,GAAE,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG;GAC9B,IAAI,MAAM,EAAE;KACV,MAAM,CAAC,QAAQ;AACnB;AACA;;CAEA,SAAS,aAAa,EAAE,GAAG,EAAE;AAC7B,GAAE,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG;;AAEnD,GAAE,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,8BAA8B;;AAEpD,GAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;AACzC;AACA;AACA,KAAI,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACnF;OACM,MAAM,CAAC,iBAAiB;OACxB;AACN;AACA;;AAEA,GAAE,IAAI,CAAC,MAAM,CAAC,GAAG;;AAEjB,GAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG;AAC5B;;AAEA,CAAA,SAAS,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE;GAC7B;AACF,KAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1B,KAAI,GAAG,CAAC,IAAI,KAAK,cAAc;KAC3B,GAAG,CAAC,IAAI,KAAK;KACb;AACJ;AACA;;KAEI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC;;AAEtD,KAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,OAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC;AAChC,OAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACvC;AACA,KAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B;AACA;;AAEA,CAAA,SAAS,WAAW,IAAI;AACxB,GAAE,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG;;AAEnD,GAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;KACrC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACtD;OACM,MAAM,CAAC,iBAAiB;OACxB;AACN;AACA;;AAEA,GAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACnF;;AAEA,CAAA,SAAS,aAAa,IAAI;AAC1B,GAAE,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG;;GAEjD,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,MAAM,EAAE;AACnD,KAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACvE;OACM,MAAM,CAAC,iBAAiB;AAC9B;;AAEA,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO;AACzB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB;;AAEA,GAAE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;AAEhF,GAAE,MAAM,CAAC,OAAO,CAAC,GAAG;;AAEpB,GAAE,IAAI,MAAM,CAAC,SAAS,EAAE;AACxB,KAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAEjC;AACA,KAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9D,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,OAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC;AAChC,OAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACvC;AACA,IAAG,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE;AAClE;KACI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;KAClD,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG;;AAE5C,KAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACrC;;AAEA,GAAE,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,WAAW;;AAE1C,GAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAE/B,GAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG;;GAErD,MAAM,CAAC,MAAM;AACf;;CAEA,eAAe,OAAO,EAAE,MAAM,EAAE;AAChC,GAAE,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAC7B,GAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;;AAEzB,GAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI;;AAEtD;AACA,GAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC3B,KAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG;;AAEpC,KAAI,MAAM,CAAC,GAAG,KAAK,EAAE;KACjB,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG;;AAExC,KAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,KAAI,QAAQ,GAAG;AACf;;AAEA,GAAE,MAAM,CAAC,WAAW,CAAC,GAAG;;AAExB,GAAE,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,EAAE;AAC7C,KAAI,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AACnC,OAAM,aAAa,EAAE;AACrB,SAAQ,IAAI;AACZ,SAAQ,QAAQ;AAChB,SAAQ,QAAQ;AAChB,SAAQ,IAAI;AACZ,SAAQ,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;AACvC,SAAQ,YAAY,EAAE,MAAM,CAAC,aAAa;QACnC;AACP,OAAM,SAAS,EAAE,MAAM,CAAC,UAAU;MAC7B;AACL;;AAEA,GAAE,IAAI;KACF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC1D,OAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,SAAQ,IAAI;AACZ,SAAQ,QAAQ;AAChB,SAAQ,QAAQ;AAChB,SAAQ,IAAI;AACZ,SAAQ,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;AACvC,SAAQ,YAAY,EAAE,MAAM,CAAC,aAAa;AAC1C,QAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;SAClB,IAAI,GAAG,EAAE;WACP,MAAM,CAAC,GAAG;AACpB,UAAS,MAAM;WACL,OAAO,CAAC,MAAM;AACxB;QACO;MACF;;AAEL,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,oBAAoB,EAAE;OACrE;AACN;;AAEA,KAAI,MAAM,CAAC,WAAW,CAAC,GAAG;;KAEtB,MAAM,CAAC,MAAM;;AAEjB,KAAI,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,KAAK;KACrC,IAAI,IAAI,EAAE;OACR,IAAI,CAAC,oBAAoB,EAAE;AACjC,SAAQ,oBAAoB,GAAG;AAC/B,SAAQ,OAAO,CAAC,WAAW,CAAC,gEAAgE,EAAE;AAC9F,WAAU,IAAI,EAAE;UACP;AACT;;OAEM,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;SAC1C,gBAAgB,EAAE,MAAM,MAAM;AACtC,SAAQ,wBAAwB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD;;AAEP,OAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG;AACjC,OAAM,OAAO,CAAC,OAAO,CAAC,GAAG;AACzB,OAAM,OAAO,CAAC,OAAO,CAAC,GAAG;AACzB,OAAM,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB;AAC7C,OAAM,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB;AAChD,OAAM,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB;AACzC,OAAM,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa;AACxC,OAAM,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa;OACjC,OAAO,CAAC,KAAK;;AAEnB,OAAM,MAAM,CAAC,aAAa,CAAC,GAAG;AAC9B,OAAM,MAAM,CAAC,aAAa,CAAC,GAAG;AAC9B,MAAK,MAAM;OACL,IAAI,CAAC,cAAc,EAAE;SACnB,cAAc,GAAG,MAAM;AAC/B,SAAQ,aAAa,GAAG;AACxB;;AAEA,OAAM,MAAM,CAAC,MAAM,CAAC,GAAG;AACvB,OAAM,MAAM,CAAC,QAAQ,CAAC,GAAG;AACzB,OAAM,MAAM,CAAC,MAAM,CAAC,GAAG;AACvB,OAAM,MAAM,CAAC,SAAS,CAAC,GAAG;AAC1B,OAAM,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc;AACjE;;AAEA,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG;AACvB,KAAI,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,YAAY;AAC9C,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;AACtB,KAAI,MAAM,CAAC,MAAM,CAAC,GAAG;;KAEjB;AACJ,QAAO,EAAE,CAAC,OAAO,EAAE,aAAa;AAChC,QAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB;AACtC,QAAO,EAAE,CAAC,KAAK,EAAE,WAAW;AAC5B,QAAO,EAAE,CAAC,OAAO,EAAE,aAAa;;AAEhC,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;;AAEtB,KAAI,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE;AAC3C,OAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;AACjC,SAAQ,aAAa,EAAE;AACvB,WAAU,IAAI;AACd,WAAU,QAAQ;AAClB,WAAU,QAAQ;AAClB,WAAU,IAAI;AACd,WAAU,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;AACzC,WAAU,YAAY,EAAE,MAAM,CAAC,aAAa;UACnC;AACT,SAAQ,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;SAC7B;QACD;AACP;AACA,KAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IAC9C,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;OACpB;AACN;;AAEA,KAAI,MAAM,CAAC,WAAW,CAAC,GAAG;;AAE1B,KAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE;AAC9C,OAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;AACpC,SAAQ,aAAa,EAAE;AACvB,WAAU,IAAI;AACd,WAAU,QAAQ;AAClB,WAAU,QAAQ;AAClB,WAAU,IAAI;AACd,WAAU,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;AACzC,WAAU,YAAY,EAAE,MAAM,CAAC,aAAa;UACnC;AACT,SAAQ,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AACrC,SAAQ,KAAK,EAAE;QACR;AACP;;AAEA,KAAI,IAAI,GAAG,CAAC,IAAI,KAAK,8BAA8B,EAAE;AACrD,OAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;OAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,WAAW,CAAC,EAAE;AAC7G,SAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AAC5D,SAAQ,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACzC;AACA,MAAK,MAAM;AACX,OAAM,OAAO,CAAC,MAAM,EAAE,GAAG;AACzB;;AAEA,KAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG;AAC9D;;GAEE,MAAM,CAAC,MAAM;AACf;;CAEA,SAAS,SAAS,EAAE,MAAM,EAAE;AAC5B,GAAE,MAAM,CAAC,UAAU,CAAC,GAAG;AACvB,GAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;AAC7C;;AAEA,CAAA,SAAS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAC/B,GAAE,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;KAC3B;AACJ;;AAEA,GAAE,MAAM,CAAC,SAAS,CAAC,GAAG;;AAEtB,GAAE,OAAO,CAAC,MAAM,EAAE,IAAI;AACtB,GAAE,MAAM,CAAC,SAAS,CAAC,GAAG;;AAEtB,GAAE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,EAAE;AACjC,KAAI,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;AAChD,KAAI,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW;AAC7C,KAAI,MAAM,CAAC,WAAW,CAAC,GAAG;AAC1B;AACA;;AAEA,CAAA,SAAS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;GAC9B,OAAO,IAAI,EAAE;AACf,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,OAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;OAC7B;AACN;;KAEI,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;OAC5C,MAAM,CAAC,cAAc,CAAC;AAC5B,OAAM,MAAM,CAAC,cAAc,CAAC,GAAG;OACzB;AACN;;AAEA,KAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;;AAEjC,KAAI,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;AACrE,OAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;SACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE;WACnC,MAAM,CAAC,KAAK;AACtB,WAAU,MAAM,CAAC,MAAM,CAAC,GAAG;AAC3B;QACO,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE;SACvC,MAAM,CAAC,GAAG;AAClB,SAAQ,MAAM,CAAC,MAAM,CAAC,GAAG;AACzB;;AAEA,OAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;SACvB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,YAAY,EAAE;AAC1D,WAAU,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,YAAY;AACjF;AACA,QAAO,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,GAAG,EAAE;SACnE,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,eAAe,EAAE;WACnD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAC5D,WAAU,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI;AAC3D,eAAc,OAAO,CAAC;eACR,MAAM,CAAC,eAAe;WAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,eAAe;AACpE;AACA;AACA;;AAEA,KAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACvB,OAAM,MAAM,CAAC,UAAU,CAAC,GAAG;MACtB,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OACnC,IAAI,IAAI,EAAE;AAChB,SAAQ,MAAM,CAAC,UAAU,CAAC,GAAG;AAC7B,SAAQ,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;AAC1C,QAAO,MAAM;SACL,SAAS,CAAC,MAAM;AACxB;OACM;AACN;;AAEA,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;OAC1B;AACN;;AAEA,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;OAClD;AACN;;KAEI,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;;AAEtD,KAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,UAAU,EAAE;AAC1F,OAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;SACxB;AACR;;AAEA,OAAM,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;;OAE9B,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,EAAE;SACtD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,oBAAoB,CAAC;SACjE;AACR;AACA;;AAEA,KAAI,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;OACvB;AACN;;KAEI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;OACrC,OAAO,CAAC,MAAM;OACd;AACN;;AAEA,KAAI,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;OAC/E;AACN;;AAEA,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AACrD;AACA;AACA;OACM;AACN;;AAEA,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;AACnF;AACA;AACA;OACM;AACN;;AAEA,KAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACnE,QAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;OACM;AACN;;AAEA,KAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;OAC9C,MAAM,CAAC,WAAW,CAAC;AACzB,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;AAClD;AACA;AACA;;AAEA;CACA,SAAS,uBAAuB,EAAE,MAAM,EAAE;AAC1C,GAAE,OAAO,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK;AAC3G;;AAEA,CAAA,SAAS,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACjC,GAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;KACrC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO;KAC9C;AACJ;;AAEA,GAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG;;AAE1E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,cAAc;KAClB,MAAM,KAAK,KAAK;KAChB,MAAM,KAAK,MAAM;AACrB,KAAI,MAAM,KAAK;AACf;;GAEE,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACf;;AAEA,GAAE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;;GAEvC,IAAI,aAAa,GAAG;;AAEtB,GAAE,IAAI,aAAa,KAAK,IAAI,EAAE;KAC1B,aAAa,GAAG,OAAO,CAAC;AAC5B;;AAEA,GAAE,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9C;AACA;AACA;AACA;;AAEA,KAAI,aAAa,GAAG;AACpB;;AAEA;AACA;GACE,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,EAAE;AACzI,KAAI,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE;OAChC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,iCAAiC,EAAE;AAC3E,OAAM,OAAO;AACb;;AAEA,KAAI,OAAO,CAAC,WAAW,CAAC,IAAI,iCAAiC,EAAE;AAC/D;;AAEA,GAAE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;;AAE/B,GAAE,IAAI;AACN,KAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;OACzB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;SACxC;AACR;;OAEM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,mBAAmB,EAAE;;OAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,CAAC,SAAS,CAAC;MACvD;IACF,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACrC;;AAEA,GAAE,IAAI,OAAO,CAAC,OAAO,EAAE;AACvB,KAAI,OAAO;AACX;;AAEA,GAAE,IAAI,MAAM,KAAK,MAAM,EAAE;AACzB;AACA;AACA;;AAEA,KAAI,MAAM,CAAC,MAAM,CAAC,GAAG;AACrB;;AAEA,GAAE,IAAI,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE;AACvC;AACA;;AAEA,KAAI,MAAM,CAAC,MAAM,CAAC,GAAG;AACrB;;AAEA,GAAE,IAAI,KAAK,IAAI,IAAI,EAAE;AACrB,KAAI,MAAM,CAAC,MAAM,CAAC,GAAG;AACrB;;AAEA,GAAE,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE;AAC1E,KAAI,MAAM,CAAC,MAAM,CAAC,GAAG;AACrB;;GAEE,IAAI,QAAQ,EAAE;AAChB,KAAI,MAAM,CAAC,SAAS,CAAC,GAAG;AACxB;;GAEE,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa;;AAE9C,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI;AAChC,IAAG,MAAM;AACT,KAAI,MAAM,IAAI,MAAM,CAAC,WAAW;AAChC;;GAEE,IAAI,OAAO,EAAE;AACf,KAAI,MAAM,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI;AAC7D,IAAG,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AACrD,KAAI,MAAM,IAAI;AACd,IAAG,MAAM;AACT,KAAI,MAAM,IAAI;AACd;;GAEE,IAAI,OAAO,EAAE;AACf,KAAI,MAAM,IAAI;AACd;;AAEA,GAAE,IAAI,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE;AAC3C,KAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AACrE;;AAEA;AACA,GAAE,IAAI,CAAC,IAAI,IAAI,UAAU,KAAK,CAAC,EAAE;AACjC,KAAI,IAAI,aAAa,KAAK,CAAC,EAAE;OACvB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,QAAQ;AACjE,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE,sCAAsC;OACrE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ;AAC5C;KACI,OAAO,CAAC,aAAa;IACtB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;KAC9B,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,EAAE,sCAAsC;;KAEhF,MAAM,CAAC,IAAI;AACf,KAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ;AAC9E,KAAI,MAAM,CAAC,KAAK,CAAC,IAAI;KACjB,MAAM,CAAC,MAAM;AACjB,KAAI,OAAO,CAAC,UAAU,CAAC,IAAI;KACvB,OAAO,CAAC,aAAa;KACrB,IAAI,CAAC,cAAc,EAAE;AACzB,OAAM,MAAM,CAAC,MAAM,CAAC,GAAG;AACvB;IACG,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACpC,KAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;OACrC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;AAC3G,MAAK,MAAM;AACX,OAAM,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;AACxF;IACG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClC,KAAI,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;IACrF,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACpC,KAAI,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;AAC1F,IAAG,MAAM;KACL,MAAM,CAAC,KAAK;AAChB;;AAEA,GAAE,OAAO;AACT;;AAEA,CAAA,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;GAC1C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG;;AAE7F,GAAE,IAAI;AACN,GAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE;AAC5F,QAAO,OAAO,GAAG;;GAEf,IAAI,OAAO,EAAE;KACX,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3E,KAAI,OAAO;AACX;;AAEA,GAAE,IAAI;AACN;AACA,KAAI,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;OACzB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;SACxC;AACR;;OAEM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,mBAAmB,EAAE;MAC/D;IACF,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;AACrC;;AAEA,GAAE,IAAI,OAAO,CAAC,OAAO,EAAE;AACvB,KAAI,OAAO;AACX;;AAEA;AACA,GAAE,IAAI;AACN,GAAE,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB;;GAEzC,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK;AACxD,GAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG;;AAEjC,GAAE,IAAI,MAAM,KAAK,SAAS,EAAE;KACxB,OAAO,CAAC,GAAG;AACf;AACA;AACA;AACA;AACA,KAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;;KAE9D,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;OAChC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM;OACpC,EAAE,OAAO,CAAC;AAChB,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;SACzB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM;SACpC,EAAE,OAAO,CAAC;QACX;AACP;;AAEA,KAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;OACzB,OAAO,CAAC,WAAW,IAAI;AAC7B;OACM,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK;MAC7C;;AAEL,KAAI,OAAO;AACX;;AAEA;AACA;;AAEA,GAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;AAC/B,GAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAE,MAAM,cAAc;KAClB,MAAM,KAAK,KAAK;KAChB,MAAM,KAAK,MAAM;AACrB,KAAI,MAAM,KAAK;AACf;;GAEE,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC/C;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACf;;AAEA,GAAE,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;;AAE1C,GAAE,IAAI,aAAa,IAAI,IAAI,EAAE;KACzB,aAAa,GAAG,OAAO,CAAC;AAC5B;;AAEA,GAAE,IAAI,aAAa,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9C;AACA;AACA;AACA;;AAEA,KAAI,aAAa,GAAG;AACpB;;AAEA;AACA;GACE,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,EAAE;AACxI,KAAI,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE;OAChC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,iCAAiC,EAAE;AAC3E,OAAM,OAAO;AACb;;AAEA,KAAI,OAAO,CAAC,WAAW,CAAC,IAAI,iCAAiC,EAAE;AAC/D;;AAEA,GAAE,IAAI,aAAa,IAAI,IAAI,EAAE;AAC7B,KAAI,MAAM,CAAC,IAAI,EAAE,sCAAsC;KACnD,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;AAC5D;;GAEE,OAAO,CAAC,GAAG;;GAEX,MAAM,eAAe,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK;GACvD,IAAI,cAAc,EAAE;AACtB,KAAI,OAAO,CAAC,mBAAmB,CAAC,GAAG;AACnC,KAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE;;AAE5E,KAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW;AACvC,IAAG,MAAM;AACT,KAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;OAChC,SAAS,EAAE,eAAe;OAC1B;MACD;AACL,KAAI,WAAW;AACf;;AAEA;GACE,EAAE,OAAO,CAAC;;AAEZ,GAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI;KACjC,MAAM,EAAE,CAAC,mBAAmB,GAAG,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG;;KAE9D,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE;OAChG,MAAM,CAAC,KAAK;AAClB;IACG;;AAEH,GAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;AAC3B,KAAI,OAAO,CAAC,UAAU,CAAC,EAAE;IACtB;;GAED,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;KAC3B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;OACnC,MAAM,CAAC,KAAK;AAClB;IACG;;AAEH,GAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;KACzB,OAAO,CAAC,WAAW,IAAI;AAC3B;AACA,KAAI,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE;OAC7B,OAAO,CAAC,KAAK;AACnB;IACG;;GAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;KAClC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;OAChG,OAAO,CAAC,OAAO,IAAI;AACzB,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;AAC9B;IACG;;GAED,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK;AAC5C,KAAI,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,CAAC,qCAAqC,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnG,KAAI,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;;KAEjC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;OAChG,OAAO,CAAC,OAAO,IAAI;AACzB,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;AAC9B;IACG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAE,OAAO;;GAEP,SAAS,WAAW,IAAI;AAC1B;KACI,IAAI,CAAC,IAAI,EAAE;OACT,OAAO,CAAC,aAAa;MACtB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;OAC9B,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,EAAE,sCAAsC;OAChF,MAAM,CAAC,IAAI;AACjB,OAAM,MAAM,CAAC,KAAK,CAAC,IAAI;OACjB,MAAM,CAAC,MAAM;OACb,MAAM,CAAC,GAAG;AAChB,OAAM,OAAO,CAAC,UAAU,CAAC,IAAI;OACvB,OAAO,CAAC,aAAa;MACtB,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACtC,OAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;AAC7C,SAAQ,aAAa,CAAC;AACtB,WAAU,MAAM;AAChB,WAAU,OAAO;AACjB,WAAU,aAAa;WACb,QAAQ,EAAE,MAAM;AAC1B,WAAU,cAAc;AACxB,WAAU,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;AAC7B,WAAU,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACjC,WAAU,MAAM,EAAE;UACT;AACT,QAAO,MAAM;AACb,SAAQ,SAAS,CAAC;AAClB,WAAU,IAAI;AACd,WAAU,MAAM;AAChB,WAAU,OAAO;AACjB,WAAU,aAAa;AACvB,WAAU,cAAc;WACd,QAAQ,EAAE,MAAM;WAChB,MAAM,EAAE,EAAE;AACpB,WAAU,MAAM,EAAE,MAAM,CAAC,OAAO;UACvB;AACT;MACK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpC,OAAM,WAAW,CAAC;AAClB,SAAQ,IAAI;AACZ,SAAQ,MAAM;AACd,SAAQ,OAAO;AACf,SAAQ,aAAa;AACrB,SAAQ,cAAc;AACtB,SAAQ,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;SACvB,QAAQ,EAAE,MAAM;AACxB,SAAQ,MAAM,EAAE;QACT;MACF,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACtC,OAAM,aAAa,CAAC;AACpB,SAAQ,IAAI;AACZ,SAAQ,MAAM;AACd,SAAQ,OAAO;AACf,SAAQ,aAAa;AACrB,SAAQ,cAAc;SACd,MAAM,EAAE,EAAE;SACV,QAAQ,EAAE,MAAM;AACxB,SAAQ,MAAM,EAAE,MAAM,CAAC,OAAO;QACvB;AACP,MAAK,MAAM;OACL,MAAM,CAAC,KAAK;AAClB;AACA;AACA;;AAEA,CAAA,SAAS,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;AAC1G,GAAE,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,iCAAiC;;AAEzF,GAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;AACzC;KACI,MAAM,IAAI,GAAG,QAAQ;AACzB,OAAM,IAAI;AACV,OAAM,QAAQ;OACR,CAAC,GAAG,KAAK;SACP,IAAI,GAAG,EAAE;AACjB,WAAU,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;AAChC,WAAU,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG;AACpC,UAAS,MAAM;WACL,OAAO,CAAC,aAAa;AAC/B;AACA;AACA;;AAEA,KAAI,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU;AAC9B,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;AAC3B,OAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU;AAC5C,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI;MAClB;;AAEL,KAAI,SAAS,UAAU,EAAE,KAAK,EAAE;AAChC,OAAM,OAAO,CAAC,UAAU,CAAC,KAAK;AAC9B;;KAEI;AACJ;;GAEE,IAAI,QAAQ,GAAG;;AAEjB,GAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;;AAEnG,GAAE,MAAM,MAAM,GAAG,UAAU,KAAK,EAAE;KAC9B,IAAI,QAAQ,EAAE;OACZ;AACN;;AAEA,KAAI,IAAI;AACR,OAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;SACtC,IAAI,CAAC,KAAK;AAClB;MACK,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;AAC5B;AACA;GACE,MAAM,OAAO,GAAG,YAAY;KAC1B,IAAI,QAAQ,EAAE;OACZ;AACN;;AAEA,KAAI,IAAI,IAAI,CAAC,MAAM,EAAE;OACf,IAAI,CAAC,MAAM;AACjB;AACA;GACE,MAAM,OAAO,GAAG,YAAY;KAC1B,IAAI,QAAQ,EAAE;OACZ;AACN;AACA,KAAI,MAAM,GAAG,GAAG,IAAI,mBAAmB;AACvC,KAAI,cAAc,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC;AACxC;AACA,GAAE,MAAM,UAAU,GAAG,UAAU,GAAG,EAAE;KAChC,IAAI,QAAQ,EAAE;OACZ;AACN;;AAEA,KAAI,QAAQ,GAAG;;AAEf,KAAI,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;KAEtE;AACJ,QAAO,GAAG,CAAC,OAAO,EAAE,OAAO;AAC3B,QAAO,GAAG,CAAC,OAAO,EAAE,UAAU;;KAE1B;AACJ,QAAO,cAAc,CAAC,MAAM,EAAE,MAAM;AACpC,QAAO,cAAc,CAAC,KAAK,EAAE,UAAU;AACvC,QAAO,cAAc,CAAC,OAAO,EAAE,UAAU;AACzC,QAAO,cAAc,CAAC,OAAO,EAAE,OAAO;;KAElC,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,IAAI;SACF,MAAM,CAAC,GAAG;QACX,CAAC,OAAO,EAAE,EAAE;AACnB,SAAQ,GAAG,GAAG;AACd;AACA;;AAEA,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;;AAEtB,KAAI,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE;AACzE,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;AAC5B,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI;AACvB;AACA;;GAEE;AACF,MAAK,EAAE,CAAC,MAAM,EAAE,MAAM;AACtB,MAAK,EAAE,CAAC,KAAK,EAAE,UAAU;AACzB,MAAK,EAAE,CAAC,OAAO,EAAE,UAAU;AAC3B,MAAK,EAAE,CAAC,OAAO,EAAE,OAAO;;AAExB,GAAE,IAAI,IAAI,CAAC,MAAM,EAAE;KACf,IAAI,CAAC,MAAM;AACf;;GAEE;AACF,MAAK,EAAE,CAAC,OAAO,EAAE,OAAO;AACxB,MAAK,EAAE,CAAC,OAAO,EAAE,UAAU;AAC3B;;AAEA,CAAA,eAAe,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;GAC5G,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,oCAAoC;;AAE1E,GAAE,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK;AAC5C,GAAE,IAAI;KACF,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE;OACxD,MAAM,IAAI,iCAAiC;AACjD;;KAEI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;;KAEnD,IAAI,IAAI,EAAE;OACR,QAAQ,CAAC,IAAI;AACnB,OAAM,QAAQ,CAAC,KAAK,CAAC,MAAM;OACrB,QAAQ,CAAC,MAAM;AACrB,MAAK,MAAM;OACL,MAAM,CAAC,IAAI;AACjB,OAAM,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ;AAChF,OAAM,MAAM,CAAC,KAAK,CAAC,MAAM;OACnB,MAAM,CAAC,MAAM;AACnB;;AAEA,KAAI,OAAO,CAAC,UAAU,CAAC,MAAM;KACzB,OAAO,CAAC,aAAa;;KAErB,IAAI,CAAC,cAAc,EAAE;AACzB,OAAM,MAAM,CAAC,MAAM,CAAC,GAAG;AACvB;;KAEI,MAAM,CAAC,MAAM;IACd,CAAC,OAAO,GAAG,EAAE;KACZ,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,GAAG,MAAM,EAAE,GAAG;AAC9C;AACA;;AAEA,CAAA,eAAe,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;AAClH,GAAE,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,mCAAmC;;GAEzF,IAAI,QAAQ,GAAG;GACf,SAAS,OAAO,IAAI;KAClB,IAAI,QAAQ,EAAE;OACZ,MAAM,EAAE,GAAG;AACjB,OAAM,QAAQ,GAAG;AACjB,OAAM,EAAE;AACR;AACA;;GAEE,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC9D,KAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;;AAE5B,KAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;AACxB,OAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AAC3B,MAAK,MAAM;AACX,OAAM,QAAQ,GAAG;AACjB;IACG;;AAEH,GAAE,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;KACrC;AACJ,QAAO,EAAE,CAAC,OAAO,EAAE,OAAO;AAC1B,QAAO,EAAE,CAAC,OAAO,EAAE,OAAO;;AAE1B,KAAI,IAAI;AACR;AACA,OAAM,WAAW,MAAM,KAAK,IAAI,IAAI,EAAE;AACtC,SAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;WAClB,MAAM,MAAM,CAAC,MAAM;AAC7B;;AAEA,SAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK;AACxC,SAAQ,OAAO,CAAC,UAAU,CAAC,KAAK;SACxB,IAAI,CAAC,GAAG,EAAE;AAClB,WAAU,MAAM,YAAY;AAC5B;AACA;MACK,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;AAC1B,MAAK,SAAS;OACR,OAAO,CAAC,aAAa;OACrB,QAAQ,CAAC,GAAG;OACZ;AACN,UAAS,GAAG,CAAC,OAAO,EAAE,OAAO;AAC7B,UAAS,GAAG,CAAC,OAAO,EAAE,OAAO;AAC7B;;KAEI;AACJ;;GAEE;AACF,MAAK,EAAE,CAAC,OAAO,EAAE,OAAO;AACxB,MAAK,EAAE,CAAC,OAAO,EAAE,OAAO;;AAExB,GAAE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;AACnG,GAAE,IAAI;AACN;AACA,KAAI,WAAW,MAAM,KAAK,IAAI,IAAI,EAAE;AACpC,OAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;SAClB,MAAM,MAAM,CAAC,MAAM;AAC3B;;OAEM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAChC,SAAQ,MAAM,YAAY;AAC1B;AACA;;KAEI,MAAM,CAAC,GAAG;IACX,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;AACtB,IAAG,SAAS;KACR;AACJ,QAAO,GAAG,CAAC,OAAO,EAAE,OAAO;AAC3B,QAAO,GAAG,CAAC,OAAO,EAAE,OAAO;AAC3B;AACA;;AAEA,CAAA,MAAM,WAAW,CAAC;AAClB,GAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE;KAC/E,IAAI,CAAC,MAAM,GAAG;KACd,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,aAAa,GAAG;KACrB,IAAI,CAAC,MAAM,GAAG;KACd,IAAI,CAAC,YAAY,GAAG;KACpB,IAAI,CAAC,cAAc,GAAG;KACtB,IAAI,CAAC,MAAM,GAAG;;AAElB,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG;AACvB;;AAEA,GAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChB,KAAI,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG;;AAE7F,KAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;OAClB,MAAM,MAAM,CAAC,MAAM;AACzB;;AAEA,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;AAC1B,OAAM,OAAO;AACb;;AAEA,KAAI,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK;KACnC,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,OAAO;AACb;;AAEA;KACI,IAAI,aAAa,KAAK,IAAI,IAAI,YAAY,GAAG,GAAG,GAAG,aAAa,EAAE;AACtE,OAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE;SAChC,MAAM,IAAI,iCAAiC;AACnD;;AAEA,OAAM,OAAO,CAAC,WAAW,CAAC,IAAI,iCAAiC,EAAE;AACjE;;KAEI,MAAM,CAAC,IAAI;;AAEf,KAAI,IAAI,YAAY,KAAK,CAAC,EAAE;OACtB,IAAI,CAAC,cAAc,EAAE;AAC3B,SAAQ,MAAM,CAAC,MAAM,CAAC,GAAG;AACzB;;AAEA,OAAM,IAAI,aAAa,KAAK,IAAI,EAAE;SAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,8BAA8B,CAAC,EAAE,QAAQ;AACxE,QAAO,MAAM;AACb,SAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ;AAClF;AACA;;AAEA,KAAI,IAAI,aAAa,KAAK,IAAI,EAAE;AAChC,OAAM,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ;AAC1D;;KAEI,IAAI,CAAC,YAAY,IAAI;;AAEzB,KAAI,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK;;KAE9B,MAAM,CAAC,MAAM;;AAEjB,KAAI,OAAO,CAAC,UAAU,CAAC,KAAK;;KAExB,IAAI,CAAC,GAAG,EAAE;AACd,OAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,eAAe,EAAE;AACtF;SACQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7C,WAAU,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO;AACzC;AACA;AACA;;AAEA,KAAI,OAAO;AACX;;GAEE,GAAG,CAAC,GAAG;AACT,KAAI,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;KACzF,OAAO,CAAC,aAAa;;AAEzB,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG;;AAEvB,KAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;OAClB,MAAM,MAAM,CAAC,MAAM;AACzB;;AAEA,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;OACpB;AACN;;AAEA,KAAI,IAAI,YAAY,KAAK,CAAC,EAAE;OACtB,IAAI,cAAc,EAAE;AAC1B;AACA;AACA;AACA;;SAEQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,yBAAyB,CAAC,EAAE,QAAQ;AACnE,QAAO,MAAM;SACL,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ;AAC9C;AACA,MAAK,MAAM,IAAI,aAAa,KAAK,IAAI,EAAE;AACvC,OAAM,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ;AAC5C;;KAEI,IAAI,aAAa,KAAK,IAAI,IAAI,YAAY,KAAK,aAAa,EAAE;AAClE,OAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,EAAE;SAChC,MAAM,IAAI,iCAAiC;AACnD,QAAO,MAAM;AACb,SAAQ,OAAO,CAAC,WAAW,CAAC,IAAI,iCAAiC,EAAE;AACnE;AACA;;AAEA,KAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,eAAe,EAAE;AACpF;OACM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;AAC3C,SAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO;AACvC;AACA;;KAEI,MAAM,CAAC,MAAM;AACjB;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;;AAE/B,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG;;KAEnB,IAAI,GAAG,EAAE;OACP,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,2CAA2C;AAC/E,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG;AAC9B;AACA;AACA;;AAEA,CAAA,SAAS,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;AAC7C,GAAE,IAAI;AACN,KAAI,OAAO,CAAC,OAAO,CAAC,GAAG;AACvB,KAAI,MAAM,CAAC,OAAO,CAAC,OAAO;IACvB,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG;AAC5B;AACA;;AAEA,CAAA,MAAc,GAAG;;;;;;;;;;;;;ACtuEjB;;AAEA;CACA,MAAM,KAAK,GAAG,IAAI;AAClB,CAAA,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAA,MAAM,mBAAmB,CAAC;AAC1B,GAAE,WAAW,GAAG;AAChB,KAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AACnB,KAAI,IAAI,CAAC,GAAG,GAAG,CAAC;KACZ,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;AAChC,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB;;AAEA,GAAE,OAAO,GAAG;AACZ,KAAI,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM;AACnC;;AAEA,GAAE,MAAM,GAAG;AACX,KAAI,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM;AACnD;;GAEE,IAAI,CAAC,IAAI,EAAE;KACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;KAC1B,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK;AACrC;;AAEA,GAAE,KAAK,GAAG;KACN,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;KACvC,IAAI,QAAQ,KAAK,SAAS;AAC9B,OAAM,OAAO,IAAI;KACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS;KAClC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK;AAC3C,KAAI,OAAO,QAAQ;AACnB;AACA;;AAEA,CAAc,UAAA,GAAG,MAAM,UAAU,CAAC;AAClC,GAAE,WAAW,GAAG;KACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAmB,EAAE;AACrD;;AAEA,GAAE,OAAO,GAAG;AACZ,KAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC9B;;GAEE,IAAI,CAAC,IAAI,EAAE;AACb,KAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAC5B;AACA;AACA,OAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAmB,EAAE;AAC5D;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB;;AAEA,GAAE,KAAK,GAAG;AACV,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;AAC1B,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE;KACzB,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AAC9C;AACA,OAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC3B;AACA,KAAI,OAAO,IAAI;AACf;EACC;;;;;;;;;;ACpHD,CAAA,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAGtB,gBAAA;AAClE,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM;;AAE3B,CAAA,MAAM,SAAS,CAAC;AAChB,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG;AAClB;;GAEE,IAAI,SAAS,CAAC,GAAG;AACnB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU;AACjC;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;AAC5B;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ;AAC/B;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO;AAC9B;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ;AAC/B;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK;AAC5B;AACA;;AAEA,CAAA,SAAc,GAAG;;;;;;;;;;;AC/BjB,CAAA,MAAM,cAAc,GAAGA,qBAAA;AACvB,CAAA,MAAM,UAAU,GAAGD,iBAAA;CACnB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAGE,gBAAA;AAC5G,CAAA,MAAM,SAAS,GAAGC,gBAAA;;AAElB,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AACrC,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAC7B,CAAA,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB;AAC9C,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AACrC,CAAA,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc;AAC3C,CAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB;AACrD,CAAA,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB;AAC9C,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY;AACtC,CAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe;AAC5C,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;;CAE7B,MAAM,QAAQ,SAAS,cAAc,CAAC;GACpC,WAAW,CAAC,GAAG;AACjB,KAAI,KAAK;;AAET,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU;AACjC,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;AACrB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;;KAEhB,MAAM,IAAI,GAAG;;KAEb,IAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACxD,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM;;OAEzB,IAAI,SAAS,GAAG;;OAEhB,OAAO,CAAC,SAAS,EAAE;AACzB,SAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK;SACxB,IAAI,CAAC,IAAI,EAAE;WACT;AACV;SACQ,IAAI,CAAC,OAAO,CAAC;AACrB,SAAQ,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;AAC1D;;AAEA,OAAM,IAAI,CAAC,UAAU,CAAC,GAAG;;OAEnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AACjD,SAAQ,IAAI,CAAC,UAAU,CAAC,GAAG;AAC3B,SAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC;AACrD;;OAEM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;SAC3C;AACR,YAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AACjD,YAAW,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AACpC;AACA;;KAEI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AAC5C,OAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC;AACrD;;KAEI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK;AACpD,OAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;AAC7D;;KAEI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK;AACzD,OAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;AAClE;;KAEI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI;AACrC;;GAEE,KAAK,KAAK,EAAE,GAAG;KACb,OAAO,IAAI,CAAC,UAAU;AAC1B;;GAEE,KAAK,UAAU,EAAE,GAAG;AACtB,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/D;;GAEE,KAAK,KAAK,EAAE,GAAG;KACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACtF;;GAEE,KAAK,QAAQ,EAAE,GAAG;AACpB,KAAI,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO;AAC1B,KAAI,KAAK,MAAM,EAAE,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC1D,OAAM,GAAG,IAAI;AACb;AACA,KAAI,OAAO;AACX;;GAEE,KAAK,QAAQ,EAAE,GAAG;KAChB,IAAI,GAAG,GAAG;AACd,KAAI,KAAK,MAAM,EAAE,CAAC,QAAQ,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC1D,OAAM,GAAG,IAAI;AACb;AACA,KAAI,OAAO;AACX;;GAEE,KAAK,KAAK,EAAE,GAAG;AACjB,KAAI,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO;AAC1B,KAAI,KAAK,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AACpD,OAAM,GAAG,IAAI;AACb;AACA,KAAI,OAAO;AACX;;GAEE,IAAI,KAAK,CAAC,GAAG;KACX,OAAO,IAAI,CAAC,MAAM;AACtB;;GAEE,OAAO,MAAM,EAAE,GAAG;KAChB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;AAChC,OAAM,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3D,MAAK,MAAM;AACX,OAAM,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACtC,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG;QACxB;AACP;AACA;;AAEA,GAAE,OAAO,QAAQ,EAAE,CAAC,GAAG,EAAE;KACrB,OAAO,IAAI,EAAE;OACX,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;OAC/B,IAAI,CAAC,IAAI,EAAE;SACT;AACR;AACA,OAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;AAC9B;;KAEI,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9D;;AAEA,GAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,KAAI,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;;KAEvC,IAAI,CAAC,UAAU,EAAE;AACrB,OAAM,IAAI,CAAC,UAAU,CAAC,GAAG;OACnB,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;OACnC,IAAI,CAAC,OAAO,CAAC;MACd,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACpD,OAAM,UAAU,CAAC,UAAU,CAAC,GAAG;OACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9C;;AAEA,KAAI,OAAO,CAAC,IAAI,CAAC,UAAU;AAC3B;;AAEA,GAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;KACpB;AACJ,QAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;AACjC,QAAO,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;AACrC,QAAO,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC;AAC3C,QAAO,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC;;AAErD,KAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM;;AAE9B,KAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1B,OAAM,OAAO,CAAC,QAAQ,CAAC,MAAM;AAC7B,SAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;AAC9B,WAAU,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;AACrD;QACO;AACP;;AAEA,KAAI,OAAO;AACX;;AAEA,GAAE,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE;AAC3B,KAAI,MAAM,CAAC,KAAK,CAAC,MAAM;OACjB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM;AAC/C,OAAM,IAAI,GAAG,KAAK,EAAE,EAAE;SACd,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACpC;MACK;;AAEL,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU;AACrD,OAAM,CAAC,UAAU,CAAC,UAAU,CAAC;AAC7B,OAAM,UAAU,CAAC,MAAM,KAAK,IAAI;OAC1B,UAAU,CAAC,SAAS,KAAK;MAC1B;AACL;AACA;;AAEA,CAAA,QAAc,GAAG;AACjB,GAAE,QAAQ;AACV,GAAE,QAAQ;AACV,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,aAAa;GACb;AACF;;;;;;;;;;;CC/LA,MAAM;AACN,GAAE,QAAQ;AACV,GAAE,QAAQ;AACV,GAAE,UAAU;AACZ,GAAE,UAAU;GACV;AACF,EAAC,GAAGF,eAAA;AACJ,CAAA,MAAM,MAAM,GAAGD,aAAA;CACf,MAAM;GACJ;AACF,EAAC,GAAGE,eAAA;AACJ,CAAA,MAAM,IAAI,GAAGC,aAAA;AACb,CAAA,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAGM,gBAAA;AAChC,CAAA,MAAM,cAAc,GAAGC,cAAA;;AAEvB,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa;AACzC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;;AAEjC,CAAA,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,GAAE,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI;AAChC;;CAEA,MAAM,IAAI,SAAS,QAAQ,CAAC;AAC5B,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE;AACvB,KAAI,WAAW;KACX,OAAO,GAAG,cAAc;AAC5B,KAAI,OAAO;AACX,KAAI,cAAc;AAClB,KAAI,GAAG;AACP,KAAI,iBAAiB;AACrB,KAAI,UAAU;AACd,KAAI,gBAAgB;AACpB,KAAI,8BAA8B;AAClC,KAAI,OAAO;AACX,KAAI,GAAG;IACJ,GAAG,EAAE,EAAE;AACV,KAAI,KAAK;;AAET,KAAI,IAAI,WAAW,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE;AACnF,OAAM,MAAM,IAAI,oBAAoB,CAAC,qBAAqB;AAC1D;;AAEA,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACvC,OAAM,MAAM,IAAI,oBAAoB,CAAC,6BAA6B;AAClE;;AAEA,KAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzF,OAAM,MAAM,IAAI,oBAAoB,CAAC,yCAAyC;AAC9E;;AAEA,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;OACjC,OAAO,GAAG,cAAc,CAAC;AAC/B,SAAQ,GAAG,GAAG;AACd,SAAQ,iBAAiB;AACzB,SAAQ,OAAO;AACf,SAAQ,UAAU;SACV,OAAO,EAAE,cAAc;AAC/B,SAAQ,IAAI,IAAI,CAAC,uBAAuB,IAAI,gBAAgB,GAAG,EAAE,gBAAgB,EAAE,8BAA8B,EAAE,GAAG,SAAS,CAAC;AAChI,SAAQ,GAAG;QACJ;AACP;;KAEI,IAAI,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI;SAC9G,OAAO,CAAC,YAAY,CAAC;SACrB;AACR,KAAI,IAAI,CAAC,YAAY,CAAC,GAAG,WAAW,IAAI;KACpC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM;AACxC,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO;KAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC;AAC1C,SAAQ,EAAE,GAAG,OAAO,CAAC,YAAY;SACzB;AACR,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;;AAErB,KAAI,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,KAAK;AAC3D;AACA;AACA;AACA,OAAM,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACpC;AACA;SACQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM;AACjD,SAAQ,IAAI,GAAG,KAAK,EAAE,EAAE;WACd,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACtC;AACA;MACK;AACL;;GAEE,CAAC,cAAc,EAAE,GAAG;AACtB,KAAI,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;;KAE1E,IAAI,UAAU,EAAE;AACpB,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3E,OAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5D,OAAM,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU;AACjC;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,IAAc,GAAG;;;;;;;;;;;CCzGjB,MAAM;AACN,GAAE,gCAAgC;GAChC;AACF,EAAC,GAAGT,eAAA;CACJ,MAAM;AACN,GAAE,QAAQ;AACV,GAAE,QAAQ;AACV,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,aAAa;GACb;AACF,EAAC,GAAGD,eAAA;AACJ,CAAA,MAAM,IAAI,GAAGE,WAAA;AACb,CAAA,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAGC,gBAAA;CAChC,MAAM,EAAE,WAAW,EAAE,GAAGM,aAAA;AACxB,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;;AAEjC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB;AAC9D,CAAA,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB;AAC9C,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ;AAC9B,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS;AAChC,CAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,qBAAqB;AACxD,CAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe;;AAE5C,CAAA,SAAS,wBAAwB,EAAE,CAAC,EAAE,CAAC,EAAE;AACzC,GAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO;AACtB,GAAE,OAAO,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AAC1C;;AAEA,CAAA,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,GAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;AAC9B;;CAEA,MAAM,YAAY,SAAS,QAAQ,CAAC;AACpC,GAAE,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AAC3E,KAAI,KAAK;;AAET,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;AACrB,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,KAAI,IAAI,CAAC,cAAc,CAAC,GAAG;;KAEvB,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,kBAAkB,IAAI;KACjE,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,IAAI;;KAErD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;OAC7B,SAAS,GAAG,CAAC,SAAS;AAC5B;;AAEA,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACvC,OAAM,MAAM,IAAI,oBAAoB,CAAC,6BAA6B;AAClE;;KAEI,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY;SACrH,IAAI,CAAC,YAAY,CAAC;SAClB;AACR,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;;AAErB,KAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC,OAAM,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC/B;KACI,IAAI,CAAC,wBAAwB;AACjC;;AAEA,GAAE,WAAW,CAAC,CAAC,QAAQ,EAAE;AACzB,KAAI,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;;KAE7C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AACjC,OAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc;AAC1C,OAAM,IAAI,CAAC,MAAM,KAAK,IAAI;OACpB,IAAI,CAAC,SAAS,KAAK;AACzB,MAAK,CAAC,EAAE;AACR,OAAM,OAAO;AACb;KACI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEjF,KAAI,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI;AACzB,KAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;OACvB,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;MACxF;;AAEL,KAAI,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM;AACrC,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;OAC/D,IAAI,CAAC,wBAAwB;MAC9B;;KAED,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,KAAK;AACvC,OAAM,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC;OAClB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAChD;AACA,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;SAC/D,IAAI,CAAC,wBAAwB;AACrC;MACK;;KAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AACzC,OAAM,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB;AAChD;;KAEI,IAAI,CAAC,wBAAwB;;AAEjC,KAAI,OAAO;AACX;;GAEE,wBAAwB,CAAC,GAAG;KAC1B,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;AACzG;;AAEA,GAAE,cAAc,CAAC,CAAC,QAAQ,EAAE;AAC5B,KAAI,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;;KAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AAC1C,OAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc;AAC1C,OAAM,IAAI,CAAC,MAAM,KAAK,IAAI;OACpB,IAAI,CAAC,SAAS,KAAK;MACpB;;KAED,IAAI,IAAI,EAAE;AACd,OAAM,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI;AAC9B;;AAEA,KAAI,OAAO;AACX;;GAEE,IAAI,SAAS,CAAC,GAAG;KACf,OAAO,IAAI,CAAC,QAAQ;AACxB,QAAO,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI;QAChF,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM;AAChC;;GAEE,CAAC,cAAc,EAAE,GAAG;AACtB;AACA;AACA;KACI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;OAC/B,MAAM,IAAI,gCAAgC;AAChD;;KAEI,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU;AACrD,OAAM,CAAC,UAAU,CAAC,UAAU,CAAC;AAC7B,OAAM,UAAU,CAAC,MAAM,KAAK,IAAI;OAC1B,UAAU,CAAC,SAAS,KAAK;MAC1B;;KAED,IAAI,CAAC,UAAU,EAAE;OACf;AACN;;AAEA,KAAI,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;;KAEjG,IAAI,cAAc,EAAE;OAClB;AACN;;KAEI,IAAI,OAAO,GAAG;;AAElB,KAAI,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;;KAEvE,OAAO,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE;AAC9C,OAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;OACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;AAE9C;OACM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACxF,SAAQ,cAAc,GAAG,IAAI,CAAC,MAAM;AACpC;;AAEA;AACA,OAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC9B;AACA,SAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,sBAAsB;;AAEjF,SAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AACvC,WAAU,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,mBAAmB;AACzD;AACA;AACA,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;AACxE,SAAQ,OAAO;AACf;AACA;;AAEA,KAAI,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO;AACjE,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc;AACxC;AACA;;AAEA,CAAA,YAAc,GAAG;;;;;;;;;;;AC3LjB;;AAEA,CAAA,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAGR,gBAAA;;AAE9B,CAAA,MAAM,aAAa,CAAC;AACpB,GAAE,WAAW,CAAC,CAAC,KAAK,EAAE;KAClB,IAAI,CAAC,KAAK,GAAG;AACjB;;GAEE,KAAK,CAAC,GAAG;AACX,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;SACzD;AACR,SAAQ,IAAI,CAAC;AACb;AACA;;AAEA,CAAA,MAAM,eAAe,CAAC;AACtB,GAAE,WAAW,CAAC,CAAC,SAAS,EAAE;KACtB,IAAI,CAAC,SAAS,GAAG;AACrB;;AAEA,GAAE,QAAQ,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE;AAC7B,KAAI,IAAI,UAAU,CAAC,EAAE,EAAE;AACvB,OAAM,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM;AACxC,SAAQ,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACrE,WAAU,IAAI,CAAC,SAAS,CAAC,GAAG;AAC5B;QACO;AACP;AACA;AACA;;AAEA,CAAA,iBAAc,GAAG,YAAY;AAC7B;AACA;AACA,GAAE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;AACpC,KAAI,OAAO;OACL,OAAO,EAAE,aAAa;AAC5B,OAAM,oBAAoB,EAAE;AAC5B;AACA;AACA,GAAE,OAAO;AACT,KAAI,OAAO,EAAEe,cAAM,CAAC,OAAO,IAAI,aAAa;AAC5C,KAAI,oBAAoB,EAAEA,cAAM,CAAC,oBAAoB,IAAI;AACzD;AACA;;;;;;;;;;;CC7CA,MAAM,EAAE,oBAAoB,EAAE,GAAGf,eAAA;AACjC,CAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAGD,gBAAA;AAC3E,CAAA,MAAM,cAAc,GAAGE,qBAAA;AACvB,CAAA,MAAM,IAAI,GAAGC,WAAA;AACb,CAAA,MAAM,MAAM,GAAGM,aAAA;AACf,CAAA,MAAM,IAAI,GAAGC,aAAA;AACb,CAAA,MAAM,yBAAyB,GAAGN,0BAAA;AAClC,CAAA,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAGO,wBAAsC,EAAA;;AAEhF,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AACrC,CAAA,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc;AAC3C,CAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB;AACrD,CAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB;AACjD,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;AACjC,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW;AACrC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS;;AAEjC,CAAA,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,GAAE,OAAO,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK;AACtC,OAAM,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI;AAC7B,OAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;AAC3B;;CAEA,MAAM,KAAK,SAAS,cAAc,CAAC;AACnC,GAAE,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,EAAE,eAAe,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5F,KAAI,KAAK;;AAET,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACvC,OAAM,MAAM,IAAI,oBAAoB,CAAC,6BAA6B;AAClE;;AAEA,KAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACzF,OAAM,MAAM,IAAI,oBAAoB,CAAC,yCAAyC;AAC9E;;AAEA,KAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE;AACnE,OAAM,MAAM,IAAI,oBAAoB,CAAC,2CAA2C;AAChF;;AAEA,KAAI,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AAClD,OAAM,OAAO,GAAG,EAAE,GAAG,OAAO;AAC5B;;KAEI,IAAI,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK;SAChH,OAAO,CAAC,YAAY,CAAC;AAC7B,SAAQ,CAAC,yBAAyB,CAAC,EAAE,eAAe,EAAE,CAAC;;AAEvD,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO;KACtD,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC;AAC1C,SAAQ,EAAE,GAAG,OAAO,CAAC,YAAY;SACzB;AACR,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG;AAC7B,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;AACrB,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG;KACxB,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,oBAAoB,mDAAmD,GAAG,IAAI;OACnG,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG;OAClC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,SAAS,EAAE;AAC1D,SAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AACjC;MACK;;KAED,MAAM,KAAK,GAAG;;KAEd,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AAC1C,OAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC;AACrD;;KAEI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AAC5C,OAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC;AACvD;;KAEI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK;AACpD,OAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;AAC/D;;KAEI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK;AACzD,OAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG;AACpE;AACA;;GAEE,KAAK,QAAQ,EAAE,GAAG;KAChB,IAAI,GAAG,GAAG;KACV,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;AAC/C,OAAM,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK;AAC9B;OACM,IAAI,MAAM,EAAE;AAClB,SAAQ,GAAG,IAAI,MAAM,CAAC,QAAQ;AAC9B;AACA;AACA,KAAI,OAAO;AACX;;AAEA,GAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,KAAI,IAAI;AACR,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE;AACxF,OAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;AAC9B,MAAK,MAAM;AACX,OAAM,MAAM,IAAI,oBAAoB,CAAC,gDAAgD;AACrF;;KAEI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG;;KAElC,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG;KACrC,IAAI,CAAC,UAAU,EAAE;AACrB,OAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC7D,UAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;AACnC,UAAS,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;AACvC,UAAS,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC;AAC7C,UAAS,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,CAAC;;AAEvD,OAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC;OAC/C,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG;AAC/C;;AAEA,KAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO;AAC5C;;GAEE,OAAO,MAAM,EAAE,GAAG;KAChB,MAAM,aAAa,GAAG;KACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;AAC/C,OAAM,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK;AAC9B;OACM,IAAI,MAAM,EAAE;AAClB,SAAQ,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACzC;AACA;;AAEA,KAAI,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa;AACnC;;AAEA,GAAE,OAAO,QAAQ,EAAE,CAAC,GAAG,EAAE;KACrB,MAAM,eAAe,GAAG;KACxB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE;AAC/C,OAAM,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK;AAC9B;OACM,IAAI,MAAM,EAAE;SACV,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AAChD;AACA;;AAEA,KAAI,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe;AACrC;AACA;;AAEA,CAAA,KAAc,GAAG;;;;;;;;;;;;;;;AC/IjB,CAAA,MAAM,MAAM,GAAGV;CACf,MAAM,EAAE,QAAQ,EAAE,GAAGD;AACrB,CAAA,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAGE,eAAA;AACzE,CAAA,MAAM,IAAI,GAAGC,aAAA;AACb,CAAA,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAGA,aAAA;;CAE5C,IAAI;;AAEJ,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU;AAClC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU;AAClC,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;AAC5B,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;AAC7B,CAAA,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc;;CAE1C,MAAM,IAAI,GAAG,MAAM;;AAEnB,CAAA,QAAc,GAAG,MAAM,YAAY,SAAS,QAAQ,CAAC;GACnD,WAAW,CAAC,CAAC;AACf,KAAI,MAAM;AACV,KAAI,KAAK;KACL,WAAW,GAAG,EAAE;AACpB,KAAI,aAAa,GAAG,EAAE,GAAG,IAAI;AAC7B,IAAG,EAAE;AACL,KAAI,KAAK,CAAC;OACJ,WAAW,EAAE,IAAI;OACjB,IAAI,EAAE,MAAM;OACZ;MACD;;AAEL,KAAI,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG;;AAEtC,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;AACrB,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG;AAClB,KAAI,IAAI,CAAC,YAAY,CAAC,GAAG;;AAEzB;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;AACrB;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,KAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB;AACA,OAAM,OAAO;AACb;;KAEI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;OAC3C,GAAG,GAAG,IAAI,mBAAmB;AACnC;;KAEI,IAAI,GAAG,EAAE;OACP,IAAI,CAAC,MAAM,CAAC;AAClB;;AAEA,KAAI,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG;AAC5B;;AAEA,GAAE,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;AACrB,KAAI,IAAI,EAAE,KAAK,MAAM,EAAE;AACvB;AACA,OAAM,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG;AACxC,MAAK,MAAM,IAAI,EAAE,KAAK,OAAO,EAAE;AAC/B;AACA,OAAM,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG;AACzC;KACI,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI;AACjC;;AAEA,GAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;KACf,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,UAAU,EAAE;AAC5C,OAAM,IAAI,CAAC,QAAQ,CAAC,GAAG;AACvB;KACI,OAAO,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI;AAC/B;;AAEA,GAAE,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;KACxB,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI;AAC9B;;AAEA,GAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;KAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI;KACjC,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,UAAU,EAAE;OACtC,IAAI,CAAC,QAAQ,CAAC;AACpB,SAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,SAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG;AACzC;AACA;AACA,KAAI,OAAO;AACX;;AAEA,GAAE,cAAc,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;KAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI;AAC/B;;AAEA,GAAE,IAAI,CAAC,CAAC,KAAK,EAAE;AACf,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,EAAE;AACvE,OAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK;AACvC,OAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;AAClD;AACA,KAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK;AAC3B;;AAEA;GACE,MAAM,IAAI,CAAC,GAAG;AAChB,KAAI,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM;AAC/B;;AAEA;GACE,MAAM,IAAI,CAAC,GAAG;AAChB,KAAI,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM;AAC/B;;AAEA;GACE,MAAM,IAAI,CAAC,GAAG;AAChB,KAAI,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM;AAC/B;;AAEA;GACE,MAAM,WAAW,CAAC,GAAG;AACvB,KAAI,OAAO,OAAO,CAAC,IAAI,EAAE,aAAa;AACtC;;AAEA;GACE,MAAM,QAAQ,CAAC,GAAG;AACpB;KACI,MAAM,IAAI,iBAAiB;AAC/B;;AAEA;GACE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI;AAChC;;AAEA;GACE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtB,OAAM,IAAI,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,IAAI;AAC3C,OAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC1B;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAE;AAC/B,SAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;AACjC;AACA;KACI,OAAO,IAAI,CAAC,KAAK;AACrB;;AAEA,GAAE,IAAI,CAAC,CAAC,IAAI,EAAE;AACd,KAAI,IAAI,KAAK,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG;AACnE,KAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC;;KAE5B,IAAI,MAAM,EAAE;AAChB,OAAM,IAAI;SACF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,EAAE;AAClE,WAAU,MAAM,IAAI,oBAAoB,CAAC,+BAA+B;AACxE;AACA,SAAQ,IAAI,CAAC,cAAc,CAAC,MAAM;QAC3B,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG;AACjC;AACA;;AAEA,KAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB,OAAM,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI;AACjC;;KAEI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;OACtC,MAAM,qBAAqB,GAAG;AACpC,WAAU,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;WACpC,IAAI,CAAC,OAAO;UACb;WACC;;OAEJ;AACN,UAAS,EAAE,CAAC,OAAO,EAAE,YAAY;AACjC,WAAU,qBAAqB;AAC/B,WAAU,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;aAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACjH,YAAW,MAAM;aACL,OAAO,CAAC,IAAI;AACxB;UACS;AACT,UAAS,EAAE,CAAC,OAAO,EAAE,IAAI;AACzB,UAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE;WAC3B,KAAK,IAAI,KAAK,CAAC;AACzB,WAAU,IAAI,KAAK,IAAI,CAAC,EAAE;aACd,IAAI,CAAC,OAAO;AACxB;UACS;AACT,UAAS,MAAM;MACV;AACL;AACA;;AAEA;CACA,SAAS,QAAQ,EAAE,IAAI,EAAE;AACzB;AACA,GAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ;AACtE;;AAEA;CACA,SAAS,UAAU,EAAE,IAAI,EAAE;GACzB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI;AAChD;;AAEA,CAAA,eAAe,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AACtC,GAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1B,KAAI,MAAM,IAAI,SAAS,CAAC,UAAU;AAClC;;AAEA,GAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;;GAExB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC1C,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG;AACvB,OAAM,IAAI;AACV,OAAM,MAAM;AACZ,OAAM,OAAO;AACb,OAAM,MAAM;OACN,MAAM,EAAE,CAAC;AACf,OAAM,IAAI,EAAE;AACZ;;KAEI;AACJ,QAAO,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;AAClC,SAAQ,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG;QAClC;AACP,QAAO,EAAE,CAAC,OAAO,EAAE,YAAY;SACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE;WAChC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,mBAAmB,EAAE;AACjE;QACO;;KAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC;IAChD;AACH;;CAEA,SAAS,YAAY,EAAE,OAAO,EAAE;AAChC,GAAE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;KACzB;AACJ;;GAEE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;;AAE5C,GAAE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACpC,KAAI,WAAW,CAAC,OAAO,EAAE,KAAK;AAC9B;;AAEA,GAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,KAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,IAAG,MAAM;KACL,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY;AACzC,OAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;MAC1B;AACL;;AAEA,GAAE,OAAO,CAAC,MAAM,CAAC,MAAM;;GAErB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;AACxC;AACA;AACA;;CAEA,SAAS,UAAU,EAAE,OAAO,EAAE;AAC9B,GAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;;AAElD,GAAE,IAAI;AACN,KAAI,IAAI,IAAI,KAAK,MAAM,EAAE;OACnB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,MAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,OAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C,MAAK,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE;AACvC,OAAM,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM;;OAEjC,IAAI,GAAG,GAAG;AAChB,OAAM,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC9B,SAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG;SAChB,GAAG,IAAI,GAAG,CAAC;AACnB;;AAEA,OAAM,OAAO,CAAC,GAAG,CAAC,MAAM;AACxB,MAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;OAC1B,IAAI,CAAC,IAAI,EAAE;AACjB,SAAQ,IAAI,GAAG,OAAQ,CAAA,QAAQ,CAAC,CAAC;AACjC;AACA,OAAM,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5D;;KAEI,aAAa,CAAC,OAAO;IACtB,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG;AACtB;AACA;;AAEA,CAAA,SAAS,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;AACtC,GAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;AAC1B,GAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;AACzB;;AAEA,CAAA,SAAS,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE;AACtC,GAAE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE;KACzB;AACJ;;GAEE,IAAI,GAAG,EAAE;AACX,KAAI,OAAO,CAAC,MAAM,CAAC,GAAG;AACtB,IAAG,MAAM;KACL,OAAO,CAAC,OAAO;AACnB;;GAEE,OAAO,CAAC,IAAI,GAAG;GACf,OAAO,CAAC,MAAM,GAAG;GACjB,OAAO,CAAC,OAAO,GAAG;GAClB,OAAO,CAAC,MAAM,GAAG;GACjB,OAAO,CAAC,MAAM,GAAG;GACjB,OAAO,CAAC,IAAI,GAAG;AACjB;;;;;;;;;;ACjUA,CAAA,MAAM,MAAM,GAAGF;CACf,MAAM;GACJ;AACF,EAAC,GAAGD,eAAA;CACJ,MAAM,EAAE,WAAW,EAAE,GAAGE,aAAA;;AAExB,CAAA,eAAe,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE;GAC/G,MAAM,CAAC,IAAI;;GAEX,IAAI,MAAM,GAAG;GACb,IAAI,KAAK,GAAG;;AAEd,GAAE,WAAW,MAAM,KAAK,IAAI,IAAI,EAAE;AAClC,KAAI,MAAM,CAAC,IAAI,CAAC,KAAK;KACjB,KAAK,IAAI,KAAK,CAAC;AACnB,KAAI,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,EAAE;AAC5B,OAAM,MAAM,GAAG;OACT;AACN;AACA;;GAEE,IAAI,UAAU,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE;AACrD,KAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,uBAAuB,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC;KAC7J;AACJ;;AAEA,GAAE,IAAI;AACN,KAAI,IAAI,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;AACpD,OAAM,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnE,OAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,uBAAuB,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;OACtK;AACN;;AAEA,KAAI,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;OACnC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACvD,OAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,uBAAuB,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;OACtK;AACN;IACG,CAAC,OAAO,GAAG,EAAE;AAChB;AACA;;AAEA,GAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,uBAAuB,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC;AAC/J;;AAEA,CAAcY,MAAA,GAAG,EAAE,2BAA2B;;;;;;;;;;CC7C9C,MAAM,EAAE,gBAAgB,EAAE,GAAGb,aAAA;CAC7B,MAAM,EAAE,mBAAmB,EAAE,GAAGD,eAAA;;AAEhC,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW;AACpC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS;;CAEhC,SAAS,KAAK,EAAE,IAAI,EAAE;AACtB,GAAE,IAAI,IAAI,CAAC,KAAK,EAAE;KACd,IAAI,CAAC,KAAK;AACd,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,EAAE;AAC1C;AACA;;AAEA,CAAA,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;AAClC,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG;AAClB,GAAE,IAAI,CAAC,SAAS,CAAC,GAAG;;GAElB,IAAI,CAAC,MAAM,EAAE;KACX;AACJ;;AAEA,GAAE,IAAI,MAAM,CAAC,OAAO,EAAE;KAClB,KAAK,CAAC,IAAI;KACV;AACJ;;AAEA,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG;AAClB,GAAE,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM;KACtB,KAAK,CAAC,IAAI;AACd;;GAEE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;AACjD;;CAEA,SAAS,YAAY,EAAE,IAAI,EAAE;AAC7B,GAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;KAClB;AACJ;;AAEA,GAAE,IAAI,qBAAqB,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;AAC9C,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9D,IAAG,MAAM;AACT,KAAI,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;AACzD;;AAEA,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG;AAClB,GAAE,IAAI,CAAC,SAAS,CAAC,GAAG;AACpB;;AAEA,CAAA,WAAc,GAAG;AACjB,GAAE,SAAS;GACT;AACF;;;;;;;;;;ACnDA,CAAA,MAAM,QAAQ,GAAGC,eAAA;CACjB,MAAM;AACN,GAAE,oBAAoB;GACpB;AACF,EAAC,GAAGD,eAAA;AACJ,CAAA,MAAM,IAAI,GAAGE,aAAA;CACb,MAAM,EAAE,2BAA2B,EAAE,GAAGC,aAAA;CACxC,MAAM,EAAE,aAAa,EAAE,GAAGM;AAC1B,CAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAGC,kBAAA;;CAEpC,MAAM,cAAc,SAAS,aAAa,CAAC;AAC3C,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE;KAC3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,cAAc;AACnD;;AAEA,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG;;AAEnG,KAAI,IAAI;AACR,OAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAC1C,SAAQ,MAAM,IAAI,oBAAoB,CAAC,kBAAkB;AACzD;;AAEA,OAAM,IAAI,aAAa,KAAK,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE;AACrF,SAAQ,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC9D;;AAEA,OAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACtG,SAAQ,MAAM,IAAI,oBAAoB,CAAC,+CAA+C;AACtF;;AAEA,OAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AAChC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,gBAAgB;AACvD;;AAEA,OAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAClD,SAAQ,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;AAChE;;OAEM,KAAK,CAAC,gBAAgB;MACvB,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/B,SAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG;AACpD;AACA,OAAM,MAAM;AACZ;;AAEA,KAAI,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI;AAC9C,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;KACxB,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,GAAG,GAAG;KACX,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,OAAO,GAAG;AACnB,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;KACxB,IAAI,CAAC,YAAY,GAAG;KACpB,IAAI,CAAC,aAAa,GAAG;;AAEzB,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;OACvB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAChC,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG;QACjB;AACP;;AAEA,KAAI,SAAS,CAAC,IAAI,EAAE,MAAM;AAC1B;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,MAAM,IAAI,mBAAmB;AACnC;;KAEI,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;AACnB;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE;AAC5D,KAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG;;AAEjF,KAAI,MAAM,OAAO,GAAG,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;;AAE/G,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;AAC1B,OAAM,IAAI,IAAI,CAAC,MAAM,EAAE;SACf,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;AAC3C;OACM;AACN;;AAEA,KAAI,MAAM,aAAa,GAAG,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;AACtF,KAAI,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc;AACpD,KAAI,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE;;KAEvE,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,GAAG,GAAG;AACf,KAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;OACrB,IAAI,IAAI,CAAC,YAAY,IAAI,UAAU,IAAI,GAAG,EAAE;AAClD,SAAQ,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,IAAI;WACpD,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO;AAC3E;AACA,QAAO,MAAM;SACL,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;AACnD,WAAU,UAAU;AACpB,WAAU,OAAO;AACjB,WAAU,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACjC,WAAU,MAAM;AAChB,WAAU,IAAI;WACJ;UACD;AACT;AACA;AACA;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;AACpB,KAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK;AACzB;;AAEA,GAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;AACxB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;;KAEhB,YAAY,CAAC,IAAI;;KAEjB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ;;AAE7C,KAAI,GAAG,CAAC,IAAI,CAAC,IAAI;AACjB;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;KACZ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG;;KAExC,YAAY,CAAC,IAAI;;KAEjB,IAAI,QAAQ,EAAE;AAClB;OACM,IAAI,CAAC,QAAQ,GAAG;OAChB,cAAc,CAAC,MAAM;AAC3B,SAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;QACrD;AACP;;KAEI,IAAI,GAAG,EAAE;OACP,IAAI,CAAC,GAAG,GAAG;AACjB;OACM,cAAc,CAAC,MAAM;AAC3B,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;QACtB;AACP;;KAEI,IAAI,IAAI,EAAE;OACR,IAAI,CAAC,IAAI,GAAG;AAClB,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;AAC5B;AACA;AACA;;AAEA,CAAA,SAAS,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,GAAE,IAAI,QAAQ,KAAK,SAAS,EAAE;KAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,OAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;SACtC,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;QACxC;MACF;AACL;;AAEA,GAAE,IAAI;AACN,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC;IACvD,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM;AACZ;AACA,KAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC;KAC5B,cAAc,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC;AAClD;AACA;;AAEA,CAAAe,UAAA,CAAA,OAAc,GAAG;AACjB,CAAAA,UAAA,CAAA,OAAA,CAAA,cAA6B,GAAG;;;;;;;;;;;ACjLhC,CAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAGxB;CAClC,MAAM;AACN,GAAE,oBAAoB;AACtB,GAAE,uBAAuB;GACvB;AACF,EAAC,GAAGD,eAAA;AACJ,CAAA,MAAM,IAAI,GAAGE,aAAA;CACb,MAAM,EAAE,2BAA2B,EAAE,GAAGC,aAAA;CACxC,MAAM,EAAE,aAAa,EAAE,GAAGM;AAC1B,CAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAGC,kBAAA;;CAEpC,MAAM,aAAa,SAAS,aAAa,CAAC;GACxC,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;KACpC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,cAAc;AACnD;;AAEA,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG;;AAEpF,KAAI,IAAI;AACR,OAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAC1C,SAAQ,MAAM,IAAI,oBAAoB,CAAC,kBAAkB;AACzD;;AAEA,OAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACzC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,iBAAiB;AACxD;;AAEA,OAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACtG,SAAQ,MAAM,IAAI,oBAAoB,CAAC,+CAA+C;AACtF;;AAEA,OAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AAChC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,gBAAgB;AACvD;;AAEA,OAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAClD,SAAQ,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;AAChE;;OAEM,KAAK,CAAC,eAAe;MACtB,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC/B,SAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG;AACpD;AACA,OAAM,MAAM;AACZ;;AAEA,KAAI,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI;AAC9C,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;KACxB,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,GAAG,GAAG;KACX,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;AAC5B,KAAI,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI;;AAExC,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;OACvB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAChC,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG;QACjB;AACP;;AAEA,KAAI,SAAS,CAAC,IAAI,EAAE,MAAM;AAC1B;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,MAAM,IAAI,mBAAmB;AACnC;;KAEI,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;AACnB;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE;AAC5D,KAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG;;AAEpE,KAAI,MAAM,OAAO,GAAG,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;;AAE/G,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;AAC1B,OAAM,IAAI,IAAI,CAAC,MAAM,EAAE;SACf,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;AAC3C;OACM;AACN;;KAEI,IAAI,CAAC,OAAO,GAAG;;AAEnB,KAAI,IAAI;;KAEJ,IAAI,IAAI,CAAC,YAAY,IAAI,UAAU,IAAI,GAAG,EAAE;AAChD,OAAM,MAAM,aAAa,GAAG,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG;AACxF,OAAM,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc;OAChD,GAAG,GAAG,IAAI,WAAW;;OAErB,IAAI,CAAC,QAAQ,GAAG;AACtB,OAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,IAAI;AAC5D,SAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO;AAC9E;AACA,MAAK,MAAM;AACX,OAAM,IAAI,OAAO,KAAK,IAAI,EAAE;SACpB;AACR;;OAEM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;AAChD,SAAQ,UAAU;AAClB,SAAQ,OAAO;AACf,SAAQ,MAAM;SACN;QACD;;OAED;AACN,SAAQ,CAAC,GAAG;AACZ,SAAQ,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU;AACvC,SAAQ,OAAO,GAAG,CAAC,GAAG,KAAK,UAAU;AACrC,SAAQ,OAAO,GAAG,CAAC,EAAE,KAAK;SAClB;AACR,SAAQ,MAAM,IAAI,uBAAuB,CAAC,mBAAmB;AAC7D;;AAEA;AACA,OAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK;AAClD,SAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG;;SAEnD,IAAI,CAAC,GAAG,GAAG;AACnB,SAAQ,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AAClC,WAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;AAC/B;;SAEQ,IAAI,CAAC,QAAQ,GAAG;AACxB,SAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;;SAEtE,IAAI,GAAG,EAAE;AACjB,WAAU,KAAK;AACf;QACO;AACP;;AAEA,KAAI,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM;;KAEtB,IAAI,CAAC,GAAG,GAAG;;AAEf,KAAI,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB,KAAK;AAChD,SAAQ,GAAG,CAAC;AACZ,SAAQ,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC;;KAE7C,OAAO,SAAS,KAAK;AACzB;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;;KAEhB,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;AACpC;;AAEA,GAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;AACxB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;;KAEhB,YAAY,CAAC,IAAI;;KAEjB,IAAI,CAAC,GAAG,EAAE;OACR;AACN;;KAEI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;;KAE1C,GAAG,CAAC,GAAG;AACX;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;KACZ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;KAExC,YAAY,CAAC,IAAI;;KAEjB,IAAI,CAAC,OAAO,GAAG;;KAEf,IAAI,GAAG,EAAE;OACP,IAAI,CAAC,GAAG,GAAG;AACjB,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;MACtB,MAAM,IAAI,QAAQ,EAAE;OACnB,IAAI,CAAC,QAAQ,GAAG;OAChB,cAAc,CAAC,MAAM;AAC3B,SAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;QACrD;AACP;;KAEI,IAAI,IAAI,EAAE;OACR,IAAI,CAAC,IAAI,GAAG;AAClB,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;AAC5B;AACA;AACA;;AAEA,CAAA,SAAS,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;AAC1C,GAAE,IAAI,QAAQ,KAAK,SAAS,EAAE;KAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,OAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;SAC9C,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;QACxC;MACF;AACL;;AAEA,GAAE,IAAI;AACN,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC/D,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM;AACZ;AACA,KAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC;KAC5B,cAAc,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC;AAClD;AACA;;AAEA,CAAA,SAAc,GAAG;;;;;;;;;;;CCzNjB,MAAM;AACN,GAAE,QAAQ;AACV,GAAE,MAAM;GACN;AACF,EAAC,GAAGT;CACJ,MAAM;AACN,GAAE,oBAAoB;AACtB,GAAE,uBAAuB;GACvB;AACF,EAAC,GAAGD,eAAA;AACJ,CAAA,MAAM,IAAI,GAAGE,aAAA;CACb,MAAM,EAAE,aAAa,EAAE,GAAGC;AAC1B,CAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAGM,kBAAA;AACpC,CAAA,MAAM,MAAM,GAAGC;;AAEf,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ;;CAE/B,MAAM,eAAe,SAAS,QAAQ,CAAC;GACrC,WAAW,CAAC,GAAG;AACjB,KAAI,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;;AAE/B,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB;;GAEE,KAAK,CAAC,GAAG;AACX,KAAI,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG;;KAE9B,IAAI,MAAM,EAAE;AAChB,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG;AACtB,OAAM,MAAM;AACZ;AACA;;AAEA,GAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;KACvB,IAAI,CAAC,KAAK;;KAEV,QAAQ,CAAC,GAAG;AAChB;AACA;;CAEA,MAAM,gBAAgB,SAAS,QAAQ,CAAC;AACxC,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE;AACvB,KAAI,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;AAC/B,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB;;GAEE,KAAK,CAAC,GAAG;KACP,IAAI,CAAC,OAAO,CAAC;AACjB;;AAEA,GAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;KACvB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;OAC3C,GAAG,GAAG,IAAI,mBAAmB;AACnC;;KAEI,QAAQ,CAAC,GAAG;AAChB;AACA;;CAEA,MAAM,eAAe,SAAS,aAAa,CAAC;AAC5C,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;KAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,cAAc;AACnD;;AAEA,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACvC,OAAM,MAAM,IAAI,oBAAoB,CAAC,iBAAiB;AACtD;;AAEA,KAAI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG;;AAEhE,KAAI,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACpG,OAAM,MAAM,IAAI,oBAAoB,CAAC,+CAA+C;AACpF;;AAEA,KAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,OAAM,MAAM,IAAI,oBAAoB,CAAC,gBAAgB;AACrD;;AAEA,KAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAChD,OAAM,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;AAC9D;;KAEI,KAAK,CAAC,iBAAiB;;AAE3B,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;AAC5B,KAAI,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI;KAC1C,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;AACnB,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;;AAE5B,KAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;;AAEzD,KAAI,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC;AAC1B,OAAM,kBAAkB,EAAE,IAAI,CAAC,UAAU;OACnC,WAAW,EAAE,IAAI;OACjB,IAAI,EAAE,MAAM;AAClB,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG;;AAEzB,SAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;WACvB,IAAI,CAAC,MAAM;AACrB;QACO;OACD,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK;AAC5C,SAAQ,MAAM,EAAE,GAAG,EAAE,GAAG;;AAExB,SAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE;AACvE,WAAU,QAAQ;AAClB,UAAS,MAAM;AACf,WAAU,GAAG,CAAC,OAAO,CAAC,GAAG;AACzB;QACO;AACP,OAAM,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK;AAClC,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;;SAEvC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE;WAC1C,GAAG,GAAG,IAAI,mBAAmB;AACvC;;AAEA,SAAQ,IAAI,KAAK,IAAI,GAAG,EAAE;AAC1B,WAAU,KAAK;AACf;;AAEA,SAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;AAC9B,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;AAC7B,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;;SAErB,YAAY,CAAC,IAAI;;SAEjB,QAAQ,CAAC,GAAG;AACpB;AACA,MAAK,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM;AAC7B,OAAM,MAAM,EAAE,GAAG,EAAE,GAAG;;AAEtB;AACA,OAAM,GAAG,CAAC,IAAI,CAAC,IAAI;MACd;;KAED,IAAI,CAAC,GAAG,GAAG;;AAEf,KAAI,SAAS,CAAC,IAAI,EAAE,MAAM;AAC1B;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;;AAEzB,KAAI,MAAM,CAAC,CAAC,GAAG,EAAE,4BAA4B;;AAE7C,KAAI,IAAI,GAAG,CAAC,SAAS,EAAE;OACjB,MAAM,IAAI,mBAAmB;AACnC;;KAEI,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;AACnB;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;KACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;;AAEzC,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;AAC1B,OAAM,IAAI,IAAI,CAAC,MAAM,EAAE;SACf,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;SAChH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;AAC3C;OACM;AACN;;AAEA,KAAI,IAAI,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,MAAM;;AAE1C,KAAI,IAAI;AACR,KAAI,IAAI;OACF,IAAI,CAAC,OAAO,GAAG;OACf,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;OAChH,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;AACjD,SAAQ,UAAU;AAClB,SAAQ,OAAO;AACf,SAAQ,MAAM;AACd,SAAQ,IAAI,EAAE,IAAI,CAAC,GAAG;SACd;QACD;MACF,CAAC,OAAO,GAAG,EAAE;OACZ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG;AACnC,OAAM,MAAM;AACZ;;KAEI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,EAAE;AAChD,OAAM,MAAM,IAAI,uBAAuB,CAAC,mBAAmB;AAC3D;;KAEI;AACJ,QAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AAC7B,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;;AAE9B,SAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;WAClC,IAAI,CAAC,KAAK;AACpB;QACO;AACP,QAAO,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAC5B,SAAQ,MAAM,EAAE,GAAG,EAAE,GAAG;;AAExB,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;QACtB;AACP,QAAO,EAAE,CAAC,KAAK,EAAE,MAAM;AACvB,SAAQ,MAAM,EAAE,GAAG,EAAE,GAAG;;AAExB,SAAQ,GAAG,CAAC,IAAI,CAAC,IAAI;QACd;AACP,QAAO,EAAE,CAAC,OAAO,EAAE,MAAM;AACzB,SAAQ,MAAM,EAAE,GAAG,EAAE,GAAG;;AAExB,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE;WAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,mBAAmB,EAAE;AACrD;QACO;;KAEH,IAAI,CAAC,IAAI,GAAG;AAChB;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;AACpB,KAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK;AACzB;;AAEA,GAAE,UAAU,CAAC,CAAC,QAAQ,EAAE;AACxB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;AACpB,KAAI,GAAG,CAAC,IAAI,CAAC,IAAI;AACjB;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG;KAChB,IAAI,CAAC,OAAO,GAAG;AACnB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG;AACzB;AACA;;AAEA,CAAA,SAAS,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,GAAE,IAAI;KACF,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO;AAC7D,KAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,eAAe;KACrE,OAAO,eAAe,CAAC;IACxB,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,OAAO,IAAI,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG;AACxC;AACA;;AAEA,CAAA,WAAc,GAAG;;;;;;;;;;;ACtPjB,CAAA,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAGT,eAAA;CACnE,MAAM,EAAE,aAAa,EAAE,GAAGD;AAC1B,CAAA,MAAM,IAAI,GAAGE,aAAA;AACb,CAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAGC,kBAAA;AACpC,CAAA,MAAM,MAAM,GAAGM;;CAEf,MAAM,cAAc,SAAS,aAAa,CAAC;AAC3C,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE;KAC3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,cAAc;AACnD;;AAEA,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM,IAAI,oBAAoB,CAAC,kBAAkB;AACvD;;KAEI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG;;AAEhD,KAAI,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACpG,OAAM,MAAM,IAAI,oBAAoB,CAAC,+CAA+C;AACpF;;KAEI,KAAK,CAAC,gBAAgB;;AAE1B,KAAI,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI;AAC9C,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;KACxB,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;;AAEnB,KAAI,SAAS,CAAC,IAAI,EAAE,MAAM;AAC1B;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,MAAM,IAAI,mBAAmB;AACnC;;KAEI,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;AACnB;;GAEE,SAAS,CAAC,GAAG;AACf,KAAI,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,IAAI;AAC7C;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;KACzC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;;AAE1C,KAAI,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG;;KAElC,YAAY,CAAC,IAAI;;KAEjB,IAAI,CAAC,QAAQ,GAAG;KAChB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;KAChH,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/C,OAAM,OAAO;AACb,OAAM,MAAM;AACZ,OAAM,MAAM;OACN;MACD;AACL;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,KAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG;;KAE7B,YAAY,CAAC,IAAI;;KAEjB,IAAI,QAAQ,EAAE;OACZ,IAAI,CAAC,QAAQ,GAAG;OAChB,cAAc,CAAC,MAAM;AAC3B,SAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;QACrD;AACP;AACA;AACA;;AAEA,CAAA,SAAS,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,GAAE,IAAI,QAAQ,KAAK,SAAS,EAAE;KAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,OAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;SACtC,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;QACxC;MACF;AACL;;AAEA,GAAE,IAAI;KACF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ;KACxD,IAAI,CAAC,QAAQ,CAAC;AAClB,OAAM,GAAG,IAAI;AACb,OAAM,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAClC,OAAM,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI;AAChC,MAAK,EAAE,cAAc;IAClB,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM;AACZ;AACA,KAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC;KAC5B,cAAc,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC;AAClD;AACA;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;;CCtGjB,MAAM,EAAE,aAAa,EAAE,GAAGR;AAC1B,CAAA,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAGD,eAAA;AACnE,CAAA,MAAM,IAAI,GAAGE,aAAA;AACb,CAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAGC,kBAAA;;CAEpC,MAAM,cAAc,SAAS,aAAa,CAAC;AAC3C,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE;KAC3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,cAAc;AACnD;;AAEA,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM,IAAI,oBAAoB,CAAC,kBAAkB;AACvD;;KAEI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG;;AAEhD,KAAI,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;AACpG,OAAM,MAAM,IAAI,oBAAoB,CAAC,+CAA+C;AACpF;;KAEI,KAAK,CAAC,gBAAgB;;AAE1B,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;AAC5B,KAAI,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI;KAC1C,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,KAAK,GAAG;;AAEjB,KAAI,SAAS,CAAC,IAAI,EAAE,MAAM;AAC1B;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,MAAM,IAAI,mBAAmB;AACnC;;KAEI,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;AACnB;;GAEE,SAAS,CAAC,GAAG;AACf,KAAI,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,IAAI;AAC7C;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;KACzC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;;KAEtC,YAAY,CAAC,IAAI;;KAEjB,IAAI,CAAC,QAAQ,GAAG;;KAEhB,IAAI,OAAO,GAAG;AAClB;AACA,KAAI,IAAI,OAAO,IAAI,IAAI,EAAE;AACzB,OAAM,OAAO,GAAG,IAAI,CAAC,eAAe,KAAK,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;AAChH;;KAEI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/C,OAAM,UAAU;AAChB,OAAM,OAAO;AACb,OAAM,MAAM;AACZ,OAAM,MAAM;OACN;MACD;AACL;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,KAAI,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG;;KAE7B,YAAY,CAAC,IAAI;;KAEjB,IAAI,QAAQ,EAAE;OACZ,IAAI,CAAC,QAAQ,GAAG;OAChB,cAAc,CAAC,MAAM;AAC3B,SAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;QACrD;AACP;AACA;AACA;;AAEA,CAAA,SAAS,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,GAAE,IAAI,QAAQ,KAAK,SAAS,EAAE;KAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,OAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK;SACtC,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;QACxC;MACF;AACL;;AAEA,GAAE,IAAI;KACF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ;AAC5D,KAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc;IAC7D,CAAC,OAAO,GAAG,EAAE;AAChB,KAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,OAAM,MAAM;AACZ;AACA,KAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC;KAC5B,cAAc,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC;AAClD;AACA;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;ACrGjB,CAAA,GAAA,CAAA,OAAsB,GAAGF,iBAAA;AACzB,CAAA,GAAA,CAAA,MAAqB,GAAGD,gBAAA;AACxB,CAAA,GAAA,CAAA,QAAuB,GAAGE,kBAAA;AAC1B,CAAA,GAAA,CAAA,OAAsB,GAAGC,iBAAA;AACzB,CAAA,GAAA,CAAA,OAAsB,GAAGM,iBAAA;;;;;;;;;;;CCJzB,MAAM,EAAE,WAAW,EAAE,GAAGR,eAAA;;CAExB,MAAM,mBAAmB,SAAS,WAAW,CAAC;AAC9C,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,KAAK,CAAC,OAAO;AACjB,KAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB;KACjD,IAAI,CAAC,IAAI,GAAG;AAChB,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI;KAC1B,IAAI,CAAC,IAAI,GAAG;AAChB;AACA;;AAEA,CAAA,UAAc,GAAG;GACf;AACF;;;;;;;;;;;ACdA,CAAA,WAAc,GAAG;AACjB,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;AAC7B,GAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC;AACnC,GAAE,YAAY,EAAE,MAAM,CAAC,cAAc,CAAC;AACtC,GAAE,eAAe,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC5C,GAAE,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,CAAC;AAC9C,GAAE,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,GAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAClC,GAAE,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,GAAE,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,GAAE,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC;AACxC,GAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;AACzB,GAAE,cAAc,EAAE,MAAM,CAAC,sBAAsB,CAAC;AAChD,GAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC3B,GAAE,aAAa,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAC3C,GAAE,UAAU,EAAE,MAAM,CAAC,WAAW;AAChC;;;;;;;;;;;CCpBA,MAAM,EAAE,mBAAmB,EAAE,GAAGA,iBAAA;CAChC,MAAM;AACN,GAAE,WAAW;AACb,GAAE,UAAU;AACZ,GAAE,iBAAiB;AACnB,GAAE,OAAO;GACP;AACF,EAAC,GAAGD,kBAAA;AACJ,CAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAGE,aAAA;CAC1B,MAAM,EAAE,YAAY,EAAE,GAAGC;CACzB,MAAM;AACN,GAAE,KAAK,EAAE;KACL;AACJ;AACA,EAAC,GAAGM;;AAEJ,CAAA,SAAS,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;AACnC,GAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;KAC7B,OAAO,KAAK,KAAK;AACrB;AACA,GAAE,IAAI,KAAK,YAAY,MAAM,EAAE;AAC/B,KAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK;AAC3B;AACA,GAAE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACnC,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK;AAC5B;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,gBAAgB,EAAE,OAAO,EAAE;GAClC,OAAO,MAAM,CAAC,WAAW;AAC3B,KAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK;AAC/D,OAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,EAAE,WAAW;MACpD;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAA,SAAS,eAAe,EAAE,OAAO,EAAE,GAAG,EAAE;AACxC,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,OAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE,EAAE;AACtE,SAAQ,OAAO,OAAO,CAAC,CAAC,GAAG,CAAC;AAC5B;AACA;;AAEA,KAAI,OAAO;IACR,MAAM,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,EAAE;AAChD,KAAI,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG;AAC1B,IAAG,MAAM;KACL,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE;AAC5D;AACA;;AAEA;CACA,SAAS,qBAAqB,EAAE,OAAO,EAAE;AACzC,GAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;GAC3B,MAAM,OAAO,GAAG;AAClB,GAAE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACxD,KAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjD;AACA,GAAE,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO;AACnC;;AAEA,CAAA,SAAS,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE;AAC9C,GAAE,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,UAAU,EAAE;AAClD,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,OAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO;AAC7C;AACA,KAAI,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;AACxE;AACA,GAAE,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE;AACnD,KAAI,OAAO;AACX;AACA,GAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC/E,KAAI,OAAO;AACX;;AAEA,GAAE,KAAK,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AAC1F,KAAI,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,eAAe;;KAE5D,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE;AACpD,OAAM,OAAO;AACb;AACA;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,OAAO,EAAE,IAAI,EAAE;AACxB,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,OAAO;AACX;;AAEA,GAAE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;;AAErC,GAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,KAAI,OAAO;AACX;;GAEE,MAAM,EAAE,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,EAAE;GACjD,EAAE,CAAC,IAAI;AACT,GAAE,OAAO,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;AAClD;;AAEA,CAAA,SAAS,QAAQ,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;GAChE,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI;GACpD,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;AAC5D,GAAE,MAAM,SAAS,GAAG,OAAO,YAAY,CAAC,IAAI,KAAK,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;AACrG,GAAE,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO;AACzD,GAAE,OAAO,SAAS,IAAI,WAAW,IAAI,SAAS,IAAI;AAClD;;CAEA,SAAS,eAAe,EAAE,IAAI,EAAE;AAChC,GAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7B,KAAI,OAAO;AACX,IAAG,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC,KAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI;AAC9B,IAAG,MAAM;KACL,OAAO,IAAI,CAAC,QAAQ;AACxB;AACA;;AAEA,CAAA,SAAS,eAAe,EAAE,cAAc,EAAE,GAAG,EAAE;AAC/C,GAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACnE,GAAE,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG;;AAE1E;AACA,GAAE,IAAI,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;AAC7I,GAAE,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;KACtC,MAAM,IAAI,mBAAmB,CAAC,CAAC,oCAAoC,EAAE,YAAY,CAAC,CAAC,CAAC;AACxF;;AAEA;AACA,GAAE,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;AACrG,GAAE,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,KAAI,MAAM,IAAI,mBAAmB,CAAC,CAAC,sCAAsC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF;;AAEA;GACE,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,IAAI,KAAK,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;AACpI,GAAE,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,KAAI,MAAM,IAAI,mBAAmB,CAAC,CAAC,oCAAoC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACpF;;AAEA;AACA,GAAE,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC;AAChH,GAAE,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,KAAI,MAAM,IAAI,mBAAmB,CAAC,CAAC,uCAAuC,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1J;;GAEE,OAAO,qBAAqB,CAAC,CAAC;AAChC;;AAEA,CAAA,SAAS,eAAe,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE;AACrD,GAAE,MAAM,QAAQ,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK;AAC/E,GAAE,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,UAAU,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;GAC7E,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE;AACnG,GAAE,cAAc,CAAC,IAAI,CAAC,eAAe;AACrC,GAAE,OAAO;AACT;;AAEA,CAAA,SAAS,kBAAkB,EAAE,cAAc,EAAE,GAAG,EAAE;GAChD,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,IAAI;AACrD,KAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5B,OAAM,OAAO;AACb;AACA,KAAI,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG;IAC9B;AACH,GAAE,IAAI,KAAK,KAAK,EAAE,EAAE;AACpB,KAAI,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAClC;AACA;;CAEA,SAAS,QAAQ,EAAE,IAAI,EAAE;AACzB,GAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG;AACjD,GAAE,OAAO;AACT,KAAI,IAAI;AACR,KAAI,MAAM;AACV,KAAI,IAAI;AACR,KAAI,OAAO;KACP;AACJ;AACA;;CAEA,SAAS,iBAAiB,EAAE,IAAI,EAAE;AAClC,GAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACtE,KAAI,GAAG,aAAa;KAChB,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACzB,KAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvF,IAAG,EAAE,EAAE;AACP;;AAEA;AACA;AACA;AACA;CACA,SAAS,aAAa,EAAE,UAAU,EAAE;AACpC,GAAE,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI;AACrC;;CAEA,eAAe,WAAW,EAAE,IAAI,EAAE;GAChC,MAAM,OAAO,GAAG;AAClB,GAAE,WAAW,MAAM,IAAI,IAAI,IAAI,EAAE;AACjC,KAAI,OAAO,CAAC,IAAI,CAAC,IAAI;AACrB;GACE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM;AAC/C;;AAEA;AACA;AACA;AACA,CAAA,SAAS,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC;AACA,GAAE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI;GACzB,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG;;GAE3D,YAAY,CAAC,YAAY;;AAE3B;AACA,GAAE,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClC,KAAI,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnF;;AAEA;GACE,MAAM,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG;AACnF,GAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG;;AAElC;GACE,YAAY,CAAC,QAAQ,GAAG,CAAC,OAAO,IAAI,YAAY,IAAI;AACtD,GAAE,YAAY,CAAC,OAAO,GAAG,YAAY,GAAG;;AAExC;AACA,GAAE,IAAI,KAAK,KAAK,IAAI,EAAE;AACtB,KAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG;AAC7C,KAAI,OAAO,CAAC,OAAO,CAAC,KAAK;AACzB,KAAI,OAAO;AACX;;AAEA;GACE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE;KAC1C,UAAU,CAAC,MAAM;AACrB,OAAM,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACnC,MAAK,EAAE,KAAK;AACZ,IAAG,MAAM;AACT,KAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AACjC;;GAEE,SAAS,WAAW,EAAE,cAAc,EAAE,KAAK,GAAG,IAAI,EAAE;AACtD;KACI,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;AAClD,SAAQ,qBAAqB,CAAC,IAAI,CAAC,OAAO;AAC1C,SAAQ,IAAI,CAAC;AACb,KAAI,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK;SAC1B,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC;;AAER;AACA,KAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,OAAM,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC;OAC3D;AACN;;AAEA,KAAI,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI;AAC7C,KAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO;AACrD,KAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,QAAQ;;KAEnD,OAAO,CAAC,KAAK,GAAG;AACpB,KAAI,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC;KAChF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5C,KAAI,OAAO,CAAC,UAAU,CAAC,gBAAgB;AACvC,KAAI,kBAAkB,CAAC,cAAc,EAAE,GAAG;AAC1C;;GAEE,SAAS,MAAM,IAAI;;AAErB,GAAE,OAAO;AACT;;AAEA,CAAA,SAAS,iBAAiB,IAAI;AAC9B,GAAE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;AAC/B,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AAC7B,GAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB;;AAEjD,GAAE,OAAO,SAAS,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C,KAAI,IAAI,KAAK,CAAC,YAAY,EAAE;AAC5B,OAAM,IAAI;SACF,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO;QACtC,CAAC,OAAO,KAAK,EAAE;AACtB,SAAQ,IAAI,KAAK,YAAY,mBAAmB,EAAE;AAClD,WAAU,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;AAClD,WAAU,IAAI,UAAU,KAAK,KAAK,EAAE;AACpC,aAAY,MAAM,IAAI,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,+BAA+B,EAAE,MAAM,CAAC,uCAAuC,CAAC;AAC3I;AACA,WAAU,IAAI,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;aACvC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO;AACrD,YAAW,MAAM;AACjB,aAAY,MAAM,IAAI,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,+BAA+B,EAAE,MAAM,CAAC,6DAA6D,CAAC;AACjK;AACA,UAAS,MAAM;AACf,WAAU,MAAM;AAChB;AACA;AACA,MAAK,MAAM;OACL,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO;AAC/C;AACA;AACA;;AAEA,CAAA,SAAS,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE;AAC9C,GAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM;AAC5B,GAAE,IAAI,UAAU,KAAK,IAAI,EAAE;AAC3B,KAAI,OAAO;IACR,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AACvG,KAAI,OAAO;AACX;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,gBAAgB,EAAE,IAAI,EAAE;GAC/B,IAAI,IAAI,EAAE;AACZ,KAAI,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG;AACtC,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,SAAc,GAAG;AACjB,GAAE,eAAe;AACjB,GAAE,eAAe;AACjB,GAAE,eAAe;AACjB,GAAE,kBAAkB;AACpB,GAAE,QAAQ;AACV,GAAE,iBAAiB;AACnB,GAAE,UAAU;AACZ,GAAE,WAAW;AACb,GAAE,aAAa;AACf,GAAE,YAAY;AACd,GAAE,iBAAiB;AACnB,GAAE,eAAe;AACjB,GAAE,gBAAgB;GAChB;AACF;;;;;;;;;;;;AC5VA,CAAA,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAGR,gBAAA;CACvD,MAAM;AACN,GAAE,WAAW;AACb,GAAE,YAAY;AACd,GAAE,eAAe;AACjB,GAAE,gBAAgB;AAClB,GAAE,cAAc;GACd;AACF,EAAC,GAAGD,kBAAA;CACJ,MAAM,EAAE,oBAAoB,EAAE,GAAGE,eAAA;CACjC,MAAM,EAAE,QAAQ,EAAE,GAAGC,aAAA;;AAErB;AACA;AACA;AACA,CAAA,MAAM,SAAS,CAAC;AAChB,GAAE,WAAW,CAAC,CAAC,YAAY,EAAE;AAC7B,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG;AAC1B;;AAEA;AACA;AACA;AACA,GAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;AACnB,KAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;AACtF,OAAM,MAAM,IAAI,oBAAoB,CAAC,sCAAsC;AAC3E;;AAEA,KAAI,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG;AAChC,KAAI,OAAO;AACX;;AAEA;AACA;AACA;GACE,OAAO,CAAC,GAAG;AACb,KAAI,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,GAAG;AAClC,KAAI,OAAO;AACX;;AAEA;AACA;AACA;AACA,GAAE,KAAK,CAAC,CAAC,WAAW,EAAE;AACtB,KAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE;AAC/F,OAAM,MAAM,IAAI,oBAAoB,CAAC,yCAAyC;AAC9E;;AAEA,KAAI,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG;AAChC,KAAI,OAAO;AACX;AACA;;AAEA;AACA;AACA;AACA,CAAA,MAAM,eAAe,CAAC;AACtB,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE;AACrC,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,MAAM,IAAI,oBAAoB,CAAC,wBAAwB;AAC7D;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;AAC1C,OAAM,MAAM,IAAI,oBAAoB,CAAC,2BAA2B;AAChE;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;OACtC,IAAI,CAAC,MAAM,GAAG;AACpB;AACA;AACA;AACA;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvC,OAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,SAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK;AAClD,QAAO,MAAM;AACb;SACQ,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS;SAC9C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC;AACnD;AACA;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;OACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;AAC3C;;AAEA,KAAI,IAAI,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI;AACtC,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,KAAI,IAAI,CAAC,eAAe,CAAC,GAAG;AAC5B,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG;AAC7B,KAAI,IAAI,CAAC,cAAc,CAAC,GAAG;AAC3B;;GAEE,2BAA2B,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,EAAE,EAAE;AACvE,KAAI,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI;AAC7C,KAAI,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,CAAC,MAAM,EAAE,GAAG;AAC7F,KAAI,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,eAAe,CAAC,OAAO;AAC5F,KAAI,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ;;KAEzE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ;AAChD;;GAEE,uBAAuB,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE;AAC9D,KAAI,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;AAC3C,OAAM,MAAM,IAAI,oBAAoB,CAAC,4BAA4B;AACjE;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACrC,OAAM,MAAM,IAAI,oBAAoB,CAAC,sBAAsB;AAC3D;AACA,KAAI,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AAC7C,OAAM,MAAM,IAAI,oBAAoB,CAAC,mCAAmC;AACxE;AACA;;AAEA;AACA;AACA;AACA,GAAE,KAAK,CAAC,CAAC,SAAS,EAAE;AACpB;AACA;AACA,KAAI,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AACzC;AACA;AACA;AACA,OAAM,MAAM,uBAAuB,GAAG,CAAC,IAAI,KAAK;AAChD;AACA,SAAQ,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI;;AAE3C;AACA,SAAQ,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAC9C,WAAU,MAAM,IAAI,oBAAoB,CAAC,8CAA8C;AACvF;;AAEA,SAAQ,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG;SACxD,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe;AACtE;AACA;AACA,SAAQ,OAAO;WACL,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe;AAC/E;AACA;;AAEA;AACA,OAAM,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,uBAAuB;AAC5G,OAAM,OAAO,IAAI,SAAS,CAAC,eAAe;AAC1C;;AAEA;AACA;AACA;AACA;AACA,KAAI,MAAM,CAAC,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;KACnE,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe;;AAElE;KACI,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe;AAC3F,KAAI,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,YAAY;AAC/F,KAAI,OAAO,IAAI,SAAS,CAAC,eAAe;AACxC;;AAEA;AACA;AACA;AACA,GAAE,cAAc,CAAC,CAAC,KAAK,EAAE;AACzB,KAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,OAAM,MAAM,IAAI,oBAAoB,CAAC,uBAAuB;AAC5D;;AAEA,KAAI,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE;AAC5F,KAAI,OAAO,IAAI,SAAS,CAAC,eAAe;AACxC;;AAEA;AACA;AACA;AACA,GAAE,mBAAmB,CAAC,CAAC,OAAO,EAAE;AAChC,KAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AACxC,OAAM,MAAM,IAAI,oBAAoB,CAAC,yBAAyB;AAC9D;;AAEA,KAAI,IAAI,CAAC,eAAe,CAAC,GAAG;AAC5B,KAAI,OAAO;AACX;;AAEA;AACA;AACA;AACA,GAAE,oBAAoB,CAAC,CAAC,QAAQ,EAAE;AAClC,KAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,OAAM,MAAM,IAAI,oBAAoB,CAAC,0BAA0B;AAC/D;;AAEA,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG;AAC7B,KAAI,OAAO;AACX;;AAEA;AACA;AACA;GACE,kBAAkB,CAAC,GAAG;AACxB,KAAI,IAAI,CAAC,cAAc,CAAC,GAAG;AAC3B,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,eAAA,CAAA,eAA8B,GAAG;AACjC,CAAA,eAAA,CAAA,SAAwB,GAAG;;;;;;;;;;;CC3M3B,MAAM,EAAE,SAAS,EAAE,GAAGF;AACtB,CAAA,MAAM,MAAM,GAAGD,aAAA;CACf,MAAM,EAAE,iBAAiB,EAAE,GAAGE,gBAAA;CAC9B,MAAM;AACN,GAAE,WAAW;AACb,GAAE,UAAU;AACZ,GAAE,MAAM;AACR,GAAE,cAAc;AAChB,GAAE,OAAO;AACT,GAAE,iBAAiB;GACjB;AACF,EAAC,GAAGC,kBAAA;CACJ,MAAM,EAAE,eAAe,EAAE,GAAGM,sBAAA;AAC5B,CAAA,MAAM,OAAO,GAAGC,gBAAA;CAChB,MAAM,EAAE,oBAAoB,EAAE,GAAGN,eAAA;;AAEjC;AACA;AACA;CACA,MAAM,UAAU,SAAS,MAAM,CAAC;AAChC,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE;AAC7B,KAAI,KAAK,CAAC,MAAM,EAAE,IAAI;;AAEtB,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC3E,OAAM,MAAM,IAAI,oBAAoB,CAAC,0CAA0C;AAC/E;;AAEA,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;;KAE3C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI;AAC/C,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;AAC5B;;AAEA,GAAE,KAAK,OAAO,CAAC,UAAU,EAAE,GAAG;KAC1B,OAAO,IAAI,CAAC,UAAU;AAC1B;;AAEA;AACA;AACA;AACA,GAAE,SAAS,CAAC,CAAC,IAAI,EAAE;KACf,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;AACtD;;GAEE,OAAO,MAAM,EAAE,GAAG;AACpB,KAAI,MAAM,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzC,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D;AACA;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;;CCxDjB,MAAM,EAAE,SAAS,EAAE,GAAGH;AACtB,CAAA,MAAM,IAAI,GAAGD,WAAA;CACb,MAAM,EAAE,iBAAiB,EAAE,GAAGE,gBAAA;CAC9B,MAAM;AACN,GAAE,WAAW;AACb,GAAE,UAAU;AACZ,GAAE,MAAM;AACR,GAAE,cAAc;AAChB,GAAE,OAAO;AACT,GAAE,iBAAiB;GACjB;AACF,EAAC,GAAGC,kBAAA;CACJ,MAAM,EAAE,eAAe,EAAE,GAAGM,sBAAA;AAC5B,CAAA,MAAM,OAAO,GAAGC,gBAAA;CAChB,MAAM,EAAE,oBAAoB,EAAE,GAAGN,eAAA;;AAEjC;AACA;AACA;CACA,MAAM,QAAQ,SAAS,IAAI,CAAC;AAC5B,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE;AAC7B,KAAI,KAAK,CAAC,MAAM,EAAE,IAAI;;AAEtB,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC3E,OAAM,MAAM,IAAI,oBAAoB,CAAC,0CAA0C;AAC/E;;AAEA,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AAC5B,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;;KAE3C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI;AAC/C,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;AAC5B;;AAEA,GAAE,KAAK,OAAO,CAAC,UAAU,EAAE,GAAG;KAC1B,OAAO,IAAI,CAAC,UAAU;AAC1B;;AAEA;AACA;AACA;AACA,GAAE,SAAS,CAAC,CAAC,IAAI,EAAE;KACf,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;AACtD;;GAEE,OAAO,MAAM,EAAE,GAAG;AACpB,KAAI,MAAM,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzC,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D;AACA;;AAEA,CAAA,QAAc,GAAG;;;;;;;;;;;ACxDjB,CAAA,MAAM,SAAS,GAAG;GAChB,OAAO,EAAE,IAAI;GACb,EAAE,EAAE,IAAI;GACR,GAAG,EAAE,KAAK;AACZ,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,MAAM,OAAO,GAAG;GACd,OAAO,EAAE,MAAM;GACf,EAAE,EAAE,KAAK;GACT,GAAG,EAAE,MAAM;AACb,GAAE,IAAI,EAAE;AACR;;AAEA,CAAc,UAAA,GAAG,MAAM,UAAU,CAAC;AAClC,GAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE;KAC7B,IAAI,CAAC,QAAQ,GAAG;KAChB,IAAI,CAAC,MAAM,GAAG;AAClB;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,KAAI,MAAM,GAAG,GAAG,KAAK,KAAK;AAC1B,KAAI,MAAM,IAAI,GAAG,GAAG,GAAG,SAAS,GAAG;KAC/B,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC5C,KAAI,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI;AACjC;AACA;;;;;;;;;;;CC1BA,MAAM,EAAE,SAAS,EAAE,GAAGH;CACtB,MAAM,EAAE,OAAO,EAAE,GAAGD;;AAEpB;AACA;AACA;AACA,CAAc,4BAAA,GAAG,MAAM,4BAA4B,CAAC;GAClD,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE;AACvC,KAAI,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;OAC7B,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,SAAQ,EAAE,CAAC,IAAI,EAAE,KAAK;AACtB;MACK;;AAEL,KAAI,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC;AAC9B,OAAM,MAAM,EAAE,IAAI,CAAC,SAAS;AAC5B,OAAM,cAAc,EAAE;SACd,MAAM,EAAE,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/C;MACK;AACL;;AAEA,GAAE,MAAM,CAAC,CAAC,mBAAmB,EAAE;AAC/B,KAAI,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG;OAC/C,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;SACjF,MAAM,EAAE,MAAM;SACd,MAAM,EAAE,MAAM;SACd,IAAI,EAAE,IAAI;SACV,aAAa,EAAE,UAAU;AACjC,SAAQ,UAAU,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG;SAC/B,WAAW,EAAE,YAAY;AACjC,SAAQ,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG;AAChD,QAAO,CAAC;;AAER,KAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB;KACnC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ;AACzC;AACA;;;;;;;;;;;CCrCA,MAAM,EAAE,QAAQ,EAAE,GAAGC,gBAAA;AACrB,CAAA,MAAM,KAAK,GAAGD,YAAA;CACd,MAAM;AACN,GAAE,MAAM;AACR,GAAE,aAAa;AACf,GAAE,aAAa;AACf,GAAE,WAAW;AACb,GAAE,aAAa;AACf,GAAE,WAAW;AACb,GAAE,cAAc;AAChB,GAAE,QAAQ;GACR;AACF,EAAC,GAAGE,kBAAA;AACJ,CAAA,MAAM,UAAU,GAAGC,iBAAA;AACnB,CAAA,MAAM,QAAQ,GAAGM,eAAA;AACjB,CAAA,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAGC,gBAAA;AACzC,CAAA,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,GAAGN,eAAA;AAC9C,CAAA,MAAM,UAAU,GAAGO,iBAAA;AACnB,CAAA,MAAM,UAAU,GAAGM,iBAAA;AACnB,CAAA,MAAM,4BAA4B,GAAGL,mCAAA;;AAErC,CAAA,MAAM,WAAW,CAAC;AAClB,GAAE,WAAW,CAAC,CAAC,KAAK,EAAE;KAClB,IAAI,CAAC,KAAK,GAAG;AACjB;;GAEE,KAAK,CAAC,GAAG;KACP,OAAO,IAAI,CAAC;AAChB;AACA;;CAEA,MAAM,SAAS,SAAS,UAAU,CAAC;AACnC,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;KACjB,KAAK,CAAC,IAAI;;AAEd,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG;;AAE1B;AACA,KAAI,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,GAAG;AAC3E,OAAM,MAAM,IAAI,oBAAoB,CAAC,0CAA0C;AAC/E;AACA,KAAI,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI;AAClE,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;;AAEnB,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ;AACnC,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,IAAI;AAC1C;;AAEA,GAAE,GAAG,CAAC,CAAC,MAAM,EAAE;KACX,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM;;KAE3C,IAAI,CAAC,UAAU,EAAE;AACrB,OAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;AACxC,OAAM,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,UAAU;AAC5C;AACA,KAAI,OAAO;AACX;;AAEA,GAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC3B;AACA,KAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM;KACpB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO;AAC9C;;GAEE,MAAM,KAAK,CAAC,GAAG;AACjB,KAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;AAC5B,KAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK;AACxB;;GAEE,UAAU,CAAC,GAAG;AAChB,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG;AAC1B;;GAEE,QAAQ,CAAC,GAAG;AACd,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG;AAC1B;;AAEA,GAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE;AAC7B,KAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,YAAY,MAAM,EAAE;OAC7F,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC5C,SAAQ,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO;AACtC,QAAO,MAAM;AACb,SAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO;AACpC;AACA,MAAK,MAAM,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;AAC/C,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG;AAC1B,MAAK,MAAM;AACX,OAAM,MAAM,IAAI,oBAAoB,CAAC,6DAA6D;AAClG;AACA;;GAEE,iBAAiB,CAAC,GAAG;AACvB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB;;AAEA;AACA;GACE,IAAI,YAAY,CAAC,GAAG;KAClB,OAAO,IAAI,CAAC,aAAa;AAC7B;;AAEA,GAAE,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE;AACvC,KAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC;AAC1D;;AAEA,GAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AACtB,KAAI,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;AACrE,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,KAAK;AAC5D,SAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW;AAC1C,SAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,WAAW;AACxC;;AAEA,GAAE,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE;AAC3B;KACI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM;KACrC,IAAI,GAAG,EAAE;OACP,OAAO,GAAG,CAAC,KAAK;AACtB;;AAEA;AACA,KAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;OAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,uBAAuB;AAC/D,OAAM,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,UAAU;AAC5C,OAAM,OAAO;AACb;;AAEA;AACA,KAAI,KAAK,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC3E,OAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,KAAK;AACxD,OAAM,IAAI,qBAAqB,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;SAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;AAChD,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,UAAU;AAC9C,SAAQ,UAAU,CAAC,WAAW,CAAC,GAAG,qBAAqB,CAAC,WAAW;AACnE,SAAQ,OAAO;AACf;AACA;AACA;;GAEE,CAAC,cAAc,EAAE,GAAG;KAClB,OAAO,IAAI,CAAC,WAAW;AAC3B;;GAEE,mBAAmB,CAAC,GAAG;AACzB,KAAI,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ;;KAEtC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAChD,QAAO,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACzG,QAAO,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO;AACtC;;AAEA,GAAE,2BAA2B,CAAC,CAAC,EAAE,4BAA4B,GAAG,IAAI,4BAA4B,EAAE,EAAE,GAAG,EAAE,EAAE;AAC3G,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB;;AAE5C,KAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;OACxB;AACN;;AAEA,KAAI,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;;KAEzF,MAAM,IAAI,WAAW,CAAC;AAC1B,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;;AAEvD,EAAE,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9C,CAAC,CAAC,IAAI,EAAE;AACR;AACA;;AAEA,CAAA,SAAc,GAAG;;;;;;;;;;;CCxKjB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAGX,gBAAA;CACpD,MAAM,EAAE,GAAG,EAAE,GAAGD;AAChB,CAAA,MAAM,KAAK,GAAGE,YAAA;AACd,CAAA,MAAM,IAAI,GAAGC,WAAA;AACb,CAAA,MAAM,cAAc,GAAGM,qBAAA;AACvB,CAAA,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAGC,eAAA;AACtD,CAAA,MAAM,cAAc,GAAGN,cAAA;;AAEvB,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa;AACnC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc;AACrC,CAAA,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe;AAC5C,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,sBAAsB;AACjD,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB;AAC7C,CAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,2BAA2B;;CAE3D,SAAS,mBAAmB,EAAE,QAAQ,EAAE;AACxC,GAAE,OAAO,QAAQ,KAAK,QAAQ,GAAG,GAAG,GAAG;AACvC;;CAEA,SAAS,iBAAiB,EAAE,IAAI,EAAE;AAClC,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI;AACtB;;GAEE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAC1B,KAAI,MAAM,IAAI,oBAAoB,CAAC,6BAA6B;AAChE;;AAEA,GAAE,OAAO;AACT,KAAI,GAAG,EAAE,IAAI,CAAC,GAAG;AACjB,KAAI,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI;AAC/B;AACA;;AAEA,CAAA,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;AACvC,GAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;AAC9B;;CAEA,MAAM,UAAU,SAAS,cAAc,CAAC;AACxC,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;KACjB,KAAK,CAAC,IAAI;AACd,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI;KACrC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI;KAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU;SACjH,IAAI,CAAC,YAAY,CAAC;SAClB;;AAER,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI;AACxB;;KAEI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAC5B,OAAM,MAAM,IAAI,oBAAoB,CAAC,6BAA6B;AAClE;;AAEA,KAAI,MAAM,EAAE,aAAa,GAAG,cAAc,EAAE,GAAG;;AAE/C,KAAI,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;AAC7C,OAAM,MAAM,IAAI,oBAAoB,CAAC,8CAA8C;AACnF;;AAEA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAC7B,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;KACvB,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI;;KAEtC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG;AACxC,KAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG;;KAEnD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACjC,OAAM,MAAM,IAAI,oBAAoB,CAAC,yDAAyD;AAC9F,MAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AAC1B;AACA,OAAM,IAAI,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;AACtE,MAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;OACrB,IAAI,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AACxD,MAAK,MAAM,IAAI,QAAQ,IAAI,QAAQ,EAAE;AACrC,OAAM,IAAI,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9J;;KAEI,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AACvD,KAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;KAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;AAC7B,OAAM,GAAG,IAAI;AACb,OAAM,OAAO,EAAE,OAAO,IAAI,EAAE,QAAQ,KAAK;AACzC,SAAQ,IAAI,aAAa,GAAG,IAAI,CAAC;AACjC,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;WACd,aAAa,IAAI,CAAC,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClE;AACA,SAAQ,IAAI;AACZ,WAAU,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACrE,aAAY,MAAM;AAClB,aAAY,IAAI;aACJ,IAAI,EAAE,aAAa;AAC/B,aAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,aAAY,OAAO,EAAE;AACrB,eAAc,GAAG,IAAI,CAAC,aAAa,CAAC;eACtB;AACd;YACW;AACX,WAAU,IAAI,UAAU,KAAK,GAAG,EAAE;aACtB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO;AAChD,aAAY,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAC1G;AACA,WAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1C,aAAY,QAAQ,CAAC,IAAI,EAAE,MAAM;aACrB;AACZ;AACA,WAAU,IAAI;AACd,WAAU,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;AACjC,aAAY,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3C,YAAW,MAAM;aACL,UAAU,GAAG,IAAI,CAAC;AAC9B;AACA,WAAU,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ;UAC7E,CAAC,OAAO,GAAG,EAAE;WACZ,QAAQ,CAAC,GAAG;AACtB;AACA;MACK;AACL;;AAEA,GAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;KACvB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM;AACxC,KAAI,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO;KACzC,sBAAsB,CAAC,OAAO;AAClC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ;OAC1B;AACN,SAAQ,GAAG,IAAI;AACf,SAAQ,OAAO,EAAE;AACjB,WAAU,GAAG,OAAO;WACV;AACV;QACO;OACD;AACN;AACA;;GAEE,OAAO,MAAM,EAAE,GAAG;AACpB,KAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK;AAC5B,KAAI,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK;AAC7B;;GAEE,OAAO,QAAQ,EAAE,GAAG;AACtB,KAAI,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO;AAC9B,KAAI,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO;AAC/B;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,YAAY,EAAE,OAAO,EAAE;AAChC;AACA;AACA,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B;KACI,MAAM,WAAW,GAAG;;AAExB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,OAAM,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC;AAC7C;;AAEA,KAAI,OAAO;AACX;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,sBAAsB,EAAE,OAAO,EAAE;GACxC,MAAM,cAAc,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO;MAClD,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,KAAK,qBAAqB;GAC5D,IAAI,cAAc,EAAE;AACtB,KAAI,MAAM,IAAI,oBAAoB,CAAC,8DAA8D;AACjG;AACA;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;AC5LjB,CAAA,MAAM,MAAM,GAAGH;;CAEf,MAAM,EAAE,yBAAyB,EAAE,GAAGD,gBAAA;CACtC,MAAM,EAAE,iBAAiB,EAAE,GAAGE,eAAA;AAC9B,CAAA,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAGC,aAAA;;CAExD,SAAS,yBAAyB,EAAE,UAAU,EAAE;AAChD,GAAE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG;GACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG;;AAEhD,GAAE,OAAO;AACT;;AAEA,CAAA,MAAM,YAAY,CAAC;AACnB,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC/B,KAAI,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG;AAC9C,KAAI,MAAM;AACV;OACM,KAAK,EAAE,OAAO;AACpB,OAAM,UAAU;AAChB,OAAM,UAAU;AAChB,OAAM,UAAU;AAChB,OAAM,aAAa;AACnB;AACA,OAAM,OAAO;AACb,OAAM,UAAU;AAChB,OAAM,UAAU;OACV;MACD,GAAG,YAAY,IAAI;;AAExB,KAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,KAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;KACxB,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,OAAO,GAAG;KACf,IAAI,CAAC,SAAS,GAAG;AACrB,OAAM,KAAK,EAAE,OAAO,IAAI,YAAY,CAAC,yBAAyB,CAAC;AAC/D,OAAM,UAAU,EAAE,UAAU,IAAI,IAAI;AACpC,OAAM,UAAU,EAAE,UAAU,IAAI,EAAE,GAAG,IAAI;AACzC,OAAM,OAAO,EAAE,UAAU,IAAI,GAAG;AAChC,OAAM,aAAa,EAAE,aAAa,IAAI,CAAC;AACvC,OAAM,UAAU,EAAE,UAAU,IAAI,CAAC;AACjC;AACA,OAAM,OAAO,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;AAC9E;AACA,OAAM,WAAW,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC3D;OACM,UAAU,EAAE,UAAU,IAAI;AAChC,SAAQ,YAAY;AACpB,SAAQ,cAAc;AACtB,SAAQ,WAAW;AACnB,SAAQ,UAAU;AAClB,SAAQ,aAAa;AACrB,SAAQ,WAAW;AACnB,SAAQ,cAAc;SACd;AACR;AACA;;KAEI,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,KAAK,GAAG;KACb,IAAI,CAAC,GAAG,GAAG;KACX,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,MAAM,GAAG;;AAElB;AACA,KAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI;OAC/B,IAAI,CAAC,OAAO,GAAG;AACrB,OAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACtB,SAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;AACzB,QAAO,MAAM;SACL,IAAI,CAAC,MAAM,GAAG;AACtB;MACK;AACL;;GAEE,aAAa,CAAC,GAAG;AACnB,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AACpC,OAAM,IAAI,CAAC,OAAO,CAAC,aAAa;AAChC;AACA;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE;AAC1C,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;OAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM;AACxD;AACA;;AAEA,GAAE,SAAS,CAAC,CAAC,KAAK,EAAE;AACpB,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,OAAM,KAAK,CAAC,IAAI,CAAC,MAAM;AACvB,MAAK,MAAM;OACL,IAAI,CAAC,KAAK,GAAG;AACnB;AACA;;AAEA,GAAE,UAAU,CAAC,CAAC,KAAK,EAAE;AACrB,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;AACrE;;AAEA,GAAE,QAAQ,yBAAyB,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;KAC5D,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG;AAC1C,KAAI,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG;AACrC,KAAI,MAAM;AACV,OAAM,UAAU;AAChB,OAAM,OAAO;AACb,OAAM,UAAU;AAChB,OAAM,aAAa;AACnB,OAAM,WAAW;AACjB,OAAM,UAAU;OACV;AACN,MAAK,GAAG;AACR,KAAI,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG;;AAEtC,KAAI,cAAc;OACZ,cAAc,IAAI,IAAI,IAAI,cAAc,GAAG,CAAC,GAAG,cAAc,GAAG;;AAEtE;KACI;AACJ,OAAM,IAAI;OACJ,IAAI,KAAK,mBAAmB;OAC5B,IAAI,KAAK,gBAAgB;AAC/B,OAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI;OACzB;OACA,EAAE,CAAC,GAAG;OACN;AACN;;AAEA;AACA,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;OACvD,EAAE,CAAC,GAAG;OACN;AACN;;AAEA;KACI;OACE,UAAU,IAAI,IAAI;AACxB,OAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAChC,OAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU;OAChC;OACA,EAAE,CAAC,GAAG;OACN;AACN;;AAEA;AACA,KAAI,IAAI,OAAO,GAAG,UAAU,EAAE;OACxB,EAAE,CAAC,GAAG;OACN;AACN;;KAEI,IAAI,gBAAgB,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa;KAC/D,IAAI,gBAAgB,EAAE;AAC1B,OAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;AAChD,OAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;WACrC,yBAAyB,CAAC,gBAAgB;WAC1C,gBAAgB,GAAG,IAAG;AAChC;;AAEA,KAAI,MAAM,YAAY;AACtB,OAAM,gBAAgB,GAAG;AACzB,WAAU,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU;WACrC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,aAAa,IAAI,OAAO,EAAE,UAAU;;KAEpE,KAAK,CAAC,cAAc,GAAG;;KAEvB,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY;AAC3C;;GAEE,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE;AAC5D,KAAI,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU;;KAEvC,IAAI,CAAC,UAAU,IAAI;;AAEvB,KAAI,IAAI,UAAU,IAAI,GAAG,EAAE;OACrB,IAAI,CAAC,KAAK;AAChB,SAAQ,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,EAAE;AAC5D,WAAU,OAAO;WACP,KAAK,EAAE,IAAI,CAAC;UACb;AACT;AACA,OAAM,OAAO;AACb;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;OACvB,IAAI,CAAC,MAAM,GAAG;;AAEpB,OAAM,IAAI,UAAU,KAAK,GAAG,EAAE;AAC9B,SAAQ,OAAO;AACf;;OAEM,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC;AACpE;OACM,IAAI,CAAC,YAAY,EAAE;SACjB,IAAI,CAAC,KAAK;AAClB,WAAU,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,UAAU,EAAE;AACtE,aAAY,OAAO;aACP,KAAK,EAAE,IAAI,CAAC;YACb;AACX;AACA,SAAQ,OAAO;AACf;;AAEA;AACA,OAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;SACnD,IAAI,CAAC,KAAK;AAClB,WAAU,IAAI,iBAAiB,CAAC,eAAe,EAAE,UAAU,EAAE;AAC7D,aAAY,OAAO;aACP,KAAK,EAAE,IAAI,CAAC;YACb;AACX;AACA,SAAQ,OAAO;AACf;;OAEM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG;;OAEpC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,wBAAwB;AAC3D,OAAM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,wBAAwB;;OAErE,IAAI,CAAC,MAAM,GAAG;AACpB,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;AAC1B,OAAM,IAAI,UAAU,KAAK,GAAG,EAAE;AAC9B;SACQ,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC;;AAE/D,SAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,WAAU,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;AACvC,aAAY,UAAU;AACtB,aAAY,UAAU;AACtB,aAAY,MAAM;aACN;AACZ;AACA;;SAEQ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG;;AAE5C,SAAQ,MAAM;AACd,WAAU,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;WAC/D;AACV;AACA,SAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrC,SAAQ,MAAM;AACd,WAAU,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;WACvD;AACV;;SAEQ,IAAI,CAAC,KAAK,GAAG;SACb,IAAI,CAAC,GAAG,GAAG;AACnB;;AAEA;AACA,OAAM,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;AAC5B,SAAQ,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB;AACtD,SAAQ,IAAI,CAAC,GAAG,GAAG,aAAa,IAAI,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG;AACnE;;OAEM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,OAAM,MAAM;AACZ,SAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;SAC7C;AACR;;OAEM,IAAI,CAAC,MAAM,GAAG;AACpB,OAAM,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG;;AAExD,OAAM,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;AACnC,SAAQ,UAAU;AAClB,SAAQ,UAAU;AAClB,SAAQ,MAAM;SACN;AACR;AACA;;KAEI,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,EAAE;AACpE,OAAM,OAAO;OACP,KAAK,EAAE,IAAI,CAAC;MACb;;AAEL,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG;;AAElB,KAAI,OAAO;AACX;;AAEA,GAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,KAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;;AAExB,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;AACpC;;AAEA,GAAE,UAAU,CAAC,CAAC,WAAW,EAAE;KACvB,IAAI,CAAC,UAAU,GAAG;AACtB,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW;AAC9C;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,EAAE;AAChB,KAAI,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrD,OAAM,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;AACrC;;AAEA,KAAI,IAAI,CAAC,SAAS,CAAC,KAAK;AACxB,OAAM,GAAG;OACH;AACN,SAAQ,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE;AAC9E,SAAQ,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI;QACnD;AACP,OAAM,OAAO,CAAC,IAAI,CAAC,IAAI;AACvB;;AAEA,KAAI,SAAS,OAAO,EAAE,GAAG,EAAE;AAC3B,OAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtE,SAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;AACvC;;AAEA,OAAM,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;SACpB,IAAI,CAAC,IAAI,GAAG;WACV,GAAG,IAAI,CAAC,IAAI;AACtB,WAAU,OAAO,EAAE;AACnB,aAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AAChC,aAAY,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACzD;AACA;AACA;;AAEA,OAAM,IAAI;SACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI;QAC9B,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG;AAChC;AACA;AACA;AACA;;AAEA,CAAA,cAAc,GAAG;;;;;;;;;;;AC7UjB;AACA;AACA,CAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B;CAC/D,MAAM,EAAE,oBAAoB,EAAE,GAAGF,eAAA;AACjC,CAAA,MAAM,KAAK,GAAGD,YAAA;;AAEd,CAAA,IAAI,mBAAmB,EAAE,KAAK,SAAS,EAAE;AACzC,GAAE,mBAAmB,CAAC,IAAI,KAAK,EAAE;AACjC;;CAEA,SAAS,mBAAmB,EAAE,KAAK,EAAE;GACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;AACtD,KAAI,MAAM,IAAI,oBAAoB,CAAC,qCAAqC;AACxE;AACA,GAAE,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,gBAAgB,EAAE;KAClD,KAAK,EAAE,KAAK;KACZ,QAAQ,EAAE,IAAI;KACd,UAAU,EAAE,KAAK;AACrB,KAAI,YAAY,EAAE;IACf;AACH;;AAEA,CAAA,SAAS,mBAAmB,IAAI;GAC9B,OAAO,UAAU,CAAC,gBAAgB;AACpC;;AAEA,CAAAgB,QAAc,GAAG;AACjB,GAAE,mBAAmB;GACnB;AACF;;;;;;;;;;;AC7BA,CAAc,kBAAA,GAAG,MAAM,gBAAgB,CAAC;AACxC,GAAE,WAAW,CAAC,CAAC,OAAO,EAAE;KACpB,IAAI,CAAC,OAAO,GAAG;AACnB;;AAEA,GAAE,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE;KAClB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;AACzC;;AAEA,GAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;KAChB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;AACvC;;AAEA,GAAE,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE;KAClB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;AACzC;;AAEA,GAAE,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE;KAClB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;AACzC;;AAEA,GAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE;KACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;AACtC;;AAEA,GAAE,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE;KACnB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;AAC1C;;AAEA,GAAE,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE;KACnB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;AAC1C;AACA;;;;;;;;;;;AC9BA,CAAA,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAGf,gBAAA;CACrC,MAAM,EAAE,MAAM,EAAE,GAAGD,gBAAA;CACnB,MAAM,EAAE,mBAAmB,EAAE,GAAGE,aAAA;CAChC,MAAM;AACN,GAAE,YAAY;AACd,GAAE,iBAAiB;GACjB;AACF,EAAC,GAAGC,aAAA;AACJ,CAAA,MAAM,IAAI,GAAGM;CACb,MAAM,EAAE,MAAM,EAAE,GAAGC,aAAA;AACnB,CAAA,MAAM,MAAM,GAAGN;;AAEf,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa;AACxC,CAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,oBAAoB;;AAErD;AACA;AACA;CACA,SAAS,wBAAwB,EAAE,IAAI,EAAE;AACzC,GAAE,OAAO,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK;AACxE;;AAEA;AACA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,cAAc,EAAE;AAC/C;AACA;AACA;GACE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;;AAEpC,GAAE,OAAO,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;AAChF,GAAE,OAAO,CAAC,GAAG,CAAC,IAAI,wBAAwB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;;AAE5E,GAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;AAChG;;AAEA,CAAA,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;AAChC;;AAEA;AACA;AACA,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC5C,OAAM,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC;AAC7B;AACA,OAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,SAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;WAC5B,MAAM,EAAE,qBAAqB;WAC7B,OAAO,EAAE,CAAC,+CAA+C,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;UAC3E;AACT;;AAEA;AACA,OAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAChD;IACG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AAC5D;;AAEA;AACA;AACA,KAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;AACnC,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,OAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpD;AACA,IAAG,MAAM;AACT,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;OACnC,MAAM,EAAE,qBAAqB;OAC7B,QAAQ,EAAE,YAAY;AAC5B,OAAM,KAAK,EAAE,CAAC,gCAAgC,EAAE,gCAAgC;MAC3E;AACL;AACA;;AAEA;AACA;AACA;AACA,CAAA,SAAS,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;AAC7C;AACA,GAAE,KAAK,GAAG,oBAAoB,CAAC,KAAK;;AAEpC;AACA;AACA,GAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAChC,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;OAClC,MAAM,EAAE,gBAAgB;OACxB,KAAK,EAAE,IAAI;AACjB,OAAM,IAAI,EAAE;MACP;AACL,IAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AACzC,KAAI,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;OAClC,MAAM,EAAE,gBAAgB;AAC9B,OAAM,KAAK;AACX,OAAM,IAAI,EAAE;MACP;AACL;;AAEA;AACA;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AACvC,KAAI,MAAM,IAAI,SAAS,CAAC,WAAW;IAChC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,iBAAiB,EAAE;;AAKpD;AACA;;AAEA;GACE,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK;;AAEjD;AACA;AACA;;AAEA,CAAA,MAAM,WAAW,CAAC;AAClB;AACA,GAAE,OAAO,GAAG;;AAEZ,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,KAAI,IAAI,IAAI,YAAY,WAAW,EAAE;OAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACnD,OAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,iBAAiB;AACtD,OAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO;AACpE,MAAK,MAAM;OACL,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI;AACtC,OAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG;AAChC;AACA;;AAEA;AACA,GAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;AAClB;AACA;AACA;AACA,KAAI,IAAI,GAAG,IAAI,CAAC,WAAW;;KAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI;AACrC;;GAEE,KAAK,CAAC,GAAG;AACX,KAAI,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK;AAC3B,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG;KAC1B,IAAI,CAAC,OAAO,GAAG;AACnB;;AAEA;AACA,GAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AACvB,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG;;AAE9B;AACA;AACA,KAAI,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW;KACtC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa;;AAEtD;KACI,IAAI,MAAM,EAAE;OACV,MAAM,SAAS,GAAG,aAAa,KAAK,QAAQ,GAAG,IAAI,GAAG;OACtD,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE;AAC3C,SAAQ,IAAI,EAAE,MAAM,CAAC,IAAI;AACzB,SAAQ,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC;QAC5C;AACP,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AAC1D;;AAEA,KAAI,IAAI,aAAa,KAAK,YAAY,EAAE;OAClC,IAAI,CAAC,OAAO,KAAK;AACvB,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AAC7B;AACA;;AAEA;AACA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AACpB,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG;AAC9B,KAAI,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW;;AAE1C,KAAI,IAAI,aAAa,KAAK,YAAY,EAAE;AACxC,OAAM,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK;AAC3B;;AAEA;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;AACxD;;AAEA;AACA,GAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,KAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG;;AAE9B,KAAI,IAAI,GAAG,IAAI,CAAC,WAAW;;AAE3B,KAAI,IAAI,IAAI,KAAK,YAAY,EAAE;OACzB,IAAI,CAAC,OAAO,GAAG;AACrB;;AAEA,KAAI,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI;AACjC;;AAEA;AACA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACb,KAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE;;AAE1D;AACA;AACA;AACA;KACI,OAAO,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9C;;AAEA,GAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG;AACzB;AACA,KAAI,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;AACvD,OAAM,MAAM,CAAC,IAAI,EAAE,KAAK;AACxB;AACA;;GAEE,IAAI,OAAO,CAAC,GAAG;KACb,MAAM,OAAO,GAAG;;AAEpB,KAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;AAChC,OAAM,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;AAChE,SAAQ,OAAO,CAAC,IAAI,CAAC,GAAG;AACxB;AACA;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA;AACA,CAAA,MAAM,OAAO,CAAC;AACd,GAAE,WAAW,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE;AACjC,KAAI,IAAI,IAAI,KAAK,UAAU,EAAE;OACvB;AACN;AACA,KAAI,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,WAAW;;AAExC;;AAEA;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;;AAEnB;AACA,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;OACtB,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI;AAC/C,OAAM,IAAI,CAAC,IAAI,EAAE,IAAI;AACrB;AACA;;AAEA;AACA,GAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AACvB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE;;KAErE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;KACxC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK;;AAE9C,KAAI,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK;AACzC;;AAEA;AACA,GAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE;;KAErE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;;AAE5C;AACA,KAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAClC,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;SAClC,MAAM,EAAE,gBAAgB;SACxB,KAAK,EAAE,IAAI;AACnB,SAAQ,IAAI,EAAE;QACP;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AACtC,OAAM,MAAM,IAAI,SAAS,CAAC,WAAW;MAChC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,iBAAiB,EAAE;;AAInD;AACA;KACI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;OACtC;AACN;;AAEA;AACA;AACA;AACA,KAAI,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI;AAClC;;AAEA;AACA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;;KAElE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;;AAE5C;AACA,KAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAClC,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;SAClC,MAAM,EAAE,aAAa;SACrB,KAAK,EAAE,IAAI;AACnB,SAAQ,IAAI,EAAE;QACP;AACP;;AAEA;AACA;KACI,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI;AACtC;;AAEA;AACA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;;KAElE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;;AAE5C;AACA,KAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAClC,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;SAClC,MAAM,EAAE,aAAa;SACrB,KAAK,EAAE,IAAI;AACnB,SAAQ,IAAI,EAAE;QACP;AACP;;AAEA;AACA;KACI,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI;AAC3C;;AAEA;AACA,GAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;;KAElE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;KACxC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK;;AAE9C;AACA,KAAI,KAAK,GAAG,oBAAoB,CAAC,KAAK;;AAEtC;AACA;AACA,KAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AAClC,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;SAClC,MAAM,EAAE,aAAa;SACrB,KAAK,EAAE,IAAI;AACnB,SAAQ,IAAI,EAAE;QACP;AACP,MAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAC3C,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;SAClC,MAAM,EAAE,aAAa;AAC7B,SAAQ,KAAK;AACb,SAAQ,IAAI,EAAE;QACP;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AACtC,OAAM,MAAM,IAAI,SAAS,CAAC,WAAW;MAChC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,iBAAiB,EAAE;;AAInD;AACA;AACA;KACI,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;AACtC;;AAEA;GACE,YAAY,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA;AACA;;AAEA,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;;KAEhC,IAAI,IAAI,EAAE;OACR,OAAO,CAAC,GAAG,IAAI;AACrB;;AAEA,KAAI,OAAO;AACX;;AAEA;GACE,KAAK,iBAAiB,EAAE,GAAG;KACzB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,EAAE;AAC/C,OAAM,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB;AACjD;;AAEA;AACA;KACI,MAAM,OAAO,GAAG;;AAEpB;AACA;AACA,KAAI,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC;AAC7E,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;;AAEvC;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;OACrC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACnC;AACA,OAAM,IAAI,IAAI,KAAK,YAAY,EAAE;AACjC;AACA;;AAEA;AACA;AACA,SAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;WACvC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACzC;AACA,QAAO,MAAM;AACb;;AAEA;;AAEA;AACA,SAAQ,MAAM,CAAC,KAAK,KAAK,IAAI;;AAE7B;SACQ,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;AAClC;AACA;;AAEA,KAAI,IAAI,CAAC,YAAY,CAAC,CAAC,iBAAiB,CAAC,GAAG;;AAE5C;AACA,KAAI,OAAO;AACX;;GAEE,IAAI,CAAC,GAAG;AACV,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AACtC,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB;AAC1C,OAAM,OAAO,YAAY,CAAC,MAAM,KAAK,EAAE,SAAS;AAChD,SAAQ,KAAK;AACb;;AAEA,KAAI,OAAO,YAAY;OACjB,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AACjD,OAAM,SAAS;OACT;AACN;AACA;;GAEE,MAAM,CAAC,GAAG;AACZ,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AACtC,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB;AAC1C,OAAM,OAAO,YAAY,CAAC,MAAM,KAAK,EAAE,SAAS;AAChD,SAAQ,OAAO;AACf;;AAEA,KAAI,OAAO,YAAY;OACjB,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AACjD,OAAM,SAAS;OACT;AACN;AACA;;GAEE,OAAO,CAAC,GAAG;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE;AACtC,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB;AAC1C,OAAM,OAAO,YAAY,CAAC,MAAM,KAAK,EAAE,SAAS;AAChD,SAAQ,WAAW;AACnB;;AAEA,KAAI,OAAO,YAAY;OACjB,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,CAAC;AACjD,OAAM,SAAS;OACT;AACN;AACA;;AAEA;AACA;AACA;AACA;GACE,OAAO,CAAC,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,EAAE;AAC7C,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;;AAE1E,KAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;OACpC,MAAM,IAAI,SAAS;SACjB;AACR;AACA;;KAEI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;AACrC,OAAM,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;AAClD;AACA;;GAEE,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,GAAG;AAChD,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;KAE/B,OAAO,IAAI,CAAC,YAAY;AAC5B;AACA;;CAEA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;;AAEvD,CAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE;GACzC,MAAM,EAAE,mBAAmB;GAC3B,MAAM,EAAE,mBAAmB;GAC3B,GAAG,EAAE,mBAAmB;GACxB,GAAG,EAAE,mBAAmB;GACxB,GAAG,EAAE,mBAAmB;GACxB,YAAY,EAAE,mBAAmB;GACjC,IAAI,EAAE,mBAAmB;GACzB,MAAM,EAAE,mBAAmB;GAC3B,OAAO,EAAE,mBAAmB;GAC5B,OAAO,EAAE,mBAAmB;GAC5B,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE;AAC1C,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,SAAS;AACpB,KAAI,YAAY,EAAE;IACf;AACH,GAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;AACzB,KAAI,UAAU,EAAE;AAChB;EACC;;AAED,CAAA,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;GAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACxC,KAAI,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;OACtB,OAAO,MAAM,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC;AAClE;;KAEI,OAAO,MAAM,CAAC,UAAU,CAAC,gCAAgC,CAAC,CAAC,CAAC;AAChE;;AAEA,GAAE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;KACnC,MAAM,EAAE,qBAAqB;KAC7B,QAAQ,EAAE,YAAY;AAC1B,KAAI,KAAK,EAAE,CAAC,gCAAgC,EAAE,gCAAgC;IAC3E;AACH;;AAEA,CAAA,OAAc,GAAG;AACjB,GAAE,IAAI;AACN,GAAE,OAAO;GACP;AACF;;;;;;;;;;;AC9kBA,CAAA,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAGH,cAAA;AACvC,CAAA,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAGD,WAAA;AAC9C,CAAA,MAAM,IAAI,GAAGE,aAAA;CACb,MAAM,EAAE,mBAAmB,EAAE,GAAG;CAChC,MAAM;AACN,GAAE,mBAAmB;AACrB,GAAE,WAAW;AACb,GAAE,SAAS;AACX,GAAE,UAAU;AACZ,GAAE,oCAAoC;AACtC,GAAE,WAAW;GACX;AACF,EAAC,GAAGC,aAAA;CACJ,MAAM;AACN,GAAE,iBAAiB;AACnB,GAAE,cAAc;GACd;AACF,EAAC,GAAGM,kBAAA;CACJ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAGC,gBAAA;CAC7C,MAAM,EAAE,MAAM,EAAE,GAAGN,aAAA;CACnB,MAAM,EAAE,QAAQ,EAAE,GAAGO,eAAA;CACrB,MAAM,EAAE,eAAe,EAAE,GAAGM,eAAA;CAC5B,MAAM,EAAE,aAAa,EAAE,GAAGL,cAAA;AAC1B,CAAA,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAGC,gBAAA;AACrC,CAAA,MAAM,MAAM,GAAGK;CACf,MAAM,EAAE,KAAK,EAAE,GAAGC;;AAElB,CAAA,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,IAAIE,WAAqB,CAAC;AAC1E,CAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO;;AAE3C;AACA,CAAA,MAAM,QAAQ,CAAC;AACf;GACE,OAAO,KAAK,CAAC,GAAG;AAClB;AACA,KAAI,MAAM,aAAa,GAAG,EAAE,cAAc,EAAE,EAAE;;AAE9C;AACA;AACA;AACA,KAAI,MAAM,cAAc,GAAG,IAAI,QAAQ;AACvC,KAAI,cAAc,CAAC,MAAM,CAAC,GAAG,gBAAgB;AAC7C,KAAI,cAAc,CAAC,MAAM,CAAC,GAAG;AAC7B,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACpE,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AACvC,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AACvC,KAAI,OAAO;AACX;;AAEA;GACE,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AAChC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;;AAExE,KAAI,IAAI,IAAI,KAAK,IAAI,EAAE;OACjB,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI;AAChD;;AAEA;AACA,KAAI,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM;OAC9B,oCAAoC,CAAC,IAAI;AAC/C;;AAEA;AACA,KAAI,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK;;AAElC;AACA;AACA,KAAI,MAAM,aAAa,GAAG,EAAE,cAAc,EAAE,EAAE;AAC9C,KAAI,MAAM,cAAc,GAAG,IAAI,QAAQ;AACvC,KAAI,cAAc,CAAC,MAAM,CAAC,GAAG;AAC7B,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AACvC,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;;AAEvC;AACA,KAAI,kBAAkB,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE;;AAExF;AACA,KAAI,OAAO;AACX;;AAEA;GACE,OAAO,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE;AACtC,KAAI,MAAM,aAAa,GAAG,EAAE,cAAc,EAAE,EAAE;;AAE9C,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;;KAExE,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG;KACrC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,MAAM;;AAEvD;AACA;AACA;AACA;AACA,KAAI,IAAI;AACR,KAAI,IAAI;OACF,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE;MAC3C,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,2BAA2B,GAAG,GAAG,CAAC,EAAE;AAC5E,SAAQ,KAAK,EAAE;QACR;AACP;;AAEA;KACI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACxC,OAAM,MAAM,IAAI,UAAU,CAAC,sBAAsB,GAAG,MAAM;AAC1D;;AAEA;AACA;AACA,KAAI,MAAM,cAAc,GAAG,IAAI,QAAQ;AACvC,KAAI,cAAc,CAAC,MAAM,CAAC,GAAG;AAC7B,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AACvC,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;;AAEvC;AACA,KAAI,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG;;AAEpC;KACI,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC;;AAE3D;KACI,cAAc,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK;;AAE/D;AACA,KAAI,OAAO;AACX;;AAEA;GACE,WAAW,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE;AACvC,KAAI,IAAI,IAAI,KAAK,IAAI,EAAE;OACjB,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI;AAC5C;;KAEI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI;;AAE9C;KACI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE;;AAEvC;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE;;AAElC;AACA;AACA;KACI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,UAAU;AAC3C,KAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AAC7B,KAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;;AAExC;KACI,IAAI,YAAY,GAAG;;AAEvB;AACA,KAAI,IAAI,IAAI,IAAI,IAAI,EAAE;OAChB,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI;AACpD,OAAM,YAAY,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI;AAChD;;AAEA;AACA,KAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY;AAC/C;;AAEA;GACE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;GACE,IAAI,GAAG,CAAC,GAAG;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;;AAEjC;AACA;AACA;KACI,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI;;AAE/C,KAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AACtB,OAAM,OAAO;AACb;;AAEA,KAAI,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI;AAClC;;AAEA;GACE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;AACA;KACI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG;AACzC;;AAEA;GACE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;GACE,IAAI,EAAE,CAAC,GAAG;AACZ,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;AACA;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI;AAChE;;AAEA;GACE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;AACA;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;GACE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;KACI,OAAO,IAAI,CAAC,QAAQ;AACxB;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC1D;;GAEE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;KAEhC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM;AAC3E;;AAEA;GACE,KAAK,CAAC,GAAG;AACX,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ;;AAEpC;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1D,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,gBAAgB;AAChC,SAAQ,OAAO,EAAE;QACV;AACP;;AAEA;KACI,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAErD;AACA;AACA,KAAI,MAAM,oBAAoB,GAAG,IAAI,QAAQ;AAC7C,KAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG;AACnC,KAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;KAC1C,oBAAoB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;AAClE,KAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;AAClE,KAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;;AAElE,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,SAAS,CAAC,QAAQ;;AAElB,CAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE;GAC1C,IAAI,EAAE,mBAAmB;GACzB,GAAG,EAAE,mBAAmB;GACxB,MAAM,EAAE,mBAAmB;GAC3B,EAAE,EAAE,mBAAmB;GACvB,UAAU,EAAE,mBAAmB;GAC/B,UAAU,EAAE,mBAAmB;GAC/B,OAAO,EAAE,mBAAmB;GAC5B,KAAK,EAAE,mBAAmB;GAC1B,IAAI,EAAE,mBAAmB;GACzB,QAAQ,EAAE,mBAAmB;AAC/B,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,UAAU;AACrB,KAAI,YAAY,EAAE;AAClB;EACC;;AAED,CAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;GAChC,IAAI,EAAE,mBAAmB;GACzB,QAAQ,EAAE,mBAAmB;AAC/B,GAAE,KAAK,EAAE;EACR;;AAED;CACA,SAAS,aAAa,EAAE,QAAQ,EAAE;AAClC;;AAEA;AACA;AACA;AACA,GAAE,IAAI,QAAQ,CAAC,gBAAgB,EAAE;AACjC,KAAI,OAAO,cAAc;AACzB,OAAM,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAC9C,OAAM,QAAQ,CAAC;AACf;AACA;;AAEA;AACA,GAAE,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;;AAE9D;AACA;AACA,GAAE,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;KACzB,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI;AAC9C;;AAEA;AACA,GAAE,OAAO;AACT;;CAEA,SAAS,YAAY,EAAE,IAAI,EAAE;AAC7B,GAAE,OAAO;KACL,OAAO,EAAE,KAAK;KACd,cAAc,EAAE,KAAK;KACrB,iBAAiB,EAAE,KAAK;KACxB,0BAA0B,EAAE,KAAK;KACjC,IAAI,EAAE,SAAS;KACf,MAAM,EAAE,GAAG;KACX,UAAU,EAAE,IAAI;KAChB,UAAU,EAAE,EAAE;KACd,UAAU,EAAE,EAAE;AAClB,KAAI,GAAG,IAAI;KACP,WAAW,EAAE,IAAI,CAAC;AACtB,SAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW;SAChC,IAAI,WAAW,EAAE;AACzB,KAAI,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG;AAChD;AACA;;CAEA,SAAS,gBAAgB,EAAE,MAAM,EAAE;AACnC,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM;GAClC,OAAO,YAAY,CAAC;KAClB,IAAI,EAAE,OAAO;KACb,MAAM,EAAE,CAAC;AACb,KAAI,KAAK,EAAE;SACH;SACA,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACnD,KAAI,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK;IACpC;AACH;;AAEA,CAAA,SAAS,oBAAoB,EAAE,QAAQ,EAAE,KAAK,EAAE;AAChD,GAAE,KAAK,GAAG;KACN,gBAAgB,EAAE,QAAQ;AAC9B,KAAI,GAAG;AACP;;AAEA,GAAE,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC7B,KAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;AACpB,OAAM,OAAO,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;MACxC;KACD,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE;AAC3B,OAAM,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;AAC1B,OAAM,MAAM,CAAC,CAAC,CAAC,GAAG;AAClB,OAAM,OAAO;AACb;IACG;AACH;;AAEA;AACA,CAAA,SAAS,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;AACzC;AACA;AACA,GAAE,IAAI,IAAI,KAAK,OAAO,EAAE;AACxB;AACA;AACA;;AAEA;AACA,KAAI,OAAO,oBAAoB,CAAC,QAAQ,EAAE;OACpC,IAAI,EAAE,OAAO;OACb,WAAW,EAAE,QAAQ,CAAC;MACvB;AACL,IAAG,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAC9B;AACA;AACA;AACA;;AAEA;AACA,KAAI,OAAO,oBAAoB,CAAC,QAAQ,EAAE;OACpC,IAAI,EAAE,MAAM;OACZ,WAAW,EAAE,QAAQ,CAAC;MACvB;AACL,IAAG,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;AAChC;AACA;AACA;;AAEA,KAAI,OAAO,oBAAoB,CAAC,QAAQ,EAAE;OACpC,IAAI,EAAE,QAAQ;AACpB,OAAM,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;OAC1B,MAAM,EAAE,CAAC;OACT,UAAU,EAAE,EAAE;AACpB,OAAM,IAAI,EAAE;MACP;AACL,IAAG,MAAM,IAAI,IAAI,KAAK,gBAAgB,EAAE;AACxC;AACA;AACA;;AAEA,KAAI,OAAO,oBAAoB,CAAC,QAAQ,EAAE;OACpC,IAAI,EAAE,gBAAgB;OACtB,MAAM,EAAE,CAAC;OACT,UAAU,EAAE,EAAE;OACd,WAAW,EAAE,EAAE;AACrB,OAAM,IAAI,EAAE;MACP;AACL,IAAG,MAAM;KACL,MAAM,CAAC,KAAK;AAChB;AACA;;AAEA;AACA,CAAA,SAAS,2BAA2B,EAAE,WAAW,EAAE,GAAG,GAAG,IAAI,EAAE;AAC/D;AACA,GAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;;AAEjC;AACA;GACE,OAAO,SAAS,CAAC,WAAW;AAC9B,OAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAClH,OAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,wBAAwB,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAChG;;AAEA;AACA,CAAA,SAAS,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;AACnD;AACA;AACA,GAAE,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;AACxE,KAAI,MAAM,IAAI,UAAU,CAAC,+DAA+D;AACxF;;AAEA;AACA;GACE,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AACvD;AACA;KACI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;AACvD,OAAM,MAAM,IAAI,SAAS,CAAC,oBAAoB;AAC9C;AACA;;AAEA;GACE,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;KAC3C,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AACnC;;AAEA;GACE,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;KACnD,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AACvC;;AAEA;GACE,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;KAC7C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO;AACzC;;AAEA;GACE,IAAI,IAAI,EAAE;AACZ;KACI,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClD,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,sBAAsB;AACtC,SAAQ,OAAO,EAAE,+BAA+B,GAAG,QAAQ,CAAC;QACrD;AACP;;AAEA;KACI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEjC;AACA;AACA,KAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACrF,OAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI;AACnE;AACA;AACA;;AAEA,CAAA,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB;GAC1D;AACF;;AAEA,CAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,kBAAkB;GACpD;AACF;;AAEA,CAAA,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB;GAC3D;AACF;;AAEA;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,sBAAsB,GAAG,UAAU,CAAC,EAAE;AACxD,GAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC7B,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACxC;;AAEA,GAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACrB,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACtD;;GAEE,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAC9E,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3C;;AAEA,GAAE,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;AAC9B,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AAC1D;;AAEA,GAAE,IAAI,CAAC,YAAY,eAAe,EAAE;AACpC,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAC9C;;AAEA,GAAE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACtC;;AAEA;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE;AAC1C,GAAE,IAAI,CAAC,YAAY,cAAc,EAAE;AACnC,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC7C;;AAEA;AACA;AACA,GAAE,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE;AACjC,KAAI,OAAO;AACX;;AAEA,GAAE,OAAO,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;AACnD;;CAEA,MAAM,CAAC,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC;GAC1D;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC;AAClD,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,YAAY;AACrB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;AAC3C,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,SAAS;AAClB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AACjC;EACC;;AAED,CAAA,QAAc,GAAG;AACjB,GAAE,gBAAgB;AAClB,GAAE,YAAY;AACd,GAAE,2BAA2B;AAC7B,GAAE,cAAc;AAChB,GAAE,QAAQ;GACR;AACF;;;;;;;;;;;;;ACtjBA,CAAA,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAGpB,WAAA;CAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,GAAGD,cAAA;AACpD,CAAA,MAAM,EAAE,oBAAoB,EAAE,GAAGE,wBAAuC,EAAA;AACxE,CAAA,MAAM,IAAI,GAAGC,aAAA;CACb,MAAM;AACN,GAAE,gBAAgB;AAClB,GAAE,UAAU;AACZ,GAAE,eAAe;AACjB,GAAE,mBAAmB;GACnB;AACF,EAAC,GAAGM,aAAA;CACJ,MAAM;AACN,GAAE,mBAAmB;AACrB,GAAE,wBAAwB;AAC1B,GAAE,cAAc;AAChB,GAAE,eAAe;AACjB,GAAE,WAAW;AACb,GAAE,kBAAkB;AACpB,GAAE,YAAY;GACZ;AACF,EAAC,GAAGC,kBAAA;CACJ,MAAM,EAAE,mBAAmB,EAAE,GAAG;CAChC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAGN,gBAAA;CACtD,MAAM,EAAE,MAAM,EAAE,GAAGO,aAAA;CACnB,MAAM,EAAE,eAAe,EAAE,GAAGM,eAAA;CAC5B,MAAM,EAAE,aAAa,EAAE,GAAGL,cAAA;AAC1B,CAAA,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAGC,gBAAA;AACrC,CAAA,MAAM,MAAM,GAAGK;CACf,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,GAAGC;;CAErF,IAAI,eAAe,GAAG,UAAU,CAAC;;AAEjC,CAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB;;CAEjD,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;AACzE,GAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK;EAC1C;;AAED;AACA,CAAA,MAAM,OAAO,CAAC;AACd;GACE,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AACjC,KAAI,IAAI,KAAK,KAAK,UAAU,EAAE;OACxB;AACN;;AAEA,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE;;KAE1E,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK;KAC3C,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI;;AAE7C;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,OAAM,cAAc,EAAE;SACd,OAAO,EAAE,eAAe,EAAE;SAC1B,IAAI,MAAM,CAAC,GAAG;AACtB,WAAU,OAAO,IAAI,CAAC,OAAO,EAAE;UACtB;SACD,eAAe,EAAE,mBAAmB;AAC5C;AACA;;AAEA;KACI,IAAI,OAAO,GAAG;;AAElB;KACI,IAAI,YAAY,GAAG;;AAEvB;KACI,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;;AAEhD;KACI,IAAI,MAAM,GAAG;;AAEjB;AACA,KAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC;AACA;AACA,OAAM,IAAI;AACV,OAAM,IAAI;AACV,SAAQ,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO;QACnC,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,MAAM,IAAI,SAAS,CAAC,2BAA2B,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC/E;;AAEA;OACM,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;SAC5C,MAAM,IAAI,SAAS;AAC3B,WAAU,sEAAsE;aACpE;AACZ;AACA;;AAEA;OACM,OAAO,GAAG,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;;AAEpD;AACA,OAAM,YAAY,GAAG;AACrB,MAAK,MAAM;AACX;;AAEA;AACA,OAAM,MAAM,CAAC,KAAK,YAAY,OAAO;;AAErC;AACA,OAAM,OAAO,GAAG,KAAK,CAAC,MAAM;;AAE5B;AACA,OAAM,MAAM,GAAG,KAAK,CAAC,OAAO;AAC5B;;AAEA;KACI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;;AAE/C;KACI,IAAI,MAAM,GAAG;;AAEjB;AACA;KACI;OACE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,2BAA2B;AACvE,OAAM,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;OACjC;OACA,MAAM,GAAG,OAAO,CAAC;AACvB;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;OACvB,MAAM,IAAI,SAAS,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC;AACpE;;AAEA;AACA,KAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC1B,OAAM,MAAM,GAAG;AACf;;AAEA;KACI,OAAO,GAAG,WAAW,CAAC;AAC1B;AACA;AACA;AACA,OAAM,MAAM,EAAE,OAAO,CAAC,MAAM;AAC5B;AACA;AACA,OAAM,WAAW,EAAE,OAAO,CAAC,WAAW;AACtC;AACA,OAAM,aAAa,EAAE,OAAO,CAAC,aAAa;AAC1C;AACA,OAAM,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc;AACzC;AACA,OAAM,MAAM;AACZ;AACA,OAAM,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAChC;AACA;AACA;AACA,OAAM,MAAM,EAAE,OAAO,CAAC,MAAM;AAC5B;AACA,OAAM,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAChC;AACA,OAAM,cAAc,EAAE,OAAO,CAAC,cAAc;AAC5C;AACA,OAAM,IAAI,EAAE,OAAO,CAAC,IAAI;AACxB;AACA,OAAM,WAAW,EAAE,OAAO,CAAC,WAAW;AACtC;AACA,OAAM,KAAK,EAAE,OAAO,CAAC,KAAK;AAC1B;AACA,OAAM,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAChC;AACA,OAAM,SAAS,EAAE,OAAO,CAAC,SAAS;AAClC;AACA,OAAM,SAAS,EAAE,OAAO,CAAC,SAAS;AAClC;AACA,OAAM,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;AAChD;AACA,OAAM,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;AAClD;AACA,OAAM,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO;MAC7B;;KAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;;AAEpD;KACI,IAAI,UAAU,EAAE;AACpB;AACA,OAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;SAC/B,OAAO,CAAC,IAAI,GAAG;AACvB;;AAEA;OACM,OAAO,CAAC,gBAAgB,GAAG;;AAEjC;OACM,OAAO,CAAC,iBAAiB,GAAG;;AAElC;OACM,OAAO,CAAC,MAAM,GAAG;;AAEvB;OACM,OAAO,CAAC,QAAQ,GAAG;;AAEzB;OACM,OAAO,CAAC,cAAc,GAAG;;AAE/B;AACA,OAAM,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;AAE9D;AACA,OAAM,OAAO,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG;AACpC;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AACrC;AACA,OAAM,MAAM,QAAQ,GAAG,IAAI,CAAC;;AAE5B;AACA,OAAM,IAAI,QAAQ,KAAK,EAAE,EAAE;SACnB,OAAO,CAAC,QAAQ,GAAG;AAC3B,QAAO,MAAM;AACb;AACA;AACA;AACA,SAAQ,IAAI;AACZ,SAAQ,IAAI;AACZ,WAAU,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO;UAC3C,CAAC,OAAO,GAAG,EAAE;AACtB,WAAU,MAAM,IAAI,SAAS,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1F;;AAEA;AACA;AACA;AACA;SACQ;WACE,CAAC,cAAc,CAAC,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ;AACvF,YAAW,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;WAC3E;WACA,OAAO,CAAC,QAAQ,GAAG;AAC7B,UAAS,MAAM;AACf;WACU,OAAO,CAAC,QAAQ,GAAG;AAC7B;AACA;AACA;;AAEA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;AAC3C,OAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC;;AAEA;AACA,KAAI,IAAI;AACR,KAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;OAC3B,IAAI,GAAG,IAAI,CAAC;AAClB,MAAK,MAAM;AACX,OAAM,IAAI,GAAG;AACb;;AAEA;AACA,KAAI,IAAI,IAAI,KAAK,UAAU,EAAE;AAC7B,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,qBAAqB;AACrC,SAAQ,OAAO,EAAE;QACV;AACP;;AAEA;AACA,KAAI,IAAI,IAAI,IAAI,IAAI,EAAE;OAChB,OAAO,CAAC,IAAI,GAAG;AACrB;;AAEA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;AACxC,OAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;AACjC;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AAClC,OAAM,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;AAC3B;;AAEA;AACA;AACA,KAAI,IAAI,OAAO,CAAC,KAAK,KAAK,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;OACxE,MAAM,IAAI,SAAS;SACjB;AACR;AACA;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AACrC,OAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC9B;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;OAC1B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS;AAC/C;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;OAChC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS;AAChD;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AACnC;AACA,OAAM,IAAI,MAAM,GAAG,IAAI,CAAC;;AAExB;AACA;AACA,OAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE;SAC7B,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACrE;;OAEM,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE;SACjD,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACrE;;AAEA;OACM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM;;AAEtE;OACM,OAAO,CAAC,MAAM,GAAG;AACvB;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;OAC7B,MAAM,GAAG,IAAI,CAAC;AACpB;;AAEA;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;;AAEnB;AACA;AACA;AACA;AACA,KAAI,MAAM,EAAE,GAAG,IAAI,eAAe;AAClC,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;KACnB,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;;AAEvC;AACA,KAAI,IAAI,MAAM,IAAI,IAAI,EAAE;OAClB;AACN,SAAQ,CAAC,MAAM;AACf,SAAQ,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;AAC3C,SAAQ,OAAO,MAAM,CAAC,gBAAgB,KAAK;SACnC;SACA,MAAM,IAAI,SAAS;WACjB;AACV;AACA;;AAEA,OAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AAC1B,SAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;AAC9B,QAAO,MAAM;AACb;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG;;AAEjC,SAAQ,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE;SAC5B,MAAM,KAAK,GAAG,YAAY;AAClC,WAAU,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK;AAChC,WAAU,IAAI,EAAE,KAAK,SAAS,EAAE;AAChC,aAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;AAChC;AACA;;AAEA;AACA;AACA,SAAQ,IAAI;AACZ;AACA;AACA,WAAU,IAAI,OAAO,eAAe,KAAK,UAAU,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,mBAAmB,EAAE;AACxG,aAAY,eAAe,CAAC,GAAG,EAAE,MAAM;AACvC,YAAW,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,mBAAmB,EAAE;AACvF,aAAY,eAAe,CAAC,GAAG,EAAE,MAAM;AACvC;AACA,UAAS,CAAC,MAAM;;AAEhB,SAAQ,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK;SACnC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACvD;AACA;;AAEA;AACA;AACA;KACI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,UAAU;KACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;AAC3C,KAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;KACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;;AAExC;AACA,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B;AACA;OACM,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;SACjD,MAAM,IAAI,SAAS;AAC3B,WAAU,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gCAAgC;AAC7D;AACA;;AAEA;AACA,OAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AAC/B;;AAEA;KACI,IAAI,UAAU,EAAE;AACpB;OACM,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY;AACrD;AACA;AACA;AACA,OAAM,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW;;AAE7F;OACM,WAAW,CAAC,KAAK;;AAEvB;AACA;AACA,OAAM,IAAI,OAAO,YAAY,WAAW,EAAE;SAClC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE;AAC1C,WAAU,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG;AACrC;AACA;AACA,SAAQ,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AACtC,QAAO,MAAM;AACb;AACA,SAAQ,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO;AAC3C;AACA;;AAEA;AACA;AACA,KAAI,MAAM,SAAS,GAAG,KAAK,YAAY,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG;;AAEtE;AACA;AACA;KACI;OACE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI;QACtC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;OACtD;AACN,OAAM,MAAM,IAAI,SAAS,CAAC,gDAAgD;AAC1E;;AAEA;KACI,IAAI,QAAQ,GAAG;;AAEnB;AACA,KAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AAC3B;AACA;AACA;AACA,OAAM,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,WAAW;SAC9C,IAAI,CAAC,IAAI;AACjB,SAAQ,OAAO,CAAC;AAChB;AACA,OAAM,QAAQ,GAAG;;AAEjB;AACA;AACA;AACA,OAAM,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;SACzE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW;AACzD;AACA;;AAEA;AACA;AACA,KAAI,MAAM,eAAe,GAAG,QAAQ,IAAI;;AAExC;AACA;KACI,IAAI,eAAe,IAAI,IAAI,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,EAAE;AACnE;AACA;OACM,IAAI,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;AACnD,SAAQ,MAAM,IAAI,SAAS,CAAC,6DAA6D;AACzF;;AAEA;AACA;AACA,OAAM,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;SAC7D,MAAM,IAAI,SAAS;WACjB;AACV;AACA;;AAEA;OACM,OAAO,CAAC,oBAAoB,GAAG;AACrC;;AAEA;KACI,IAAI,SAAS,GAAG;;AAEpB;KACI,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE;AAC/C;AACA,OAAM,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;SACjE,MAAM,IAAI,SAAS;WACjB;AACV;AACA;;AAEA;OACM,IAAI,CAAC,eAAe,EAAE;SACpB,eAAe,GAAGE,WAAqB,CAAC;AAChD;;AAEA;AACA,OAAM,MAAM,iBAAiB,GAAG,IAAI,eAAe;AACnD,OAAM,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB;AACpD,OAAM,SAAS,GAAG;AAClB,SAAQ,MAAM,EAAE,SAAS,CAAC,MAAM;AAChC,SAAQ,MAAM,EAAE,SAAS,CAAC,MAAM;SACxB,MAAM,EAAE,iBAAiB,CAAC;AAClC;AACA;;AAEA;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG;AACxB;;AAEA;GACE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;GACE,IAAI,GAAG,CAAC,GAAG;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;KACI,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG;AACzC;;AAEA;AACA;AACA;GACE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;KACI,OAAO,IAAI,CAAC,QAAQ;AACxB;;AAEA;AACA;GACE,IAAI,WAAW,CAAC,GAAG;AACrB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACA;GACE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA;KACI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,aAAa,EAAE;AACjD,OAAM,OAAO;AACb;;AAEA;AACA;KACI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5C,OAAM,OAAO;AACb;;AAEA;KACI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ;AACzC;;AAEA;AACA;AACA;GACE,IAAI,cAAc,CAAC,GAAG;AACxB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;GACE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;GACE,IAAI,WAAW,CAAC,GAAG;AACrB;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;GACE,IAAI,KAAK,CAAC,GAAG;AACf,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;AACA;GACE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;GACE,IAAI,SAAS,CAAC,GAAG;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;GACE,IAAI,SAAS,CAAC,GAAG;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;GACE,IAAI,kBAAkB,CAAC,GAAG;AAC5B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;GACE,IAAI,mBAAmB,CAAC,GAAG;AAC7B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;AACA;AACA,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;GACE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;KACI,OAAO,IAAI,CAAC,OAAO;AACvB;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG;AAC1D;;GAEE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;KAE/B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM;AAC3E;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC,KAAI,OAAO;AACX;;AAEA;GACE,KAAK,CAAC,GAAG;AACX,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO;;AAEnC;KACI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,OAAM,MAAM,IAAI,SAAS,CAAC,UAAU;AACpC;;AAEA;KACI,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnD;AACA;AACA,KAAI,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,UAAU;AACtD,KAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG;AAClC,KAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM;KACzC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,UAAU;KACtD,mBAAmB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC;AAChE,KAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;AACjE,KAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;;AAEjE;AACA,KAAI,MAAM,EAAE,GAAG,IAAI,eAAe;AAClC,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;OACvB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;AACjC,MAAK,MAAM;OACL,IAAI,CAAC,gBAAgB;SACnB,IAAI,CAAC,MAAM;AACnB,SAAQ,MAAM;WACJ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;AACrC;AACA;AACA;AACA,KAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;;AAEtC;AACA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,SAAS,CAAC,OAAO;;CAEjB,SAAS,WAAW,EAAE,IAAI,EAAE;AAC5B;GACE,MAAM,OAAO,GAAG;KACd,MAAM,EAAE,KAAK;KACb,aAAa,EAAE,KAAK;KACpB,aAAa,EAAE,KAAK;KACpB,IAAI,EAAE,IAAI;KACV,MAAM,EAAE,IAAI;KACZ,cAAc,EAAE,IAAI;KACpB,gBAAgB,EAAE,EAAE;KACpB,MAAM,EAAE,QAAQ;KAChB,SAAS,EAAE,KAAK;KAChB,cAAc,EAAE,KAAK;KACrB,SAAS,EAAE,EAAE;KACb,WAAW,EAAE,EAAE;KACf,QAAQ,EAAE,IAAI;KACd,MAAM,EAAE,QAAQ;KAChB,eAAe,EAAE,QAAQ;KACzB,QAAQ,EAAE,QAAQ;KAClB,cAAc,EAAE,EAAE;KAClB,IAAI,EAAE,SAAS;KACf,oBAAoB,EAAE,KAAK;KAC3B,WAAW,EAAE,aAAa;KAC1B,cAAc,EAAE,KAAK;KACrB,KAAK,EAAE,SAAS;KAChB,QAAQ,EAAE,QAAQ;KAClB,SAAS,EAAE,EAAE;KACb,2BAA2B,EAAE,EAAE;KAC/B,cAAc,EAAE,EAAE;KAClB,gBAAgB,EAAE,KAAK;KACvB,iBAAiB,EAAE,KAAK;KACxB,cAAc,EAAE,KAAK;KACrB,aAAa,EAAE,KAAK;KACpB,aAAa,EAAE,CAAC;KAChB,gBAAgB,EAAE,OAAO;KACzB,4CAA4C,EAAE,KAAK;KACnD,IAAI,EAAE,KAAK;KACX,iBAAiB,EAAE,KAAK;AAC5B,KAAI,GAAG,IAAI;KACP,WAAW,EAAE,IAAI,CAAC;AACtB,SAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW;AACxC,SAAQ,IAAI,WAAW;AACvB;GACE,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACjC,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,YAAY,EAAE,OAAO,EAAE;AAChC;;AAEA;AACA,GAAE,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;;AAE3D;AACA;AACA,GAAE,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;KACxB,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI;AAC5C;;AAEA;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE;GACzC,MAAM,EAAE,mBAAmB;GAC3B,GAAG,EAAE,mBAAmB;GACxB,OAAO,EAAE,mBAAmB;GAC5B,QAAQ,EAAE,mBAAmB;GAC7B,KAAK,EAAE,mBAAmB;GAC1B,MAAM,EAAE,mBAAmB;GAC3B,MAAM,EAAE,mBAAmB;GAC3B,WAAW,EAAE,mBAAmB;GAChC,IAAI,EAAE,mBAAmB;GACzB,QAAQ,EAAE,mBAAmB;GAC7B,mBAAmB,EAAE,mBAAmB;GACxC,kBAAkB,EAAE,mBAAmB;GACvC,SAAS,EAAE,mBAAmB;GAC9B,SAAS,EAAE,mBAAmB;GAC9B,KAAK,EAAE,mBAAmB;GAC1B,WAAW,EAAE,mBAAmB;GAChC,SAAS,EAAE,mBAAmB;GAC9B,cAAc,EAAE,mBAAmB;GACnC,QAAQ,EAAE,mBAAmB;GAC7B,IAAI,EAAE,mBAAmB;AAC3B,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,SAAS;AACpB,KAAI,YAAY,EAAE;AAClB;EACC;;AAED,CAAA,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB;GACnD;AACF;;AAEA;AACA,CAAA,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AAC7C,GAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC7B,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACxC;;AAEA,GAAE,IAAI,CAAC,YAAY,OAAO,EAAE;AAC5B,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACtC;;AAEA,GAAE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACtC;;AAEA,CAAA,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB;GACvD;AACF;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC;GACzD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;GACD;KACE,GAAG,EAAE,SAAS;AAClB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;GACD;KACE,GAAG,EAAE,MAAM;AACf,KAAI,SAAS,EAAE,MAAM,CAAC,iBAAiB;OACjC,MAAM,CAAC,UAAU,CAAC;AACxB;IACG;GACD;KACE,GAAG,EAAE,UAAU;AACnB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;GACD;KACE,GAAG,EAAE,gBAAgB;AACzB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C;AACA,KAAI,aAAa,EAAE;IAChB;GACD;KACE,GAAG,EAAE,MAAM;AACf,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C;AACA,KAAI,aAAa,EAAE;IAChB;GACD;KACE,GAAG,EAAE,aAAa;AACtB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C;AACA,KAAI,aAAa,EAAE;IAChB;GACD;KACE,GAAG,EAAE,OAAO;AAChB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C;AACA,KAAI,aAAa,EAAE;IAChB;GACD;KACE,GAAG,EAAE,UAAU;AACnB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C;AACA,KAAI,aAAa,EAAE;IAChB;GACD;KACE,GAAG,EAAE,WAAW;AACpB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;GACD;KACE,GAAG,EAAE,WAAW;AACpB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,iBAAiB;AACvC,OAAM,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,WAAW;AAC/C,SAAQ,MAAM;SACN,EAAE,MAAM,EAAE,KAAK;AACvB;AACA;IACG;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,aAAa,EAAE;AACnB;EACC;;AAED,CAAA,OAAc,GAAG,EAAE,OAAO,EAAE,WAAW;;;;;;;;;;;CC76BvC,MAAM;AACN,GAAE,QAAQ;AACV,GAAE,gBAAgB;AAClB,GAAE,2BAA2B;AAC7B,GAAE,cAAc;GACd;AACF,EAAC,GAAGpB,eAAA;CACJ,MAAM,EAAE,OAAO,EAAE,GAAGD,cAAA;AACpB,CAAA,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAGE,cAAA;AACjC,CAAA,MAAM,IAAI,GAAGC;CACb,MAAM;AACN,GAAE,UAAU;AACZ,GAAE,mBAAmB;AACrB,GAAE,oBAAoB;AACtB,GAAE,cAAc;AAChB,GAAE,QAAQ;AACV,GAAE,yBAAyB;AAC3B,GAAE,mBAAmB;AACrB,GAAE,iBAAiB;AACnB,GAAE,kCAAkC;AACpC,GAAE,6CAA6C;AAC/C,GAAE,sBAAsB;AACxB,GAAE,mBAAmB;AACrB,GAAE,SAAS;AACX,GAAE,8BAA8B;AAChC,GAAE,yBAAyB;AAC3B,GAAE,0BAA0B;AAC5B,GAAE,qBAAqB;AACvB,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,WAAW;AACb,GAAE,SAAS;AACX,GAAE,WAAW;AACb,GAAE,aAAa;AACf,GAAE,mBAAmB;AACrB,GAAE,gBAAgB;AAClB,GAAE,UAAU;AACZ,GAAE,oBAAoB;GACpB;AACF,EAAC,GAAGM,aAAA;CACJ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAGC,gBAAA;AAC7C,CAAA,MAAM,MAAM,GAAGN;CACf,MAAM,EAAE,iBAAiB,EAAE,GAAGO,WAAA;CAC9B,MAAM;AACN,GAAE,iBAAiB;AACnB,GAAE,cAAc;AAChB,GAAE,cAAc;AAChB,GAAE,iBAAiB;AACnB,GAAE,cAAc;GACd;AACF,EAAC,GAAGM,kBAAA;CACJ,MAAM,EAAE,YAAY,EAAE,GAAGL,gBAAA;AACzB,CAAA,MAAM,EAAE,GAAGC;AACX,CAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAGK;CAC/B,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAGC,aAAA;AAC1E,CAAA,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAGE,cAAA;CACjD,MAAM,EAAE,eAAe,EAAE,GAAG;CAC5B,MAAM,EAAE,mBAAmB,EAAE,GAAGE,aAAA;CAChC,MAAM,EAAE,MAAM,EAAE,GAAGC,aAAA;CACnB,MAAM,EAAE,YAAY,EAAE,GAAGE;AACzB,CAAA,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM;;AAElC;CACA,IAAI;CACJ,IAAI,cAAc,GAAG,UAAU,CAAC;;CAEhC,MAAM,KAAK,SAAS,EAAE,CAAC;AACvB,GAAE,WAAW,CAAC,CAAC,UAAU,EAAE;AAC3B,KAAI,KAAK;;KAEL,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,UAAU,GAAG;KAClB,IAAI,CAAC,IAAI,GAAG;KACZ,IAAI,CAAC,KAAK,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,CAAC,eAAe,CAAC,EAAE;AAC3B;;AAEA,GAAE,SAAS,CAAC,CAAC,MAAM,EAAE;AACrB,KAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;OAC5B;AACN;;KAEI,IAAI,CAAC,KAAK,GAAG;AACjB,KAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM;AACnC,KAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM;AAClC;;AAEA;AACA,GAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChB,KAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;OAC5B;AACN;;AAEA;KACI,IAAI,CAAC,KAAK,GAAG;;AAEjB;AACA;KACI,IAAI,CAAC,KAAK,EAAE;AAChB,OAAM,KAAK,GAAG,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY;AACzE;;AAEA;AACA;AACA;;AAEA;KACI,IAAI,CAAC,qBAAqB,GAAG;;AAEjC,KAAI,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK;AAClC,KAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK;AACjC;AACA;;AAEA;AACA,CAAA,SAAS,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AAClC,GAAE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;;AAEzE;GACE,MAAM,CAAC,GAAG,qBAAqB;;AAEjC;AACA;AACA;AACA,GAAE,IAAI;;AAEN,GAAE,IAAI;AACN,KAAI,aAAa,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI;IACxC,CAAC,OAAO,CAAC,EAAE;AACd,KAAI,CAAC,CAAC,MAAM,CAAC,CAAC;KACV,OAAO,CAAC,CAAC;AACb;;AAEA;AACA,GAAE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM;;AAEtC;AACA,GAAE,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE;AACpC;AACA;AACA,KAAI,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;;AAE5D;KACI,OAAO,CAAC,CAAC;AACb;;AAEA;AACA,GAAE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;;AAEtC;AACA;GACE,IAAI,YAAY,EAAE,WAAW,EAAE,IAAI,KAAK,0BAA0B,EAAE;KAClE,OAAO,CAAC,cAAc,GAAG;AAC7B;;AAEA;GACE,IAAI,cAAc,GAAG;;AAEvB;GACE,MAAM,aAAa,GAAG;;AAExB;GACE,IAAI,cAAc,GAAG;;AAEvB;GACE,IAAI,UAAU,GAAG;;AAEnB;AACA,GAAE,gBAAgB;KACd,aAAa,CAAC,MAAM;AACxB,KAAI,MAAM;AACV;AACA,OAAM,cAAc,GAAG;;AAEvB;AACA,OAAM,MAAM,CAAC,UAAU,IAAI,IAAI;;AAE/B;OACM,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM;;AAElD;AACA;AACA,OAAM,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM;AACxE;AACA;;AAEA;AACA;AACA,GAAE,MAAM,eAAe,GAAG,CAAC,QAAQ;AACnC,KAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO;;AAE7C;AACA;AACA;;AAEA,GAAE,MAAM,eAAe,GAAG,CAAC,QAAQ,KAAK;AACxC;KACI,IAAI,cAAc,EAAE;OAClB,OAAO,OAAO,CAAC,OAAO;AAC5B;;AAEA;AACA,KAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;AAC1B;AACA;AACA;;AAEA;AACA;;OAEM,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,qBAAqB;OACvE,OAAO,OAAO,CAAC,OAAO;AAC5B;;AAEA;AACA;AACA,KAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;OAC7B,CAAC,CAAC,MAAM;AACd,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;AAC9E;OACM,OAAO,OAAO,CAAC,OAAO;AAC5B;;AAEA;AACA;KACI,cAAc,GAAG,IAAI,QAAQ;AACjC,KAAI,cAAc,CAAC,MAAM,CAAC,GAAG;AAC7B,KAAI,cAAc,CAAC,MAAM,CAAC,GAAG;KACzB,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;AACtD,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AACvC,KAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;;AAEvC;AACA,KAAI,CAAC,CAAC,OAAO,CAAC,cAAc;AAC5B;;GAEE,UAAU,GAAG,QAAQ,CAAC;AACxB,KAAI,OAAO;KACP,wBAAwB,EAAE,eAAe;AAC7C,KAAI,eAAe;AACnB,KAAI,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,mBAAmB,EAAE;IACrD;;AAEH;GACE,OAAO,CAAC,CAAC;AACX;;AAEA;AACA,CAAA,SAAS,uBAAuB,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,EAAE;AACrE;GACE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;KACjD;AACJ;;AAEA;AACA,GAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;KAC7B;AACJ;;AAEA;AACA,GAAE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;;AAExC;AACA,GAAE,IAAI,UAAU,GAAG,QAAQ,CAAC;;AAE5B;AACA,GAAE,IAAI,UAAU,GAAG,QAAQ,CAAC;;AAE5B;AACA,GAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE;KACtC;AACJ;;AAEA;AACA,GAAE,IAAI,UAAU,KAAK,IAAI,EAAE;KACvB;AACJ;;AAEA;AACA,GAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AACnC;KACI,UAAU,GAAG,sBAAsB,CAAC;OAClC,SAAS,EAAE,UAAU,CAAC;MACvB;;AAEL;AACA,KAAI,UAAU,GAAG;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,UAAU,CAAC,OAAO,GAAG,0BAA0B;;AAEjD;GACE,QAAQ,CAAC,UAAU,GAAG;;AAExB;AACA;AACA,GAAE,kBAAkB;AACpB,KAAI,UAAU;AACd,KAAI,WAAW;AACf,KAAI,aAAa;AACjB,KAAI,UAAU;KACV;AACJ;AACA;;AAEA;CACA,SAAS,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE;AAC7F,GAAE,IAAI,SAAS,GAAG,EAAE,KAAK,SAAS,KAAK,EAAE,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE;AAC9D,KAAI,WAAW,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU;AACtG;AACA;;AAEA;CACA,SAAS,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE;AACxD;AACA;AACA;GACE,IAAI,CAAC,KAAK,EAAE;AACd,KAAI,KAAK,GAAG,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY;AACvE;;AAEA;AACA,GAAE,CAAC,CAAC,MAAM,CAAC,KAAK;;AAEhB;AACA;AACA,GAAE,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAChE,KAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK;AACrD,OAAM,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC5C;SACQ;AACR;AACA,OAAM,MAAM;MACP;AACL;;AAEA;AACA,GAAE,IAAI,cAAc,IAAI,IAAI,EAAE;KAC1B;AACJ;;AAEA;AACA,GAAE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM;;AAExC;AACA;AACA,GAAE,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAClE,KAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK;AACtD,OAAM,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE;AAC5C;SACQ;AACR;AACA,OAAM,MAAM;MACP;AACL;AACA;;AAEA;AACA,CAAA,SAAS,QAAQ,EAAE;AACnB,GAAE,OAAO;AACT,GAAE,6BAA6B;AAC/B,GAAE,uBAAuB;AACzB,GAAE,eAAe;AACjB,GAAE,wBAAwB;AAC1B,GAAE,0BAA0B;GAC1B,gBAAgB,GAAG,KAAK;AAC1B,GAAE,UAAU;AACZ,EAAC,EAAE;AACH;GACE,IAAI,eAAe,GAAG;;AAExB;GACE,IAAI,6BAA6B,GAAG;;AAEtC;AACA,GAAE,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;AAC9B;AACA,KAAI,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;;AAErC;AACA;AACA,KAAI,6BAA6B;OAC3B,OAAO,CAAC,MAAM,CAAC;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE,MAAM,UAAU,GAAG,0BAA0B,CAAC,6BAA6B;AAC7E,GAAE,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC5C,KAAI,SAAS,EAAE;IACZ;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,MAAM,WAAW,GAAG;AACtB,KAAI,UAAU,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC;AACrC,KAAI,OAAO;AACX,KAAI,UAAU;AACd,KAAI,6BAA6B;AACjC,KAAI,uBAAuB;AAC3B,KAAI,eAAe;AACnB,KAAI,0BAA0B;AAC9B,KAAI,wBAAwB;AAC5B,KAAI,eAAe;KACf;AACJ;;AAEA;AACA;AACA;AACA;GACE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM;;AAE7C;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;AACnC;KACI,OAAO,CAAC,MAAM;OACZ,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,KAAK;AAC1D,WAAU,OAAO,CAAC;WACR;AACV;;AAEA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;AACnC;AACA,KAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;AACrC;;AAEA;AACA;;AAEA;AACA,GAAE,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC5C;AACA;AACA,KAAI,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;AAChC,OAAM,OAAO,CAAC,eAAe,GAAG,oBAAoB;SAC5C,OAAO,CAAC,MAAM,CAAC;AACvB;AACA,MAAK,MAAM;AACX;AACA;AACA,OAAM,OAAO,CAAC,eAAe,GAAG,mBAAmB;AACnD;AACA;;AAEA;GACE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAC/C;KACI,MAAM,KAAK,GAAG;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;KACI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK;AAC9C;;AAEA;AACA;AACA;GACE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;KACpD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG;AACrD;;AAEA;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;;AAIjC;GACE,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;;AAI/C;GACE,SAAS,CAAC,WAAW;MAClB,KAAK,CAAC,GAAG,IAAI;AAClB,OAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG;MACrC;;AAEL;GACE,OAAO,WAAW,CAAC;AACrB;;AAEA;AACA,CAAA,eAAe,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,KAAK,EAAE;AAC1D;AACA,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC;;AAE9B;GACE,IAAI,QAAQ,GAAG;;AAEjB;AACA;AACA,GAAE,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE;AACxE,KAAI,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB;AACjD;;AAEA;AACA;;AAEA;GACE,6CAA6C,CAAC,OAAO;;AAEvD;AACA;AACA;AACA,GAAE,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;AAC7C,KAAI,QAAQ,GAAG,gBAAgB,CAAC,UAAU;AAC1C;AACA;AACA;;AAEA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,cAAc,KAAK,EAAE,EAAE;AACrC,KAAI,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;AACrD;;AAEA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,aAAa,EAAE;AAC1C,KAAI,OAAO,CAAC,QAAQ,GAAG,yBAAyB,CAAC,OAAO;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE,IAAI,QAAQ,KAAK,IAAI,EAAE;AACzB,KAAI,QAAQ,GAAG,MAAM,CAAC,YAAY;AAClC,OAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO;;OAE5C;AACN;AACA;AACA,SAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO;AACpF;AACA,UAAS,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;AACzC;UACS,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;SAC5D;AACR;SACQ,OAAO,CAAC,gBAAgB,GAAG;;AAEnC;AACA,SAAQ,OAAO,MAAM,WAAW,CAAC,WAAW;AAC5C;;AAEA;AACA,OAAM,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AAC1C;SACQ,OAAO,gBAAgB,CAAC,sCAAsC;AACtE;;AAEA;AACA,OAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;AACtC;AACA;AACA,SAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC3C,WAAU,OAAO,gBAAgB;aACrB;AACZ;AACA;;AAEA;SACQ,OAAO,CAAC,gBAAgB,GAAG;;AAEnC;AACA,SAAQ,OAAO,MAAM,WAAW,CAAC,WAAW;AAC5C;;AAEA;OACM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE;AAC7D;SACQ,OAAO,gBAAgB,CAAC,qCAAqC;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;OACM,OAAO,CAAC,gBAAgB,GAAG;;AAEjC;AACA,OAAM,OAAO,MAAM,SAAS,CAAC,WAAW;MACnC;AACL;;AAEA;GACE,IAAI,SAAS,EAAE;AACjB,KAAI,OAAO;AACX;;AAEA;AACA;GACE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAC3D;AACA,KAAI,IAAI,OAAO,CAAC,gBAAgB,KAAK,MAAM,EAAE;;AAa7C;AACA;AACA,KAAI,IAAI,OAAO,CAAC,gBAAgB,KAAK,OAAO,EAAE;AAC9C,OAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO;AACjD,MAAK,MAAM,IAAI,OAAO,CAAC,gBAAgB,KAAK,MAAM,EAAE;AACpD,OAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM;AAChD,MAAK,MAAM,IAAI,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE;AACtD,OAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ;AAClD,MAAK,MAAM;OACL,MAAM,CAAC,KAAK;AAClB;AACA;;AAEA;AACA;AACA,GAAE,IAAI,gBAAgB;KAClB,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC;;AAEhD;AACA;GACE,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;KACzC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO;AACpD;;AAEA;AACA;AACA,GAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;KAC9B,QAAQ,CAAC,iBAAiB,GAAG;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;GACE;AACF,KAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;AAC9B,KAAI,gBAAgB,CAAC,MAAM,KAAK,GAAG;KAC/B,gBAAgB,CAAC,cAAc;AACnC,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;KACjC;AACJ,KAAI,QAAQ,GAAG,gBAAgB,GAAG,gBAAgB;AAClD;;AAEA;AACA;AACA;AACA;GACE;AACF,KAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;AACzB,MAAK,OAAO,CAAC,MAAM,KAAK,MAAM;AAC9B,OAAM,OAAO,CAAC,MAAM,KAAK,SAAS;AAClC,OAAM,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC;KAClD;KACA,gBAAgB,CAAC,IAAI,GAAG;AAC5B,KAAI,WAAW,CAAC,UAAU,CAAC,IAAI,GAAG;AAClC;;AAEA;AACA,GAAE,IAAI,OAAO,CAAC,SAAS,EAAE;AACzB;AACA;AACA,KAAI,MAAM,gBAAgB,GAAG,CAAC,MAAM;AACpC,OAAM,WAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC;;AAEvD;AACA;AACA,KAAI,IAAI,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AACxE,OAAM,gBAAgB,CAAC,QAAQ,CAAC,KAAK;OAC/B;AACN;;AAEA;AACA,KAAI,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AACnC;AACA;OACM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;SACzC,gBAAgB,CAAC,oBAAoB;SACrC;AACR;;AAEA;OACM,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;;AAEhD;AACA,OAAM,WAAW,CAAC,WAAW,EAAE,QAAQ;AACvC;;AAEA;KACI,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,gBAAgB;AACpE,IAAG,MAAM;AACT;AACA,KAAI,WAAW,CAAC,WAAW,EAAE,QAAQ;AACrC;AACA;;AAEA;AACA;CACA,SAAS,WAAW,EAAE,WAAW,EAAE;AACnC;AACA;AACA;AACA;AACA,GAAE,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,EAAE;KACvE,OAAO,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,WAAW,CAAC;AACnE;;AAEA;AACA,GAAE,MAAM,EAAE,OAAO,EAAE,GAAG;;GAEpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO;;AAExD;AACA,GAAE,QAAQ,MAAM;KACZ,KAAK,QAAQ,EAAE;AACnB;AACA;AACA;;AAEA;OACM,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,+BAA+B,CAAC;AAC9E;KACI,KAAK,OAAO,EAAE;OACZ,IAAI,CAAC,gBAAgB,EAAE;SACrB,gBAAgB,GAAGC,UAAiB,CAAC;AAC7C;;AAEA;AACA,OAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO;;AAEpD;AACA;OACM,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;SACpC,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,iDAAiD,CAAC;AAClG;;OAEM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE;;AAEzE;AACA;AACA,OAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;SAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AACjE;;AAEA;AACA,OAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,kBAAkB;;AAE/D;AACA,OAAM,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC;;AAEjC;OACM,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;AAEtD;AACA,OAAM,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI;;AAEtC;AACA;AACA,OAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;SAC5B,UAAU,EAAE,IAAI;AACxB,SAAQ,WAAW,EAAE;AACrB,WAAU,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;WAC7D,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE;AAChE;QACO;;OAED,QAAQ,CAAC,IAAI,GAAG;;AAEtB,OAAM,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ;AACrC;KACI,KAAK,OAAO,EAAE;AAClB;AACA;AACA,OAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO;AAClD,OAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU;;AAEvD;AACA;AACA,OAAM,IAAI,aAAa,KAAK,SAAS,EAAE;SAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,8BAA8B,CAAC;AAC/E;;AAEA;AACA,OAAM,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,QAAQ;;AAEhE;AACA;AACA;AACA,OAAM,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;SAClC,UAAU,EAAE,IAAI;AACxB,SAAQ,WAAW,EAAE;WACX,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;UAC3D;SACD,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,QAAO,CAAC;AACR;KACI,KAAK,OAAO,EAAE;AAClB;AACA;OACM,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,2BAA2B,CAAC;AAC1E;AACA,KAAI,KAAK,OAAO;KACZ,KAAK,QAAQ,EAAE;AACnB;;OAEM,OAAO,SAAS,CAAC,WAAW;UACzB,KAAK,CAAC,CAAC,GAAG,KAAK,gBAAgB,CAAC,GAAG,CAAC;AAC7C;AACA,KAAI,SAAS;OACP,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAC/D;AACA;AACA;;AAEA;AACA,CAAA,SAAS,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE;AAClD;AACA,GAAE,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG;;AAE7B;AACA;AACA;AACA,GAAE,IAAI,WAAW,CAAC,mBAAmB,IAAI,IAAI,EAAE;KAC3C,cAAc,CAAC,MAAM,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AAClE;AACA;;AAEA;AACA,CAAA,SAAS,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE;AAC7C;AACA,GAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AACjC;AACA,KAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;;AAEtD;AACA;AACA,KAAI,QAAQ,CAAC,UAAU,GAAG,sBAAsB,CAAC;AACjD,OAAM,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC;MACnC;AACL;;AAEA;GACE,MAAM,wBAAwB,GAAG,MAAM;AACzC;AACA,KAAI,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG;;AAE/B;AACA;AACA;AACA,KAAI,IAAI,WAAW,CAAC,wBAAwB,IAAI,IAAI,EAAE;OAChD,cAAc,CAAC,MAAM,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC;AACzE;AACA;;AAEA;AACA;AACA;AACA,GAAE,IAAI,WAAW,CAAC,eAAe,IAAI,IAAI,EAAE;KACvC,cAAc,CAAC,MAAM,WAAW,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC9D;;AAEA;AACA,GAAE,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AAC7B,KAAI,wBAAwB;AAC5B,IAAG,MAAM;AACT;;AAEA;;AAEA;AACA;AACA,KAAI,MAAM,0BAA0B,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;AAC9D,OAAM,UAAU,CAAC,OAAO,CAAC,KAAK;AAC9B;;AAEA;AACA;AACA,KAAI,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;OAC1C,KAAK,CAAC,GAAG,EAAE;OACX,SAAS,EAAE,0BAA0B;AAC3C,OAAM,KAAK,EAAE;AACb,MAAK,EAAE;OACD,IAAI,CAAC,GAAG;AACd,SAAQ,OAAO;AACf;AACA,MAAK,EAAE;OACD,IAAI,CAAC,GAAG;AACd,SAAQ,OAAO;AACf;MACK;;AAEL;AACA,KAAI,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC;AAC/E;;AAEA;AACA,GAAE,IAAI,WAAW,CAAC,0BAA0B,IAAI,IAAI,EAAE;AACtD;AACA;AACA,KAAI,MAAM,WAAW,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,0BAA0B,CAAC,QAAQ,EAAE,WAAW;;AAErG;AACA;AACA,KAAI,MAAM,gBAAgB,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO;;AAElG;AACA;AACA,KAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AAC/B,OAAM,cAAc,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC;AAC5C,MAAK,MAAM;AACX;AACA;OACM,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,gBAAgB;AACvE;KACI,OAAO,OAAO,CAAC,OAAO;AAC1B;AACA;;AAEA;CACA,eAAe,SAAS,EAAE,WAAW,EAAE;AACvC;AACA,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC;;AAE9B;GACE,IAAI,QAAQ,GAAG;;AAEjB;GACE,IAAI,cAAc,GAAG;;AAEvB;AACA,GAAE,MAAM,UAAU,GAAG,WAAW,CAAC;;AAEjC;AACA,GAAE,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;;AAIxC;AACA,GAAE,IAAI,QAAQ,KAAK,IAAI,EAAE;AACzB;AACA;;AAEA;AACA;AACA,KAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;OACjC,OAAO,CAAC,cAAc,GAAG;AAC/B;;AAEA;AACA;AACA,KAAI,cAAc,GAAG,QAAQ,GAAG,MAAM,uBAAuB,CAAC,WAAW;;AAEzE;AACA;KACI;AACJ,OAAM,OAAO,CAAC,gBAAgB,KAAK,MAAM;AACzC,OAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK;OACjC;OACA,OAAO,gBAAgB,CAAC,cAAc;AAC5C;;AAEA;AACA;KACI,IAAI,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,SAAS,EAAE;OAC7C,OAAO,CAAC,iBAAiB,GAAG;AAClC;AACA;;AAEA;AACA;AACA;AACA;GACE;KACE,CAAC,OAAO,CAAC,gBAAgB,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;AACxE,KAAI,8BAA8B;OAC5B,OAAO,CAAC,MAAM;OACd,OAAO,CAAC,MAAM;OACd,OAAO,CAAC,WAAW;OACnB;AACN,MAAK,KAAK;KACN;KACA,OAAO,gBAAgB,CAAC,SAAS;AACrC;;AAEA;GACE,IAAI,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AACpD;AACA;AACA;AACA;AACA,KAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACvC,OAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO;AAC/C;;AAEA;AACA,KAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACtC;AACA,OAAM,QAAQ,GAAG,gBAAgB,CAAC,qBAAqB;AACvD,MAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA,OAAM,QAAQ,GAAG;AACjB,MAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9C;AACA;AACA,OAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,QAAQ;AAC9D,MAAK,MAAM;OACL,MAAM,CAAC,KAAK;AAClB;AACA;;AAEA;GACE,QAAQ,CAAC,UAAU,GAAG;;AAExB;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE;AACnD;AACA,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC;;AAE9B;AACA;AACA,GAAE,MAAM,cAAc,GAAG,QAAQ,CAAC;AAClC,OAAM,QAAQ,CAAC;OACT;;AAEN;AACA;AACA,GAAE,IAAI;;AAEN,GAAE,IAAI;KACF,WAAW,GAAG,mBAAmB;AACrC,OAAM,cAAc;AACpB,OAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACjC;;AAEA;AACA,KAAI,IAAI,WAAW,IAAI,IAAI,EAAE;AAC7B,OAAM,OAAO;AACb;IACG,CAAC,OAAO,GAAG,EAAE;AAChB;KACI,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAChD;;AAEA;AACA;AACA,GAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE;KACtC,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,qCAAqC,CAAC;AAClF;;AAEA;AACA,GAAE,IAAI,OAAO,CAAC,aAAa,KAAK,EAAE,EAAE;KAChC,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;AACtE;;AAEA;GACE,OAAO,CAAC,aAAa,IAAI;;AAE3B;AACA;AACA;GACE;AACF,KAAI,OAAO,CAAC,IAAI,KAAK,MAAM;AAC3B,MAAK,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC;AAClD,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW;KAChC;KACA,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,kDAAkD,CAAC;AAC/F;;AAEA;AACA;GACE;AACF,KAAI,OAAO,CAAC,gBAAgB,KAAK,MAAM;AACvC,MAAK,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ;KAC7C;AACJ,KAAI,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB;OACrC;MACD;AACL;;AAEA;AACA;GACE;AACF,KAAI,cAAc,CAAC,MAAM,KAAK,GAAG;AACjC,KAAI,OAAO,CAAC,IAAI,IAAI,IAAI;AACxB,KAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI;KACvB;AACJ,KAAI,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE;AAC7C;;AAEA;AACA;AACA;GACE;AACF,KAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;AAC5E,MAAK,cAAc,CAAC,MAAM,KAAK,GAAG;OAC5B,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;KACvC;AACJ;AACA;KACI,OAAO,CAAC,MAAM,GAAG;KACjB,OAAO,CAAC,IAAI,GAAG;;AAEnB;AACA;AACA,KAAI,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE;AAChD,OAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;AAC3C;AACA;;AAEA;AACA;AACA;GACE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE;AAC5D;AACA,KAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe;;AAE9C;KACI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI;;AAE1D;AACA,KAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ;AACvC,KAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;AACrC;;AAEA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;KACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;AACtC,KAAI,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D;;AAEA;AACA,GAAE,MAAM,UAAU,GAAG,WAAW,CAAC;;AAEjC;AACA;AACA;AACA,GAAE,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,qBAAqB;AAC/D,KAAI,0BAA0B,CAAC,WAAW,CAAC,6BAA6B;;AAExE;AACA;AACA,GAAE,IAAI,UAAU,CAAC,iBAAiB,KAAK,CAAC,EAAE;AAC1C,KAAI,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC;AAC9C;;AAEA;AACA,GAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;;AAElC;AACA;AACA,GAAE,kCAAkC,CAAC,OAAO,EAAE,cAAc;;AAE5D;AACA,GAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI;AACpC;;AAEA;AACA,CAAA,eAAe,uBAAuB;AACtC,GAAE,WAAW;GACX,qBAAqB,GAAG,KAAK;AAC/B,GAAE,oBAAoB,GAAG;GACvB;AACF;AACA,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC;;AAE9B;GACE,IAAI,eAAe,GAAG;;AAExB;GACE,IAAI,WAAW,GAAG;;AAEpB;GACE,IAAI,QAAQ,GAAG;;AAWjB;;AAEA;AACA;AACA;AACA,GAAE,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACtE,KAAI,eAAe,GAAG;AACtB,KAAI,WAAW,GAAG;AAClB,IAAG,MAAM;AACT;;AAEA;AACA,KAAI,WAAW,GAAG,WAAW,CAAC,OAAO;;AAErC;AACA,KAAI,eAAe,GAAG,EAAE,GAAG,WAAW;;AAEtC;KACI,eAAe,CAAC,OAAO,GAAG;AAC9B;;AAEA;AACA,GAAE,MAAM,kBAAkB;AAC1B,KAAI,OAAO,CAAC,WAAW,KAAK,SAAS;AACrC,MAAK,OAAO,CAAC,WAAW,KAAK,aAAa;AAC1C,OAAM,OAAO,CAAC,gBAAgB,KAAK,OAAO;;AAE1C;AACA;AACA,GAAE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG;;AAErE;GACE,IAAI,wBAAwB,GAAG;;AAEjC;AACA;GACE;AACF,KAAI,WAAW,CAAC,IAAI,IAAI,IAAI;KACxB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM;KAC3C;AACJ,KAAI,wBAAwB,GAAG;AAC/B;;AAEA;AACA;AACA,GAAE,IAAI,aAAa,IAAI,IAAI,EAAE;KACzB,wBAAwB,GAAG,gBAAgB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAClE;;AAEA;AACA;AACA;AACA,GAAE,IAAI,wBAAwB,IAAI,IAAI,EAAE;KACpC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,wBAAwB;AAC7E;;AAEA;AACA;;AAEA;AACA;GACE,IAAI,aAAa,IAAI,IAAI,IAAI,WAAW,CAAC,SAAS,EAAE;;AAItD;AACA;AACA;AACA,GAAE,IAAI,WAAW,CAAC,QAAQ,YAAY,GAAG,EAAE;AAC3C,KAAI,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzF;;AAEA;GACE,yBAAyB,CAAC,WAAW;;AAEvC;GACE,mBAAmB,CAAC,WAAW;;AAEjC;AACA;AACA;GACE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACvD,KAAI,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,gBAAgB,KAAK,WAAW,GAAG,QAAQ,GAAG,MAAM;AAC5G;;AAEA;AACA;AACA;AACA;GACE;AACF,KAAI,WAAW,CAAC,KAAK,KAAK,SAAS;AACnC,MAAK,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AAC1D,OAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;AACvD,OAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AAC7D,OAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;AAClD,OAAM,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;KAC9C;KACA,WAAW,CAAC,KAAK,GAAG;AACxB;;AAEA;AACA;AACA;AACA;GACE;AACF,KAAI,WAAW,CAAC,KAAK,KAAK,UAAU;KAChC,CAAC,WAAW,CAAC,4CAA4C;AAC7D,KAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe;KACjD;KACA,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW;AAC/D;;AAEA;AACA,GAAE,IAAI,WAAW,CAAC,KAAK,KAAK,UAAU,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE;AAC1E;AACA;KACI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;OAC/C,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU;AACzD;;AAEA;AACA;KACI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;OACtD,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU;AAChE;AACA;;AAEA;AACA;GACE,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;KAC7C,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,UAAU;AAChE;;AAEA;AACA;AACA;GACE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;KACxD,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EAAE;OACrD,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,mBAAmB;AAC3E,MAAK,MAAM;OACL,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe;AACvE;AACA;;AAEA,GAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;;AAWvC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAyB;KACrB,WAAW,CAAC,KAAK,GAAG;AACxB;;AAEA;AACA;AACA,GAAE,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;;AAIxE;AACA;;AAEA;AACA,GAAE,IAAI,QAAQ,IAAI,IAAI,EAAE;AACxB;AACA;AACA,KAAI,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE;OACzC,OAAO,gBAAgB,CAAC,gBAAgB;AAC9C;;AAEA;AACA;AACA,KAAI,MAAM,eAAe,GAAG,MAAM,gBAAgB;AAClD,OAAM,eAAe;AACrB,OAAM,kBAAkB;OAClB;AACN;;AAEA;AACA;AACA;AACA;KACI;OACE,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;AAC7C,OAAM,eAAe,CAAC,MAAM,IAAI,GAAG;OAC7B,eAAe,CAAC,MAAM,IAAI;OAC1B;;AAUN;AACA,KAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC1B;AACA,OAAM,QAAQ,GAAG;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;GACE,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO;;AAE5C;AACA;GACE,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;KAC7C,QAAQ,CAAC,cAAc,GAAG;AAC9B;;AAEA;GACE,QAAQ,CAAC,0BAA0B,GAAG;;AAExC;AACA;AACA;AACA;;AAEA;AACA,GAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AAC/B;AACA,KAAI,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;AACxC,OAAM,OAAO,gBAAgB;AAC7B;;AAEA;;AAEA;AACA,KAAI,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;OAC5B,OAAO,2BAA2B,CAAC,WAAW;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;KACI,OAAO,gBAAgB,CAAC,+BAA+B;AAC3D;;AAEA;GACE;AACF;AACA,KAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AAC3B;AACA,KAAI,CAAC,oBAAoB;AACzB;AACA,MAAK,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;KACpD;AACJ;;AAEA;AACA,KAAI,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;OAC5B,OAAO,2BAA2B,CAAC,WAAW;AACpD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO;;KAEzC,QAAQ,GAAG,MAAM,uBAAuB;AAC5C,OAAM,WAAW;AACjB,OAAM,qBAAqB;OACrB;AACN;AACA;;AAOA;AACA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,eAAe,gBAAgB;AAC/B,GAAE,WAAW;GACX,kBAAkB,GAAG,KAAK;AAC5B,GAAE,kBAAkB,GAAG;GACrB;AACF,GAAE,MAAM,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS;;AAE1F,GAAE,WAAW,CAAC,UAAU,CAAC,UAAU,GAAG;KAClC,KAAK,EAAE,IAAI;KACX,SAAS,EAAE,KAAK;AACpB,KAAI,OAAO,CAAC,CAAC,GAAG,EAAE;AAClB,OAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;SACnB,IAAI,CAAC,SAAS,GAAG;AACzB,SAAQ,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC;AACxF;AACA;AACA;;AAEA;AACA,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC;;AAE9B;GACE,IAAI,QAAQ,GAAG;;AAEjB;AACA,GAAE,MAAM,UAAU,GAAG,WAAW,CAAC;;AAOjC;AACA,GAAyB;KACrB,OAAO,CAAC,KAAK,GAAG;AACpB;;AAUA;AACA,GAAE,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;;AAWpC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;GACE,IAAI,WAAW,GAAG;AACpB;AACA;AACA;GACE,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,WAAW,CAAC,uBAAuB,EAAE;AACnE,KAAI,cAAc,CAAC,MAAM,WAAW,CAAC,uBAAuB,EAAE;AAC9D,IAAG,MAAM,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AACnC;;AAEA;AACA,KAAI,MAAM,gBAAgB,GAAG,kBAAkB,KAAK,EAAE;AACtD;AACA,OAAM,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;SAC5B;AACR;;AAEA;AACA,OAAM,MAAM;;AAEZ;AACA;AACA,OAAM,WAAW,CAAC,6BAA6B,GAAG,KAAK,CAAC,UAAU;AAClE;;AAEA;KACI,MAAM,gBAAgB,GAAG,MAAM;AACnC;AACA,OAAM,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;SAC5B;AACR;;AAEA;AACA;AACA,OAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE;SACvC,WAAW,CAAC,uBAAuB;AAC3C;AACA;;AAEA;AACA,KAAI,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK;AACpC;AACA,OAAM,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;SAC5B;AACR;;AAEA;AACA,OAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;AACnC,SAAQ,WAAW,CAAC,UAAU,CAAC,KAAK;AACpC,QAAO,MAAM;AACb,SAAQ,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC1C;AACA;;AAEA;AACA;KACI,WAAW,GAAG,CAAC,oBAAoB;AACvC,OAAM,IAAI;SACF,WAAW,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;WAC7C,QAAQ,gBAAgB,CAAC,KAAK;AACxC;AACA,SAAQ,gBAAgB;QACjB,CAAC,OAAO,GAAG,EAAE;SACZ,gBAAgB,CAAC,GAAG;AAC5B;MACK;AACL;;AAEA,GAAE,IAAI;AACN;KACI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE;;KAE9F,IAAI,MAAM,EAAE;AAChB,OAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE;AACzE,MAAK,MAAM;OACL,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;OAC3C,WAAW,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI;;OAEjD,QAAQ,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;AACjE;IACG,CAAC,OAAO,GAAG,EAAE;AAChB;AACA,KAAI,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;AACnC;AACA,OAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO;;AAE/C;AACA,OAAM,OAAO,2BAA2B,CAAC,WAAW,EAAE,GAAG;AACzD;;KAEI,OAAO,gBAAgB,CAAC,GAAG;AAC/B;;AAEA;AACA;GACE,MAAM,aAAa,GAAG,MAAM;AAC9B,KAAI,WAAW,CAAC,UAAU,CAAC,MAAM;AACjC;;AAEA;AACA;AACA,GAAE,MAAM,eAAe,GAAG,CAAC,MAAM,KAAK;AACtC,KAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;GACE,IAAI,CAAC,cAAc,EAAE;KACnB,cAAc,GAAG,WAAqB,CAAC;AAC3C;;AAEA,GAAE,MAAM,MAAM,GAAG,IAAI,cAAc;KAC/B;AACJ,OAAM,MAAM,KAAK,CAAC,CAAC,UAAU,EAAE;AAC/B,SAAQ,WAAW,CAAC,UAAU,CAAC,UAAU,GAAG;QACrC;AACP,OAAM,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE;SACtB,MAAM,aAAa,CAAW;QAC/B;AACP,OAAM,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE;SACpB,MAAM,eAAe,CAAC,MAAM;AACpC;MACK;KACD;OACE,aAAa,EAAE,CAAC;OAChB,IAAI,CAAC,GAAG;AACd,SAAQ,OAAO;AACf;AACA;AACA;;AAEA;;AAEA;AACA,GAAE,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;GACE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS;AACnD,GAAE,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,YAAY;AAC9C;KACI,OAAO,IAAI,EAAE;AACjB;;AAEA;AACA;AACA,OAAM,IAAI;AACV,OAAM,IAAI;AACV,OAAM,IAAI;AACV,SAAQ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI;;AAEjE,SAAQ,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;WAC1B;AACV;;AAEA,SAAQ,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG;QAC5B,CAAC,OAAO,GAAG,EAAE;SACZ,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;AACzE;AACA,WAAU,KAAK,GAAG;AAClB,UAAS,MAAM;AACf,WAAU,KAAK,GAAG;;AAElB;AACA;AACA,WAAU,SAAS,GAAG;AACtB;AACA;;AAEA,OAAM,IAAI,KAAK,KAAK,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA,SAAQ,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU;;AAE7D,SAAQ,gBAAgB,CAAC,WAAW,EAAE,QAAQ;;SAEtC;AACR;;AAEA;AACA,OAAM,UAAU,CAAC,eAAe,IAAI,KAAK,EAAE,UAAU,IAAI;;AAEzD;OACM,IAAI,SAAS,EAAE;AACrB,SAAQ,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK;SACtC;AACR;;AAEA;AACA;AACA,OAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC;;AAErE;AACA,OAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;AAC7B,SAAQ,WAAW,CAAC,UAAU,CAAC,SAAS;SAChC;AACR;;AAEA;AACA;OACM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE;SAClD;AACR;AACA;AACA;;AAEA;AACA,GAAE,SAAS,SAAS,EAAE,MAAM,EAAE;AAC9B;AACA,KAAI,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;AAChC;OACM,QAAQ,CAAC,OAAO,GAAG;;AAEzB;AACA;AACA;AACA;AACA,OAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC9B,SAAQ,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK;WACrC,WAAW,CAAC,UAAU,CAAC;AACjC;AACA;AACA,MAAK,MAAM;AACX;AACA,OAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC9B,SAAQ,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,YAAY,EAAE;WAClE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG;AAChD,UAAS,CAAC;AACV;AACA;;AAEA;AACA;AACA,KAAI,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO;AAC7C;;AAEA;AACA,GAAE,OAAO;;AAET,GAAE,eAAe,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE;AACrC,KAAI,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO;AACzC;AACA,KAAI,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC;;KAErC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,QAAQ;OACpD;SACE,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;AACvC,SAAQ,MAAM,EAAE,GAAG,CAAC,MAAM;AAC1B,SAAQ,MAAM,EAAE,OAAO,CAAC,MAAM;SACtB,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;AAClI,SAAQ,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO;SACpC,eAAe,EAAE,CAAC;SAClB,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,GAAG,WAAW,GAAG;QACvD;OACD;SACE,IAAI,EAAE,IAAI;SACV,KAAK,EAAE,IAAI;;AAEnB,SAAQ,SAAS,CAAC,CAAC,KAAK,EAAE;AAC1B;AACA,WAAU,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;;AAE7C,WAAU,IAAI,UAAU,CAAC,SAAS,EAAE;aACxB,KAAK,CAAC,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC;AAC9E,YAAW,MAAM;aACL,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK;AACzD,aAAY,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG;AAC5C;UACS;;SAED,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;AAC5D,WAAU,IAAI,MAAM,GAAG,GAAG,EAAE;aAChB;AACZ;;WAEU,IAAI,OAAO,GAAG;WACd,IAAI,QAAQ,GAAG;;AAEzB,WAAU,MAAM,OAAO,GAAG,IAAI,OAAO;;AAErC;AACA;AACA,WAAU,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC1C,aAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5D,eAAc,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC9D,eAAc,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC9D,eAAc,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,kBAAkB,EAAE;AAC5D;AACA;iBACgB,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;gBAC3D,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC3D,iBAAgB,QAAQ,GAAG;AAC3B;;eAEc,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG;AACnD;AACA,YAAW,MAAM;AACjB,aAAY,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW;AAChD,aAAY,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACpC,eAAc,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG;AACzC,eAAc,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,kBAAkB,EAAE;AAC5D;AACA;iBACgB,OAAO,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO;gBACpE,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AAC3D,iBAAgB,QAAQ,GAAG;AAC3B;;eAEc,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG;AACnD;AACA;;WAEU,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;;WAEzC,MAAM,QAAQ,GAAG;;AAE3B,WAAU,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ;AAC1D,aAAY,QAAQ;AACpB,aAAY,iBAAiB,CAAC,GAAG,CAAC,MAAM;;AAExC;WACU,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5H,aAAY,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC1C;eACc,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE;AAC5D,iBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAChD;AACA;AACA;AACA;AACA,mBAAkB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY;AACpD,mBAAkB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;AAC9C,kBAAiB,CAAC;AAClB,gBAAe,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AAC/C,iBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAClD,gBAAe,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE;AAC1C,iBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC3D,gBAAe,MAAM;iBACL,QAAQ,CAAC,MAAM,GAAG;iBAClB;AAChB;AACA;AACA;;AAEA,WAAU,OAAO,CAAC;AAClB,aAAY,MAAM;AAClB,aAAY,UAAU;AACtB,aAAY,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC;aAClC,IAAI,EAAE,QAAQ,CAAC;iBACX,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,MAAM,GAAG;iBAC1C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE;YACnC;;AAEX,WAAU,OAAO;UACR;;AAET,SAAQ,MAAM,CAAC,CAAC,KAAK,EAAE;AACvB,WAAU,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE;aAC/B;AACZ;;AAEA;AACA;;AAEA;WACU,MAAM,KAAK,GAAG;;AAExB;AACA;AACA;;AAEA;AACA,WAAU,UAAU,CAAC,eAAe,IAAI,KAAK,CAAC;;AAE9C;;AAEA,WAAU,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;UAC5B;;SAED,UAAU,CAAC,GAAG;AACtB,WAAU,IAAI,IAAI,CAAC,KAAK,EAAE;aACd,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;AAC/D;;AAEA,WAAU,WAAW,CAAC,UAAU,CAAC,KAAK,GAAG;;AAEzC,WAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;UACpB;;AAET,SAAQ,OAAO,CAAC,CAAC,KAAK,EAAE;AACxB,WAAU,IAAI,IAAI,CAAC,KAAK,EAAE;aACd,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK;AAC/D;;AAEA,WAAU,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK;;AAElC,WAAU,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK;;WAEtC,MAAM,CAAC,KAAK;UACb;;SAED,SAAS,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;AAChD,WAAU,IAAI,MAAM,KAAK,GAAG,EAAE;aAClB;AACZ;;AAEA,WAAU,MAAM,OAAO,GAAG,IAAI,OAAO;;AAErC,WAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC1D,aAAY,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;AAC5D,aAAY,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;;aAEhD,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG;AACjD;;AAEA,WAAU,OAAO,CAAC;AAClB,aAAY,MAAM;AAClB,aAAY,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC;AAC5C,aAAY,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC;aAClC;YACD;;AAEX,WAAU,OAAO;AACjB;AACA;MACK;AACL;AACA;;AAEA,CAAA,OAAc,GAAG;AACjB,GAAE,KAAK;AACP,GAAE,KAAK;AACP,GAAE,QAAQ;GACR;AACF;;;;;;;;;;;ACjmEA,CAAArB,SAAc,GAAG;AACjB,GAAE,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC;AACpC,GAAE,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACtC,GAAE,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC;AACpC,GAAE,uBAAuB,EAAE,MAAM,CAAC,gDAAgD,CAAC;AACnF,GAAE,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACtC,GAAE,QAAQ,EAAE,MAAM,CAAC,oBAAoB;AACvC;;;;;;;;;;;CCPA,MAAM,EAAE,MAAM,EAAE,GAAGL,aAAA;;AAEnB,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,qBAAqB;;AAE3C;AACA;AACA;CACA,MAAM,aAAa,SAAS,KAAK,CAAC;GAChC,WAAW,CAAC,CAAC,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;KACrC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;KACvC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,IAAI,EAAE;;AAE3E,KAAI,KAAK,CAAC,IAAI,EAAE,aAAa;;AAE7B,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,OAAM,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;AACtD,OAAM,MAAM,EAAE,aAAa,CAAC,MAAM;OAC5B,KAAK,EAAE,aAAa,CAAC;AAC3B;AACA;;GAEE,IAAI,gBAAgB,CAAC,GAAG;AAC1B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa;;AAEzC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa;;AAEzC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;;GAEE,IAAI,KAAK,CAAC,GAAG;AACf,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa;;AAEzC,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACxB;AACA;;CAEA,MAAM,CAAC,UAAU,CAAC,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC;GAC/D;KACE,GAAG,EAAE,kBAAkB;AAC3B,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACtD,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,OAAO;AAChB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;AACtD,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,SAAS;AAClB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,YAAY;AACrB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,UAAU;AACnB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;AAClB;EACC;;AAED,CAAA,aAAc,GAAG;GACf;AACF;;;;;;;;;;;AC3EA;AACA;AACA;AACA;CACA,SAAS,WAAW,EAAE,KAAK,EAAE;GAC3B,IAAI,CAAC,KAAK,EAAE;AACd,KAAI,OAAO;AACX;;AAEA;AACA;AACA;AACA;AACA,GAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,KAAI,KAAK,mBAAmB;AAC5B,KAAI,KAAK,eAAe;AACxB,KAAI,KAAK,eAAe;AACxB,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,MAAM;AACf,KAAI,KAAK,iBAAiB;AAC1B,OAAM,OAAO;AACb,KAAI,KAAK,KAAK;AACd,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,oBAAoB;AAC7B,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,kBAAkB;AAC3B,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,OAAM,OAAO;AACb,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,cAAc;AACvB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,kBAAkB;AAC3B,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,SAAS;AAClB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,IAAI;AACb,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO;AACb,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,KAAK;AACd,KAAI,KAAK,MAAM;AACf,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,KAAK;AACd,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,gBAAgB;AACzB,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,IAAI;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,cAAc;AACvB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,gBAAgB;AACzB,KAAI,KAAK,iBAAiB;AAC1B,OAAM,OAAO;AACb,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,KAAK;AACd,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,OAAO;AAChB,OAAM,OAAO;AACb,KAAI,KAAK,SAAS;AAClB,OAAM,OAAO;AACb,KAAI,KAAK,MAAM;AACf,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,qBAAqB;AAC9B,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO;AACb,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,MAAM;AACf,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,QAAQ;AACjB,OAAM,OAAO;AACb,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,eAAe;AACxB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,gBAAgB;AACzB,KAAI,KAAK,gBAAgB;AACzB,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,UAAU;AACnB,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,YAAY;AACrB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,aAAa;AACtB,OAAM,OAAO;AACb,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,WAAW;AACpB,KAAI,KAAK,iBAAiB;AAC1B,KAAI,KAAK,OAAO;AAChB,KAAI,KAAK,SAAS;AAClB,KAAI,KAAK,aAAa;AACtB,KAAI,KAAK,QAAQ;AACjB,KAAI,KAAK,UAAU;AACnB,OAAM,OAAO;AACb,KAAI,KAAK,gBAAgB;AACzB,OAAM,OAAO;AACb,KAAI,SAAS,OAAO;AACpB;AACA;;AAEA,CAAA,QAAc,GAAG;GACf;AACF;;;;;;;;;;;CC/RA,MAAM;AACN,GAAE,MAAM;AACR,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,QAAQ;GACR;AACF,EAAC,GAAGA,gBAAA;CACJ,MAAM,EAAE,aAAa,EAAE,GAAGD,oBAAA;CAC1B,MAAM,EAAE,WAAW,EAAE,GAAGE,eAAA;CACxB,MAAM,EAAE,YAAY,EAAE,GAAGC,kBAAA;AACzB,CAAA,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAGM,cAAA;CAC9C,MAAM,EAAE,KAAK,EAAE,GAAGC;CAClB,MAAM,EAAE,aAAa,EAAE,GAAG;CAC1B,MAAM,EAAE,IAAI,EAAE,GAAG;;AAEjB;AACA,CAAA,MAAM,yBAAyB,GAAG;GAChC,UAAU,EAAE,IAAI;GAChB,QAAQ,EAAE,KAAK;AACjB,GAAE,YAAY,EAAE;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;AACtD;AACA;AACA,GAAE,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AAChC,KAAI,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,mBAAmB;AAC/D;;AAEA;AACA,GAAE,EAAE,CAAC,MAAM,CAAC,GAAG;;AAEf;AACA,GAAE,EAAE,CAAC,OAAO,CAAC,GAAG;;AAEhB;AACA,GAAE,EAAE,CAAC,MAAM,CAAC,GAAG;;AAEf;AACA;AACA,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;;AAE5B;AACA,GAAE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;;AAEjC;AACA;GACE,MAAM,KAAK,GAAG;;AAEhB;AACA;AACA,GAAE,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI;;AAEhC;GACE,IAAI,YAAY,GAAG;;AAErB;AACA;AACA;AACA;AACA;AACA,IAAG,CAAC,YAAY;AAChB,KAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;AAC1B;AACA,OAAM,IAAI;AACV,SAAQ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM;;AAEtC;AACA;AACA;SACQ,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;WACjC,cAAc,CAAC,MAAM;AAC/B,aAAY,kBAAkB,CAAC,WAAW,EAAE,EAAE;YACnC;AACX;;AAEA;AACA,SAAQ,YAAY,GAAG;;AAEvB;AACA;AACA;SACQ,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAChD;AACA;;AAEA;AACA,WAAU,KAAK,CAAC,IAAI,CAAC,KAAK;;AAE1B;AACA;AACA;WACU;aACE;AACZ,eAAc,EAAE,CAAC,uBAAuB,CAAC,KAAK,SAAS;eACzC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI;AAC1D;aACY,CAAC,EAAE,CAAC,QAAQ;aACZ;AACZ,aAAY,EAAE,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,GAAG;aACtC,cAAc,CAAC,MAAM;AACjC,eAAc,kBAAkB,CAAC,UAAU,EAAE,EAAE;cAClC;AACb;;AAEA;AACA;AACA,WAAU,YAAY,GAAG,MAAM,CAAC,IAAI;UAC3B,MAAM,IAAI,IAAI,EAAE;AACzB;AACA;AACA;WACU,cAAc,CAAC,MAAM;AAC/B;AACA,aAAY,EAAE,CAAC,MAAM,CAAC,GAAG;;AAEzB;AACA;AACA,aAAY,IAAI;AAChB,eAAc,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY;;AAE7E;;AAEA,eAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;iBAChB;AAChB;;AAEA;AACA,eAAc,EAAE,CAAC,OAAO,CAAC,GAAG;;AAE5B;AACA,eAAc,kBAAkB,CAAC,MAAM,EAAE,EAAE;cAC9B,CAAC,OAAO,KAAK,EAAE;AAC5B;;AAEA;AACA,eAAc,EAAE,CAAC,MAAM,CAAC,GAAG;;AAE3B;AACA,eAAc,kBAAkB,CAAC,OAAO,EAAE,EAAE;AAC5C;;AAEA;AACA;AACA,aAAY,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AAC1C,eAAc,kBAAkB,CAAC,SAAS,EAAE,EAAE;AAC9C;YACW;;WAED;AACV;QACO,CAAC,OAAO,KAAK,EAAE;AACtB,SAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;WAChB;AACV;;AAEA;AACA;AACA;SACQ,cAAc,CAAC,MAAM;AAC7B;AACA,WAAU,EAAE,CAAC,MAAM,CAAC,GAAG;;AAEvB;AACA,WAAU,EAAE,CAAC,MAAM,CAAC,GAAG;;AAEvB;AACA,WAAU,kBAAkB,CAAC,OAAO,EAAE,EAAE;;AAExC;AACA;AACA,WAAU,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACxC,aAAY,kBAAkB,CAAC,SAAS,EAAE,EAAE;AAC5C;UACS;;SAED;AACR;AACA;IACG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE;AACxC;AACA;AACA,GAAE,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE;KACjC,OAAO,EAAE,KAAK;AAClB,KAAI,UAAU,EAAE;IACb;;AAEH,GAAE,MAAM,CAAC,aAAa,CAAC,KAAK;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC3D;AACA;AACA;AACA;;AAEA,GAAE,QAAQ,IAAI;KACV,KAAK,SAAS,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;OACM,IAAI,OAAO,GAAG;;AAEpB,OAAM,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,IAAI,0BAA0B;;AAEzE,OAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AAChC,SAAQ,OAAO,IAAI,kBAAkB,CAAC,MAAM;AAC5C;;AAEA,OAAM,OAAO,IAAI;;AAEjB,OAAM,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,QAAQ;;AAEhD,OAAM,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;SACzB,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C;;AAEA,OAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;;AAEnC,OAAM,OAAO;AACb;KACI,KAAK,MAAM,EAAE;AACjB;OACM,IAAI,QAAQ,GAAG;;AAErB;AACA;OACM,IAAI,YAAY,EAAE;AACxB,SAAQ,QAAQ,GAAG,WAAW,CAAC,YAAY;AAC3C;;AAEA;AACA,OAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,EAAE;AAC9C;AACA;AACA,SAAQ,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ;;AAE3C;AACA;AACA,SAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;WACtB,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;AAC/D;AACA;;AAEA;AACA,OAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;AAClC,SAAQ,QAAQ,GAAG;AACnB;;AAEA;AACA;AACA,OAAM,OAAO,MAAM,CAAC,KAAK,EAAE,QAAQ;AACnC;KACI,KAAK,aAAa,EAAE;AACxB;AACA,OAAM,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK;;OAE3C,OAAO,QAAQ,CAAC;AACtB;KACI,KAAK,cAAc,EAAE;AACzB;AACA;OACM,IAAI,YAAY,GAAG;;AAEzB,OAAM,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,QAAQ;;AAEhD,OAAM,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;AACjC,SAAQ,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;AAC3C;;AAEA,OAAM,YAAY,IAAI,OAAO,CAAC,GAAG;;AAEjC,OAAM,OAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;AACpC,GAAE,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO;;AAE5C;AACA,GAAE,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK;;GAErC,IAAI,KAAK,GAAG;;AAEd;AACA,GAAE,IAAI,WAAW,KAAK,IAAI,EAAE;AAC5B;AACA,KAAI,QAAQ,GAAG;;AAEf;AACA;AACA;AACA,KAAI,KAAK,GAAG,WAAW,KAAK,OAAO,GAAG,CAAC,GAAG;AAC1C;;AAEA;AACA;;AAEA;;AAEA,GAAE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK;GAChC,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM;AAChD;;AAEA;AACA;AACA;AACA;CACA,SAAS,WAAW,EAAE,OAAO,EAAE;AAC/B;AACA;GACE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;;AAEpB;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;AAC9C,KAAI,OAAO;IACR,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;AACvC,KAAI,OAAO;IACR,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;AACvC,KAAI,OAAO;AACX;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,SAAS,EAAE;GACxC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAC1C,KAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,IAAG,EAAE,CAAC;;GAEJ,IAAI,MAAM,GAAG;;GAEb,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AACpC,KAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;KACf,MAAM,IAAI,CAAC,CAAC;AAChB,KAAI,OAAO;AACX,IAAG,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;AACzB;;AAEA,CAAAI,MAAc,GAAG;AACjB,GAAE,yBAAyB;AAC3B,GAAE,aAAa;GACb;AACF;;;;;;;;;;;CCrYA,MAAM;AACN,GAAE,yBAAyB;AAC3B,GAAE,aAAa;GACb;AACF,EAAC,GAAGb,aAAA;CACJ,MAAM;AACN,GAAE,MAAM;AACR,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,OAAO;GACP;AACF,EAAC,GAAGD,gBAAA;CACJ,MAAM,EAAE,MAAM,EAAE,GAAGE,aAAA;CACnB,MAAM,EAAE,mBAAmB,EAAE,GAAGC,aAAA;;CAEhC,MAAM,UAAU,SAAS,WAAW,CAAC;GACnC,WAAW,CAAC,GAAG;AACjB,KAAI,KAAK;;AAET,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;AACpB,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACnB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG;OACd,OAAO,EAAE,IAAI;OACb,KAAK,EAAE,IAAI;OACX,KAAK,EAAE,IAAI;OACX,IAAI,EAAE,IAAI;OACV,QAAQ,EAAE,IAAI;AACpB,OAAM,SAAS,EAAE;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE,iBAAiB,CAAC,CAAC,IAAI,EAAE;AAC3B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,8BAA8B,EAAE;;AAEvF,KAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAEzD;AACA;AACA,KAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa;AAC3C;;AAEA;AACA;AACA;AACA;AACA,GAAE,kBAAkB,CAAC,CAAC,IAAI,EAAE;AAC5B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE;;AAExF,KAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAEzD;AACA;AACA,KAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc;AAC5C;;AAEA;AACA;AACA;AACA;AACA;GACE,UAAU,CAAC,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE;AAC1C,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE;;AAEhF,KAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAEzD,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;OAC1B,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ;AACrD;;AAEA;AACA;KACI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ;AAC9C;;AAEA;AACA;AACA;AACA;AACA,GAAE,aAAa,CAAC,CAAC,IAAI,EAAE;AACvB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE;;AAEnF,KAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAEzD;AACA;AACA,KAAI,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS;AACvC;;AAEA;AACA;AACA;GACE,KAAK,CAAC,GAAG;AACX;AACA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE;AAC7D,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG;OAChB;AACN;;AAEA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACpC,OAAM,IAAI,CAAC,MAAM,CAAC,GAAG;AACrB,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG;AACtB;;AAEA;AACA;AACA;AACA,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;;AAErB;AACA;;AAEA;AACA,KAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI;;AAEpC;AACA;AACA,KAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACpC,OAAM,kBAAkB,CAAC,SAAS,EAAE,IAAI;AACxC;AACA;;AAEA;AACA;AACA;GACE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,QAAQ,IAAI,CAAC,MAAM,CAAC;AACxB,OAAM,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC;AAChC,OAAM,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC;AAClC,OAAM,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC;AAC/B;AACA;;AAEA;AACA;AACA;GACE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC;AACA;KACI,OAAO,IAAI,CAAC,OAAO;AACvB;;AAEA;AACA;AACA;GACE,IAAI,KAAK,CAAC,GAAG;AACf,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC;AACA;KACI,OAAO,IAAI,CAAC,MAAM;AACtB;;GAEE,IAAI,SAAS,CAAC,GAAG;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;;AAEA,GAAE,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE;AACrB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;OACzB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO;AAC/D;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG;AAC9B,OAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE;AACzC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG;AAC9B;AACA;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;;AAEA,GAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;OACvB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK;AAC3D;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B,OAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;AACvC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B;AACA;;GAEE,IAAI,WAAW,CAAC,GAAG;AACrB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;;AAEA,GAAE,IAAI,WAAW,CAAC,CAAC,EAAE,EAAE;AACvB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE;OAC3B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS;AACnE;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG;AAChC,OAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE;AAC3C,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG;AAChC;AACA;;GAEE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;;AAEA,GAAE,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE;AACtB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;OAC1B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ;AACjE;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG;AAC/B,OAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE;AAC1C,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG;AAC/B;AACA;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;;AAEA,GAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;OACtB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI;AACzD;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG;AAC3B,OAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE;AACtC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG;AAC3B;AACA;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;;AAEA,GAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;OACvB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK;AAC3D;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B,OAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;AACvC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B;AACA;AACA;;AAEA;CACA,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG;AAChD;CACA,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG;AACpD;CACA,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG;;AAE9C,CAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE;GAC5C,KAAK,EAAE,yBAAyB;GAChC,OAAO,EAAE,yBAAyB;GAClC,IAAI,EAAE,yBAAyB;GAC/B,iBAAiB,EAAE,mBAAmB;GACtC,kBAAkB,EAAE,mBAAmB;GACvC,UAAU,EAAE,mBAAmB;GAC/B,aAAa,EAAE,mBAAmB;GAClC,KAAK,EAAE,mBAAmB;GAC1B,UAAU,EAAE,mBAAmB;GAC/B,MAAM,EAAE,mBAAmB;GAC3B,KAAK,EAAE,mBAAmB;GAC1B,WAAW,EAAE,mBAAmB;GAChC,UAAU,EAAE,mBAAmB;GAC/B,MAAM,EAAE,mBAAmB;GAC3B,OAAO,EAAE,mBAAmB;GAC5B,OAAO,EAAE,mBAAmB;GAC5B,SAAS,EAAE,mBAAmB;AAChC,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,YAAY;KACnB,QAAQ,EAAE,KAAK;KACf,UAAU,EAAE,KAAK;AACrB,KAAI,YAAY,EAAE;AAClB;EACC;;AAED,CAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;GAClC,KAAK,EAAE,yBAAyB;GAChC,OAAO,EAAE,yBAAyB;AACpC,GAAE,IAAI,EAAE;EACP;;AAED,CAAA,UAAc,GAAG;GACf;AACF;;;;;;;;;;;ACrVA,CAAAG,SAAc,GAAG;GACf,UAAU,EAAEL,gBAAA,EAA0B,CAAC;AACzC;;;;;;;;;;;ACFA,CAAA,MAAM,MAAM,GAAGA;CACf,MAAM,EAAE,aAAa,EAAE,GAAGD,cAAA;CAC1B,MAAM,EAAE,iBAAiB,EAAE,GAAGE,aAAA;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,GAAG,KAAK,EAAE;AACnD,GAAE,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,EAAE,eAAe;;AAEtD,GAAE,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,EAAE,eAAe;;GAEpD,OAAO,WAAW,KAAK;AACzB;;AAEA;AACA;AACA;AACA;CACA,SAAS,WAAW,EAAE,MAAM,EAAE;AAC9B,GAAE,MAAM,CAAC,MAAM,KAAK,IAAI;;GAEtB,MAAM,MAAM,GAAG;;GAEf,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACvC,KAAI,KAAK,GAAG,KAAK,CAAC,IAAI;;AAEtB,KAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;OACjB;AACN,MAAK,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;OACpC;AACN;;AAEA,KAAI,MAAM,CAAC,IAAI,CAAC,KAAK;AACrB;;AAEA,GAAE,OAAO;AACT;;AAEA,CAAAY,MAAc,GAAG;AACjB,GAAE,SAAS;GACT;AACF;;;;;;;;;;;CC9CA,MAAM,EAAE,UAAU,EAAE,GAAGb,gBAAA;AACvB,CAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,GAAGD,aAAA;AACnD,CAAA,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAGE,aAAA;CAC7C,MAAM,EAAE,YAAY,EAAE,GAAGC,gBAAA;CACzB,MAAM,EAAE,MAAM,EAAE,GAAGM,aAAA;AACnB,CAAA,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAGC,eAAA;CACpC,MAAM,EAAE,OAAO,EAAE,GAAGN,cAAA;CACpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAGO,gBAAA;CAC7C,MAAM,EAAE,QAAQ,EAAE,GAAGM,YAAA;AACrB,CAAA,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,YAAY,EAAE,GAAGL,aAAA;AACtE,CAAA,MAAM,MAAM,GAAGC;CACf,MAAM,EAAE,mBAAmB,EAAE,GAAGK,aAAA;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,CAAA,MAAM,KAAK,CAAC;AACZ;AACA;AACA;AACA;GACE;;GAEA,WAAW,CAAC,GAAG;AACjB,KAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;OAC/B,MAAM,CAAC,kBAAkB;AAC/B;;AAEA,KAAI,IAAI,CAAC,4BAA4B,GAAG,SAAS,CAAC,CAAC;AACnD;;GAEE,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE;AACtC,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;AACjC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;;KAElE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;KAC/C,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO;;KAErD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;;AAElD,KAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;OAClB;AACN;;KAEI,OAAO,CAAC,CAAC,CAAC;AACd;;GAEE,MAAM,QAAQ,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AACrD,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;;AAEjC,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;KAC1E,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO;;AAEzD;KACI,IAAI,CAAC,GAAG;;AAEZ;AACA,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B,OAAM,IAAI,OAAO,YAAY,OAAO,EAAE;AACtC;AACA,SAAQ,CAAC,GAAG,OAAO,CAAC,MAAM;;AAE1B;SACQ,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACzD,WAAU,OAAO;AACjB;AACA,QAAO,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC9C;SACQ,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AACvC;AACA;;AAEA;AACA;KACI,MAAM,SAAS,GAAG;;AAEtB;AACA,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B;AACA,OAAM,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACvE,SAAQ,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACzC;AACA,MAAK,MAAM;AACX;OACM,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO;;AAE1D;AACA,OAAM,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;AACtD,SAAQ,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACzC;AACA;;AAEA;AACA;;AAEA;KACI,MAAM,YAAY,GAAG;;AAEzB;AACA,KAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC;AACA,OAAM,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI;AACvE,OAAM,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC1C,OAAM,cAAc,CAAC,MAAM,CAAC,GAAG;AAC/B,OAAM,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG;OAC9B,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;AACxD,OAAM,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;;AAEzC,OAAM,YAAY,CAAC,IAAI,CAAC,cAAc;AACtC;;AAEA;AACA,KAAI,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY;AACrC;;AAEA,GAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE;AACtB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;AACjC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;;KAEhE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;;AAEnD;AACA,KAAI,MAAM,QAAQ,GAAG,CAAC,OAAO;;AAE7B;AACA,KAAI,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;;AAErD;AACA,KAAI,OAAO,MAAM;AACjB;;AAEA,GAAE,MAAM,MAAM,CAAC,CAAC,QAAQ,EAAE;AAC1B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;AACjC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;;KAEnE,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,QAAQ;;AAElE;KACI,MAAM,gBAAgB,GAAG;;AAE7B;KACI,MAAM,WAAW,GAAG;;AAExB;AACA,KAAI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACpC,OAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;SAC/B;AACR;;AAEA;AACA,OAAM,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM;;AAE9B;AACA,OAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;AAC9D,SAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;WAC5B,MAAM,EAAE,cAAc;AAChC,WAAU,OAAO,EAAE;UACV;AACT;AACA;;AAEA;AACA;KACI,MAAM,gBAAgB,GAAG;;AAE7B;AACA,KAAI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACpC;OACM,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;;AAE3C;OACM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACxC,SAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;WAC5B,MAAM,EAAE,cAAc;AAChC,WAAU,OAAO,EAAE;UACV;AACT;;AAEA;OACM,CAAC,CAAC,SAAS,GAAG;OACd,CAAC,CAAC,WAAW,GAAG;;AAEtB;AACA,OAAM,WAAW,CAAC,IAAI,CAAC,CAAC;;AAExB;OACM,MAAM,eAAe,GAAG,qBAAqB;;AAEnD;AACA,OAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B,OAAO,EAAE,CAAC;SACV,UAAU,EAAE,mBAAmB,EAAE;AACzC,SAAQ,eAAe,CAAC,CAAC,QAAQ,EAAE;AACnC;WACU,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;aAC1G,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;eAC7C,MAAM,EAAE,cAAc;AACpC,eAAc,OAAO,EAAE;AACvB,cAAa,CAAC;YACH,MAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5D;AACA,aAAY,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;AAE/E;AACA,aAAY,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAClD;AACA,eAAc,IAAI,UAAU,KAAK,GAAG,EAAE;iBACtB,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;mBAC7C,MAAM,EAAE,cAAc;AACxC,mBAAkB,OAAO,EAAE;AAC3B,kBAAiB,CAAC;;AAElB,iBAAgB,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE;mBACzC,UAAU,CAAC,KAAK;AAClC;;iBAEgB;AAChB;AACA;AACA;UACS;AACT,SAAQ,wBAAwB,CAAC,CAAC,QAAQ,EAAE;AAC5C;AACA,WAAU,IAAI,QAAQ,CAAC,OAAO,EAAE;aACpB,eAAe,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC;aAChE;AACZ;;AAEA;AACA,WAAU,eAAe,CAAC,OAAO,CAAC,QAAQ;AAC1C;AACA,QAAO,CAAC;;AAER;AACA,OAAM,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO;AACnD;;AAEA;AACA,KAAI,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB;;AAE1C;KACI,MAAM,SAAS,GAAG,MAAM;;AAE5B;KACI,MAAM,UAAU,GAAG;;AAEvB;KACI,IAAI,KAAK,GAAG;;AAEhB;AACA,KAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC;AACA;OACM,MAAM,SAAS,GAAG;SAChB,IAAI,EAAE,KAAK;AACnB,SAAQ,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC;AACnC,SAAQ,QAAQ;AAChB;;AAEA,OAAM,UAAU,CAAC,IAAI,CAAC,SAAS,EAAC;;AAEhC,OAAM,KAAK,GAAE;AACb;;AAEA;KACI,MAAM,eAAe,GAAG,qBAAqB;;AAEjD;KACI,IAAI,SAAS,GAAG;;AAEpB;AACA,KAAI,IAAI;AACR,OAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU;MACtC,CAAC,OAAO,CAAC,EAAE;AAChB,OAAM,SAAS,GAAG;AAClB;;AAEA;KACI,cAAc,CAAC,MAAM;AACzB;AACA,OAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AAC9B,SAAQ,eAAe,CAAC,OAAO,CAAC,SAAS;AACzC,QAAO,MAAM;AACb;AACA,SAAQ,eAAe,CAAC,MAAM,CAAC,SAAS;AACxC;MACK;;AAEL;KACI,OAAO,eAAe,CAAC;AAC3B;;AAEA,GAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE;AAChC,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;AACjC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;;KAEhE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;KAC/C,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ;;AAElD;KACI,IAAI,YAAY,GAAG;;AAEvB;AACA,KAAI,IAAI,OAAO,YAAY,OAAO,EAAE;AACpC,OAAM,YAAY,GAAG,OAAO,CAAC,MAAM;AACnC,MAAK,MAAM;OACL,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AAChD;;AAEA;AACA,KAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,EAAE;AAClF,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,WAAW;AAC3B,SAAQ,OAAO,EAAE;QACV;AACP;;AAEA;AACA,KAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM;;AAEzC;AACA,KAAI,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE;AACtC,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,WAAW;AAC3B,SAAQ,OAAO,EAAE;QACV;AACP;;AAEA;KACI,IAAI,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpD;AACA,OAAM,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;AAE9E;AACA,OAAM,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC5C;AACA,SAAQ,IAAI,UAAU,KAAK,GAAG,EAAE;AAChC,WAAU,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B,MAAM,EAAE,WAAW;AAC/B,aAAY,OAAO,EAAE;YACV;AACX;AACA;AACA;;AAEA;KACI,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC5G,OAAM,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;SAC5B,MAAM,EAAE,WAAW;AAC3B,SAAQ,OAAO,EAAE;QACV;AACP;;AAEA;AACA,KAAI,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa;;AAEtD;KACI,MAAM,eAAe,GAAG,qBAAqB;;AAEjD;AACA,KAAI,IAAI,aAAa,CAAC,IAAI,IAAI,IAAI,EAAE;AACpC;AACA,OAAM,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;;AAExC;AACA,OAAM,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;;AAErC;AACA,OAAM,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM;AAC/E,MAAK,MAAM;AACX,OAAM,eAAe,CAAC,OAAO,CAAC,SAAS;AACvC;;AAEA;AACA;KACI,MAAM,UAAU,GAAG;;AAEvB;AACA;KACI,MAAM,SAAS,GAAG;OAChB,IAAI,EAAE,KAAK;OACX,OAAO,EAAE,YAAY;OACrB,QAAQ,EAAE,cAAc;AAC9B;;AAEA;AACA,KAAI,UAAU,CAAC,IAAI,CAAC,SAAS;;AAE7B;AACA,KAAI,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;;AAExC,KAAI,IAAI,cAAc,CAAC,IAAI,IAAI,IAAI,EAAE;AACrC,OAAM,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG;AACnC;;AAEA;KACI,MAAM,eAAe,GAAG,qBAAqB;;AAEjD;KACI,IAAI,SAAS,GAAG;;AAEpB;AACA,KAAI,IAAI;AACR,OAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU;MACtC,CAAC,OAAO,CAAC,EAAE;AAChB,OAAM,SAAS,GAAG;AAClB;;AAEA;KACI,cAAc,CAAC,MAAM;AACzB;AACA,OAAM,IAAI,SAAS,KAAK,IAAI,EAAE;SACtB,eAAe,CAAC,OAAO;AAC/B,QAAO,MAAM;AACb,SAAQ,eAAe,CAAC,MAAM,CAAC,SAAS;AACxC;MACK;;KAED,OAAO,eAAe,CAAC;AAC3B;;GAEE,MAAM,MAAM,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE;AACvC,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;AACjC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;;KAEnE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;KAC/C,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO;;AAEzD;AACA;AACA;KACI,IAAI,CAAC,GAAG;;AAEZ,KAAI,IAAI,OAAO,YAAY,OAAO,EAAE;AACpC,OAAM,CAAC,GAAG,OAAO,CAAC,MAAM;;OAElB,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACvD,SAAQ,OAAO;AACf;AACA,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,OAAO,OAAO,KAAK,QAAQ;;OAElC,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AACrC;;AAEA;KACI,MAAM,UAAU,GAAG;;AAEvB;KACI,MAAM,SAAS,GAAG;OAChB,IAAI,EAAE,QAAQ;OACd,OAAO,EAAE,CAAC;OACV;AACN;;AAEA,KAAI,UAAU,CAAC,IAAI,CAAC,SAAS;;KAEzB,MAAM,eAAe,GAAG,qBAAqB;;KAE7C,IAAI,SAAS,GAAG;AACpB,KAAI,IAAI;;AAER,KAAI,IAAI;AACR,OAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU;MACzD,CAAC,OAAO,CAAC,EAAE;AAChB,OAAM,SAAS,GAAG;AAClB;;KAEI,cAAc,CAAC,MAAM;AACzB,OAAM,IAAI,SAAS,KAAK,IAAI,EAAE;SACtB,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM;AAC1D,QAAO,MAAM;AACb,SAAQ,eAAe,CAAC,MAAM,CAAC,SAAS;AACxC;MACK;;KAED,OAAO,eAAe,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,MAAM,IAAI,CAAC,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AACjD,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK;;AAEjC,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;KAC1E,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO;;AAEzD;KACI,IAAI,CAAC,GAAG;;AAEZ;AACA,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B;AACA,OAAM,IAAI,OAAO,YAAY,OAAO,EAAE;AACtC;AACA,SAAQ,CAAC,GAAG,OAAO,CAAC,MAAM;;AAE1B;SACQ,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACzD,WAAU,OAAO;AACjB;AACA,QAAO,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;SACtC,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;AACvC;AACA;;AAEA;KACI,MAAM,OAAO,GAAG,qBAAqB;;AAEzC;AACA;KACI,MAAM,QAAQ,GAAG;;AAErB;AACA,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;AAC/B;AACA,OAAM,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACvE;AACA,SAAQ,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACxC;AACA,MAAK,MAAM;AACX;OACM,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO;;AAE1D;AACA,OAAM,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;AACtD;AACA,SAAQ,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACxC;AACA;;AAEA;KACI,cAAc,CAAC,MAAM;AACzB;OACM,MAAM,WAAW,GAAG;;AAE1B;AACA,OAAM,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AACtC,SAAQ,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,WAAW;AACrD,SAAQ,aAAa,CAAC,MAAM,CAAC,GAAG;SACxB,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;AACxD,SAAQ,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;AAC1C,SAAQ,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;;AAExC;AACA,SAAQ,WAAW,CAAC,IAAI,CAAC,aAAa;AACtC;;AAEA;OACM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;MAC3C;;KAED,OAAO,OAAO,CAAC;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,qBAAqB,CAAC,CAAC,UAAU,EAAE;AACrC;AACA,KAAI,MAAM,KAAK,GAAG,IAAI,CAAC;;AAEvB;AACA,KAAI,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK;;AAEjC;KACI,MAAM,UAAU,GAAG;;AAEvB;KACI,MAAM,UAAU,GAAG;;AAEvB,KAAI,IAAI;AACR;AACA,OAAM,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAC1C;AACA,SAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE;AACrE,WAAU,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B,MAAM,EAAE,6BAA6B;AACjD,aAAY,OAAO,EAAE;YACV;AACX;;AAEA;AACA,SAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;AACvE,WAAU,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;aAC5B,MAAM,EAAE,6BAA6B;AACjD,aAAY,OAAO,EAAE;YACV;AACX;;AAEA;AACA,SAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,EAAE;AACvF,WAAU,MAAM,IAAI,YAAY,CAAC,KAAK,EAAE,mBAAmB;AAC3D;;AAEA;AACA,SAAQ,IAAI;;AAEZ;AACA,SAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzC;AACA,WAAU,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO;;AAElF;AACA,WAAU,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7C,aAAY,OAAO;AACnB;;AAEA;AACA,WAAU,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;AAC1D,aAAY,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe;AACrD,aAAY,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;;AAE7B;AACA,aAAY,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC/B;AACA,UAAS,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE;AAC7C;AACA,WAAU,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC1C,aAAY,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;eAC5B,MAAM,EAAE,6BAA6B;AACnD,eAAc,OAAO,EAAE;cACV;AACb;;AAEA;AACA,WAAU,MAAM,CAAC,GAAG,SAAS,CAAC;;AAE9B;WACU,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC5C,aAAY,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;eAC5B,MAAM,EAAE,6BAA6B;AACnD,eAAc,OAAO,EAAE;cACV;AACb;;AAEA;AACA,WAAU,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,aAAY,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;eAC5B,MAAM,EAAE,6BAA6B;AACnD,eAAc,OAAO,EAAE;cACV;AACb;;AAEA;AACA,WAAU,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,EAAE;AACzC,aAAY,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;eAC5B,MAAM,EAAE,6BAA6B;AACnD,eAAc,OAAO,EAAE;cACV;AACb;;AAEA;WACU,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO;;AAE/D;AACA,WAAU,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;AAC1D,aAAY,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe;AACrD,aAAY,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;;AAE7B;AACA,aAAY,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC/B;;AAEA;AACA,WAAU,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC;;AAE5D;AACA,WAAU,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC;AACjE;;AAEA;AACA,SAAQ,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC/D;;AAEA;AACA,OAAM,OAAO;MACR,CAAC,OAAO,CAAC,EAAE;AAChB;AACA,OAAM,IAAI,CAAC,4BAA4B,CAAC,MAAM,GAAG;;AAEjD;OACM,IAAI,CAAC,4BAA4B,GAAG;;AAE1C;AACA,OAAM,MAAM;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE;AACrD;KACI,MAAM,UAAU,GAAG;;AAEvB,KAAI,MAAM,OAAO,GAAG,aAAa,IAAI,IAAI,CAAC;;AAE1C,KAAI,KAAK,MAAM,eAAe,IAAI,OAAO,EAAE;AAC3C,OAAM,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG;AAC9C,OAAM,IAAI,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;AAChG,SAAQ,UAAU,CAAC,IAAI,CAAC,eAAe;AACvC;AACA;;AAEA,KAAI,OAAO;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,yBAAyB,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE;AAC9E;AACA;AACA;;KAEI,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG;;KAEzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG;;AAEzC,KAAI,IAAI,OAAO,EAAE,YAAY,EAAE;OACzB,SAAS,CAAC,MAAM,GAAG;;OAEnB,QAAQ,CAAC,MAAM,GAAG;AACxB;;KAEI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;AAC/C,OAAM,OAAO;AACb;;KAEI;OACE,QAAQ,IAAI,IAAI;OAChB,OAAO,EAAE,UAAU;AACzB,OAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM;OACrC;AACN,OAAM,OAAO;AACb;;AAEA,KAAI,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;;AAEvE,KAAI,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC1C,OAAM,IAAI,UAAU,KAAK,GAAG,EAAE;AAC9B,SAAQ,OAAO;AACf;;OAEM,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU;OACvD,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU;;AAEhE;AACA;AACA,OAAM,IAAI,YAAY,KAAK,UAAU,EAAE;AACvC,SAAQ,OAAO;AACf;AACA;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE;AACzC,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,OAAO;AAClB,KAAI,YAAY,EAAE;IACf;GACD,KAAK,EAAE,mBAAmB;GAC1B,QAAQ,EAAE,mBAAmB;GAC7B,GAAG,EAAE,mBAAmB;GACxB,MAAM,EAAE,mBAAmB;GAC3B,GAAG,EAAE,mBAAmB;GACxB,MAAM,EAAE,mBAAmB;AAC7B,GAAE,IAAI,EAAE;EACP;;AAED,CAAA,MAAM,0BAA0B,GAAG;GACjC;KACE,GAAG,EAAE,cAAc;AACvB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,cAAc;AACvB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,YAAY;AACrB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;AAClB;AACA;;CAEA,MAAM,CAAC,UAAU,CAAC,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,0BAA0B;;CAE3F,MAAM,CAAC,UAAU,CAAC,sBAAsB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtE,GAAE,GAAG,0BAA0B;GAC7B;KACE,GAAG,EAAE,WAAW;AACpB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AACjC;EACC;;CAED,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ;;CAE/D,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,iBAAiB;GACnE,MAAM,CAAC,UAAU,CAAC;AACpB;;AAEA,CAAA,KAAc,GAAG;GACf;AACF;;;;;;;;;;;CCn0BA,MAAM,EAAE,UAAU,EAAE,GAAGjB,gBAAA;CACvB,MAAM,EAAE,KAAK,EAAE,GAAGD,YAAA;CAClB,MAAM,EAAE,MAAM,EAAE,GAAGE,aAAA;CACnB,MAAM,EAAE,mBAAmB,EAAE,GAAGC,aAAA;;AAEhC,CAAA,MAAM,YAAY,CAAC;AACnB;AACA;AACA;AACA;GACE,OAAO,GAAG,IAAI,GAAG;;GAEjB,WAAW,CAAC,GAAG;AACjB,KAAI,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;OAC/B,MAAM,CAAC,kBAAkB;AAC/B;AACA;;GAEE,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE;AACtC,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;AACxC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;;KAEzE,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;KAC/C,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO;;AAE9D;AACA,KAAI,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;AACnC;OACM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC/C;SACQ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS;SACpD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,SAAS;;SAE7C,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO;AACjD;AACA,MAAK,MAAM;AACX;OACM,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;SAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,SAAS;;AAErD;SACQ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO;;AAE3D,SAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACpC,WAAU,OAAO;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE;AACxB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;AACxC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;;KAEvE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS;;AAErD;AACA;AACA,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,MAAM,IAAI,CAAC,CAAC,SAAS,EAAE;AACzB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;AACxC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;;KAExE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS;;AAErD;KACI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACrC;;AAEA;OACM,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS;;AAE9C;AACA,OAAM,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK;AACxC;;AAEA;KACI,MAAM,KAAK,GAAG;;AAElB;KACI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK;;AAErC;AACA,KAAI,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,MAAM,MAAM,CAAC,CAAC,SAAS,EAAE;AAC3B,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;AACxC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE;;KAE1E,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS;;AAErD,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;AACxC;;AAEA;AACA;AACA;AACA;GACE,MAAM,IAAI,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC;AACA,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;;AAElC;KACI,OAAO,CAAC,GAAG,IAAI;AACnB;AACA;;AAEA,CAAA,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE;AAChD,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,cAAc;AACzB,KAAI,YAAY,EAAE;IACf;GACD,KAAK,EAAE,mBAAmB;GAC1B,GAAG,EAAE,mBAAmB;GACxB,IAAI,EAAE,mBAAmB;GACzB,MAAM,EAAE,mBAAmB;AAC7B,GAAE,IAAI,EAAE;EACP;;AAED,CAAA,YAAc,GAAG;GACf;AACF;;;;;;;;;;;AC7IA;AACA,CAAA,MAAM,qBAAqB,GAAG;;AAE9B;AACA,CAAA,MAAM,oBAAoB,GAAG;;AAE7B,CAAAK,WAAc,GAAG;AACjB,GAAE,qBAAqB;GACrB;AACF;;;;;;;;;;;ACTA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,KAAK,EAAE;AACpC,GAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,KAAI,OAAO;AACX;;AAEA,GAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC5B,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;KAE9B;AACJ,OAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AACnC,QAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;AACpC,OAAM,IAAI,KAAK;OACT;AACN,OAAM,OAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,IAAI,EAAE;AACnC,GAAE,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AAC3B,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;KAE9B;AACJ,OAAM,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI;OAC5B,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;AAClB,OAAM,IAAI,KAAK;OACT;AACN,OAAM,MAAM,IAAI,KAAK,CAAC,qBAAqB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,mBAAmB,EAAE,KAAK,EAAE;AACrC,GAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC5B,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;KAE9B;OACE,IAAI,GAAG,IAAI;OACX,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;OACb,IAAI,GAAG,IAAI;OACX;AACN,OAAM,MAAM,IAAI,KAAK,CAAC,sBAAsB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,IAAI,EAAE;AACnC,GAAE,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AAC3B,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;KAE9B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;AACrC,OAAM,MAAM,IAAI,KAAK,CAAC,qBAAqB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,MAAM,EAAE;GACrC;AACF,KAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;AAC1B,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxB,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG;KACnB;AACJ,KAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,SAAS,EAAE,IAAI,EAAE;AAC1B,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI;AACxB;;GAEE,MAAM,IAAI,GAAG;AACf,KAAI,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;KAC1B,KAAK,EAAE,KAAK,EAAE;AAClB;;GAEE,MAAM,MAAM,GAAG;KACb,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;KACxC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC;;GAEE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvC,GAAE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG;GACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;AACzC,GAAE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc;AAClC,GAAE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG;AAC5D,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG;AAChE,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG;;AAEhE,GAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,oBAAoB,EAAE,MAAM,EAAE;AACvC,GAAE,IAAI,MAAM,GAAG,CAAC,EAAE;AAClB,KAAI,MAAM,IAAI,KAAK,CAAC,wBAAwB;AAC5C;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,SAAS,EAAE,MAAM,EAAE;GAC1B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,KAAI,OAAO;AACX;;AAEA,GAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI;AAChC,GAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK;;AAElC,GAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;;AAE/C;AACA;GACE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;KACvC,MAAM,CAAC,MAAM,GAAG;AACpB;;GAEE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;KACrC,MAAM,CAAC,MAAM,GAAG;KAChB,MAAM,CAAC,MAAM,GAAG;KAChB,MAAM,CAAC,IAAI,GAAG;AAClB;;AAEA,GAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,KAAI,GAAG,CAAC,IAAI,CAAC,QAAQ;AACrB;;AAEA,GAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;AACvB,KAAI,GAAG,CAAC,IAAI,CAAC,UAAU;AACvB;;AAEA,GAAE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;AACzC,KAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM;KAClC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvC;;AAEA,GAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,KAAI,oBAAoB,CAAC,MAAM,CAAC,MAAM;KAClC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC;;AAEA,GAAE,IAAI,MAAM,CAAC,IAAI,EAAE;AACnB,KAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI;KAC9B,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC;;AAEA,GAAE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,cAAc,EAAE;AACtE,KAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD;;AAEA,GAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;KACnB,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C;;AAEA,GAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE;KAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7B,OAAM,MAAM,IAAI,KAAK,CAAC,kBAAkB;AACxC;;AAEA,KAAI,MAAM,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;;KAEtC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C;;AAEA,GAAE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI;AACtB;;AAEA,CAAAM,MAAc,GAAG;AACjB,GAAE,kBAAkB;AACpB,GAAE,kBAAkB;AACpB,GAAE,kBAAkB;AACpB,GAAE,mBAAmB;AACrB,GAAE,SAAS;GACT;AACF;;;;;;;;;;;AC/QA,CAAA,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAGb,kBAAA;CACxD,MAAM,EAAE,kBAAkB,EAAE,GAAGD,aAAA;CAC/B,MAAM,EAAE,gCAAgC,EAAE,GAAGE,cAAA;AAC7C,CAAA,MAAM,MAAM,GAAGC;;AAEf;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,EAAE,MAAM,EAAE;AACjC;AACA;AACA;AACA,GAAE,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;AAClC,KAAI,OAAO;AACX;;GAEE,IAAI,aAAa,GAAG;GACpB,IAAI,kBAAkB,GAAG;GACzB,IAAI,IAAI,GAAG;GACX,IAAI,KAAK,GAAG;;AAEd;AACA,GAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B;AACA;AACA;AACA;AACA,KAAI,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;;KAE9B,aAAa,GAAG,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ;KACtE,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ;AACvD,IAAG,MAAM;AACT;;AAEA;AACA;AACA;AACA,KAAI,aAAa,GAAG;AACpB;;AAEA;AACA;AACA;GACE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpC,KAAI,KAAK,GAAG;AACZ,IAAG,MAAM;AACT;AACA;AACA;AACA;AACA,KAAI,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;KAC9B,IAAI,GAAG,gCAAgC;AAC3C,OAAM,GAAG;AACT,OAAM,aAAa;OACb;AACN;KACI,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC;AACrD;;AAEA;AACA;AACA,GAAE,IAAI,GAAG,IAAI,CAAC,IAAI;AAClB,GAAE,KAAK,GAAG,KAAK,CAAC,IAAI;;AAEpB;AACA;AACA;GACE,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,oBAAoB,EAAE;AACzD,KAAI,OAAO;AACX;;AAEA;AACA;AACA,GAAE,OAAO;AACT,KAAI,IAAI,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC,kBAAkB;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,uBAAuB,EAAE,kBAAkB,EAAE,mBAAmB,GAAG,EAAE,EAAE;AAChF;AACA;AACA,GAAE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,KAAI,OAAO;AACX;;AAEA;AACA;AACA,GAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,GAAG;AACtC,GAAE,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;;GAE/C,IAAI,QAAQ,GAAG;;AAEjB;AACA;AACA,GAAE,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxC;AACA;KACI,QAAQ,GAAG,gCAAgC;AAC/C,OAAM,GAAG;AACT,OAAM,kBAAkB;OAClB,EAAE,QAAQ,EAAE,CAAC;AACnB;KACI,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;AACjE,IAAG,MAAM;AACT;;AAEA;AACA,KAAI,QAAQ,GAAG;AACf,KAAI,kBAAkB,GAAG;AACzB;;AAEA;;GAEE,IAAI,aAAa,GAAG;GACpB,IAAI,cAAc,GAAG;;AAEvB;AACA,GAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAI,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAC;;KAE9B,aAAa,GAAG,gCAAgC;AACpD,OAAM,GAAG;AACT,OAAM,QAAQ;OACR;AACN;KACI,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC;AACzD,IAAG,MAAM;AACT;;AAEA;AACA;AACA,KAAI,aAAa,GAAG;AACpB;;AAEA;AACA;AACA,GAAE,aAAa,GAAG,aAAa,CAAC,IAAI;AACpC,GAAE,cAAc,GAAG,cAAc,CAAC,IAAI;;AAEtC;AACA;AACA,GAAE,IAAI,cAAc,CAAC,MAAM,GAAG,qBAAqB,EAAE;AACrD,KAAI,OAAO,uBAAuB,CAAC,kBAAkB,EAAE,mBAAmB;AAC1E;;AAEA;AACA;AACA;AACA,GAAE,MAAM,sBAAsB,GAAG,aAAa,CAAC,WAAW;;AAE1D;AACA;AACA;AACA,GAAE,IAAI,sBAAsB,KAAK,SAAS,EAAE;AAC5C;AACA;AACA,KAAI,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc;;AAE9C;AACA;;KAEI,mBAAmB,CAAC,OAAO,GAAG;AAClC,IAAG,MAAM,IAAI,sBAAsB,KAAK,SAAS,EAAE;AACnD;AACA;AACA;;AAEA;AACA;AACA,KAAI,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;;AAEhD,KAAI,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,QAAQ,GAAG,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACvE,OAAM,OAAO,uBAAuB,CAAC,kBAAkB,EAAE,mBAAmB;AAC5E;;AAEA;AACA;KACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;AACvC,OAAM,OAAO,uBAAuB,CAAC,kBAAkB,EAAE,mBAAmB;AAC5E;;AAEA;AACA,KAAI,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc;;AAE9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;KACI,mBAAmB,CAAC,MAAM,GAAG;AACjC,IAAG,MAAM,IAAI,sBAAsB,KAAK,QAAQ,EAAE;AAClD;AACA;AACA;;AAEA;KACI,IAAI,YAAY,GAAG;;AAEvB;AACA;AACA,KAAI,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACjC,OAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACzC;;AAEA;AACA,KAAI,YAAY,GAAG,YAAY,CAAC,WAAW;;AAE3C;AACA;KACI,mBAAmB,CAAC,MAAM,GAAG;AACjC,IAAG,MAAM,IAAI,sBAAsB,KAAK,MAAM,EAAE;AAChD;AACA;AACA;;AAEA;AACA;KACI,IAAI,UAAU,GAAG;AACrB,KAAI,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClE;AACA,OAAM,UAAU,GAAG;AACnB,MAAK,MAAM;AACX;;AAEA;AACA,OAAM,UAAU,GAAG;AACnB;;AAEA;AACA;KACI,mBAAmB,CAAC,IAAI,GAAG;AAC/B,IAAG,MAAM,IAAI,sBAAsB,KAAK,QAAQ,EAAE;AAClD;AACA;AACA;AACA;;KAEI,mBAAmB,CAAC,MAAM,GAAG;AACjC,IAAG,MAAM,IAAI,sBAAsB,KAAK,UAAU,EAAE;AACpD;AACA;AACA;AACA;AACA;;KAEI,mBAAmB,CAAC,QAAQ,GAAG;AACnC,IAAG,MAAM,IAAI,sBAAsB,KAAK,UAAU,EAAE;AACpD;AACA;AACA;;AAEA;KACI,IAAI,WAAW,GAAG;;AAEtB,KAAI,MAAM,uBAAuB,GAAG,cAAc,CAAC,WAAW;AAC9D;AACA;AACA,KAAI,IAAI,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClD,OAAM,WAAW,GAAG;AACpB;;AAEA;AACA;AACA,KAAI,IAAI,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACpD,OAAM,WAAW,GAAG;AACpB;;AAEA;AACA;AACA,KAAI,IAAI,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACjD,OAAM,WAAW,GAAG;AACpB;;AAEA;AACA;AACA;KACI,mBAAmB,CAAC,QAAQ,GAAG;AACnC,IAAG,MAAM;KACL,mBAAmB,CAAC,QAAQ,KAAK;;AAErC,KAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAC1E;;AAEA;AACA,GAAE,OAAO,uBAAuB,CAAC,kBAAkB,EAAE,mBAAmB;AACxE;;AAEA,CAAAyB,OAAc,GAAG;AACjB,GAAE,cAAc;GACd;AACF;;;;;;;;;;;CC1TA,MAAM,EAAE,cAAc,EAAE,GAAG3B,YAAA;CAC3B,MAAM,EAAE,SAAS,EAAE,GAAGD,aAAA;CACtB,MAAM,EAAE,MAAM,EAAE,GAAGE,aAAA;CACnB,MAAM,EAAE,OAAO,EAAE,GAAGC,cAAA;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,UAAU,EAAE,OAAO,EAAE;AAC9B,GAAE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;;AAEnE,GAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAEvD,GAAE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ;GACnC,MAAM,GAAG,GAAG;;GAEZ,IAAI,CAAC,MAAM,EAAE;AACf,KAAI,OAAO;AACX;;GAEE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACzC,KAAI,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG;;AAE5C,KAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG;AACrC;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;AAClD,GAAE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;;AAErE,GAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;GAErD,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;GACvC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,UAAU;;AAElE;AACA;GACE,SAAS,CAAC,OAAO,EAAE;AACrB,KAAI,IAAI;KACJ,KAAK,EAAE,EAAE;AACb,KAAI,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;AACxB,KAAI,GAAG;IACJ;AACH;;AAEA;AACA;AACA;AACA;CACA,SAAS,aAAa,EAAE,OAAO,EAAE;AACjC,GAAE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;;AAEtE,GAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;AAEvD,GAAE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY;;GAEpC,IAAI,CAAC,OAAO,EAAE;AAChB,KAAI,OAAO;AACX;;GAEE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;AACrC,GAAE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;;AAElE,GAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;GAErD,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM;;AAE1C,GAAE,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM;;GAE5B,IAAI,GAAG,EAAE;KACP,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC;AAClD;AACA;;CAEA,MAAM,CAAC,UAAU,CAAC,sBAAsB,GAAG,MAAM,CAAC,mBAAmB,CAAC;GACpE;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChE,GAAG,EAAE,MAAM;AACf,KAAI,YAAY,EAAE;IACf;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChE,GAAG,EAAE,QAAQ;AACjB,KAAI,YAAY,EAAE;AAClB;EACC;;CAED,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC;GACpD;AACF,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,GAAG,EAAE;IACN;GACD;AACF,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,GAAG,EAAE;IACN;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,KAAK;AACnD,OAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;SAC7B,OAAO,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,KAAK;AAC5D;;AAEA,OAAM,OAAO,IAAI,IAAI,CAAC,KAAK;AAC3B,MAAK,CAAC;KACF,GAAG,EAAE,SAAS;AAClB,KAAI,YAAY,EAAE;IACf;GACD;AACF,KAAI,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;KACnE,GAAG,EAAE,QAAQ;AACjB,KAAI,YAAY,EAAE;IACf;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChE,GAAG,EAAE,QAAQ;AACjB,KAAI,YAAY,EAAE;IACf;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChE,GAAG,EAAE,MAAM;AACf,KAAI,YAAY,EAAE;IACf;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;KAC9D,GAAG,EAAE,QAAQ;AACjB,KAAI,YAAY,EAAE;IACf;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;KAC9D,GAAG,EAAE,UAAU;AACnB,KAAI,YAAY,EAAE;IACf;GACD;AACF,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;KACtC,GAAG,EAAE,UAAU;AACnB,KAAI,aAAa,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;IACxC;GACD;KACE,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;KAChE,GAAG,EAAE,UAAU;AACnB,KAAI,YAAY,EAAE;AAClB;EACC;;AAED,CAAA,OAAc,GAAG;AACjB,GAAE,UAAU;AACZ,GAAE,YAAY;AACd,GAAE,aAAa;GACb;AACF;;;;;;;;;;;ACpLA;AACA;AACA;AACA;AACA,CAAA,MAAM,GAAG,GAAG;;AAEZ;AACA,CAAA,MAAM,yBAAyB,GAAG;GAChC,UAAU,EAAE,IAAI;GAChB,QAAQ,EAAE,KAAK;AACjB,GAAE,YAAY,EAAE;AAChB;;AAEA,CAAA,MAAM,MAAM,GAAG;GACb,UAAU,EAAE,CAAC;GACb,IAAI,EAAE,CAAC;GACP,OAAO,EAAE,CAAC;AACZ,GAAE,MAAM,EAAE;AACV;;AAEA,CAAA,MAAM,OAAO,GAAG;GACd,YAAY,EAAE,GAAG;GACjB,IAAI,EAAE,GAAG;GACT,MAAM,EAAE,GAAG;GACX,KAAK,EAAE,GAAG;GACV,IAAI,EAAE,GAAG;AACX,GAAE,IAAI,EAAE;AACR;;AAEA,CAAA,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,EAAC;;AAEpC,CAAA,MAAM,YAAY,GAAG;GACnB,IAAI,EAAE,CAAC;GACP,gBAAgB,EAAE,CAAC;GACnB,gBAAgB,EAAE,CAAC;AACrB,GAAE,SAAS,EAAE;AACb;;AAEA,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;;AAExC,CAAA,SAAc,GAAG;AACjB,GAAE,GAAG;AACL,GAAE,yBAAyB;AAC3B,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,gBAAgB;AAClB,GAAE,YAAY;GACZ;AACF;;;;;;;;;;;AChDA,CAAA,OAAc,GAAG;AACjB,GAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;AAC9B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC;AACnC,GAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AAC/B,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC;AAClC,GAAE,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa;AACnC;;;;;;;;;;;CCTA,MAAM,EAAE,MAAM,EAAE,GAAGF,aAAA;CACnB,MAAM,EAAE,mBAAmB,EAAE,GAAGD,aAAA;CAChC,MAAM,EAAE,WAAW,EAAE,GAAGE;;AAExB;AACA;AACA;CACA,MAAM,YAAY,SAAS,KAAK,CAAC;GAC/B;;GAEA,WAAW,CAAC,CAAC,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;AACzC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE;;KAE/E,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;KACvC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa;;AAEpE,KAAI,KAAK,CAAC,IAAI,EAAE,aAAa;;KAEzB,IAAI,CAAC,UAAU,GAAG;AACtB;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,WAAW,CAAC,GAAG;AACrB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,KAAK,CAAC,GAAG;AACf,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC,KAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK;AACzC;;AAEA,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;AAEA,GAAE,gBAAgB,CAAC;AACnB,KAAI,IAAI;KACJ,OAAO,GAAG,KAAK;KACf,UAAU,GAAG,KAAK;KAClB,IAAI,GAAG,IAAI;KACX,MAAM,GAAG,EAAE;KACX,WAAW,GAAG,EAAE;KAChB,MAAM,GAAG,IAAI;AACjB,KAAI,KAAK,GAAG;KACR;AACJ,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY;;AAExC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE;;AAExF,KAAI,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE;OAC5B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;MACzD;AACL;AACA;;AAEA;AACA;AACA;CACA,MAAM,UAAU,SAAS,KAAK,CAAC;GAC7B;;GAEA,WAAW,CAAC,CAAC,IAAI,EAAE,aAAa,GAAG,EAAE,EAAE;AACzC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE;;KAE7E,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;KACvC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa;;AAElE,KAAI,KAAK,CAAC,IAAI,EAAE,aAAa;;KAEzB,IAAI,CAAC,UAAU,GAAG;AACtB;;GAEE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,IAAI,CAAC,GAAG;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;AACA;;AAEA;CACA,MAAM,UAAU,SAAS,KAAK,CAAC;GAC7B;;AAEF,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE;AACpC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE;;AAEjF,KAAI,KAAK,CAAC,IAAI,EAAE,aAAa;;KAEzB,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI;KACvC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,IAAI,EAAE;;KAEpE,IAAI,CAAC,UAAU,GAAG;AACtB;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,KAAK,CAAC,GAAG;AACf,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;;GAEE,IAAI,KAAK,CAAC,GAAG;AACf,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU;;AAEtC,KAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B;AACA;;AAEA,CAAA,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE;AAChD,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,cAAc;AACzB,KAAI,YAAY,EAAE;IACf;GACD,IAAI,EAAE,mBAAmB;GACzB,MAAM,EAAE,mBAAmB;GAC3B,WAAW,EAAE,mBAAmB;GAChC,MAAM,EAAE,mBAAmB;GAC3B,KAAK,EAAE,mBAAmB;AAC5B,GAAE,gBAAgB,EAAE;EACnB;;AAED,CAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9C,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,YAAY;AACvB,KAAI,YAAY,EAAE;IACf;GACD,MAAM,EAAE,mBAAmB;GAC3B,IAAI,EAAE,mBAAmB;AAC3B,GAAE,QAAQ,EAAE;EACX;;AAED,CAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE;AAC9C,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,YAAY;AACvB,KAAI,YAAY,EAAE;IACf;GACD,OAAO,EAAE,mBAAmB;GAC5B,QAAQ,EAAE,mBAAmB;GAC7B,MAAM,EAAE,mBAAmB;GAC3B,KAAK,EAAE,mBAAmB;AAC5B,GAAE,KAAK,EAAE;EACR;;CAED,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW;;CAErE,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC,iBAAiB;GACnE,MAAM,CAAC,UAAU,CAAC;AACpB;;AAEA,CAAA,MAAM,SAAS,GAAG;GAChB;KACE,GAAG,EAAE,SAAS;AAClB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,YAAY;AACrB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,UAAU;AACnB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;AAClB;AACA;;CAEA,MAAM,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAChE,GAAE,GAAG,SAAS;GACZ;KACE,GAAG,EAAE,MAAM;AACf,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG;AACpC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,aAAa;AACtB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,QAAQ;AACjB;AACA;KACI,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;AACtE,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,OAAO;AAChB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC;KACrD,IAAI,YAAY,CAAC,GAAG;AACxB,OAAM,OAAO;AACb;AACA;EACC;;CAED,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC9D,GAAE,GAAG,SAAS;GACZ;KACE,GAAG,EAAE,UAAU;AACnB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;AACxC,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,MAAM;AACf,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC;AAClD,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,YAAY,EAAE;AAClB;EACC;;CAED,MAAM,CAAC,UAAU,CAAC,cAAc,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC9D,GAAE,GAAG,SAAS;GACZ;KACE,GAAG,EAAE,SAAS;AAClB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,UAAU;AACnB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC1C,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,QAAQ;AACjB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC;AACjD,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,OAAO;AAChB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC;AACjD,KAAI,YAAY,EAAE;IACf;GACD;KACE,GAAG,EAAE,OAAO;AAChB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;AACjC;EACC;;AAED,CAAA,MAAc,GAAG;AACjB,GAAE,YAAY;AACd,GAAE,UAAU;GACV;AACF;;;;;;;;;;;CC5SA,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,GAAGD,cAAA;AAC5E,CAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAGD,gBAAA;AAC5B,CAAA,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAGE,aAAA;;AAErC;;AAEA;AACA;AACA;CACA,SAAS,aAAa,EAAE,EAAE,EAAE;AAC5B;AACA;AACA;AACA,GAAE,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;AACpC;;AAEA;AACA;AACA;CACA,SAAS,SAAS,EAAE,EAAE,EAAE;AACxB;AACA;AACA;AACA,GAAE,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;AACpC;;AAEA;AACA;AACA;CACA,SAAS,QAAQ,EAAE,EAAE,EAAE;AACvB,GAAE,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,aAAa,EAAE;AACxE;;AAEA;AACA;AACA;GACE,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,aAAa,EAAC;;AAEtD;AACA;;AAEA;AACA;AACA,GAAE,MAAM,CAAC,aAAa,CAAC,KAAK;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACnD;GACE,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE;KACnC;AACJ;;AAEA;AACA,GAAE,IAAI;;AAEN,GAAE,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;AAC7B;AACA;AACA,KAAI,IAAI;AACR,OAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AAC1E,MAAK,CAAC,MAAM;AACZ,OAAM,uBAAuB,CAAC,EAAE,EAAE,uCAAuC;OACnE;AACN;AACA,IAAG,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;AACtC,KAAI,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,MAAM,EAAE;AACpC;AACA;AACA;AACA,OAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACpC,MAAK,MAAM;AACX;AACA;AACA;AACA,OAAM,YAAY,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1C;AACA;;AAEA;AACA;AACA;AACA,GAAE,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE;AACzC,KAAI,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM;AACpC,KAAI,IAAI,EAAE;IACP;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,QAAQ,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,KAAI,OAAO;AACX;;AAEA,GAAE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AAC/B,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;KAE9B;OACE,IAAI,GAAG,IAAI;OACX,IAAI,GAAG,IAAI;OACX,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,GAAG;OACZ,IAAI,KAAK,EAAE;OACX,IAAI,KAAK,CAAC;OACV;AACN,OAAM,OAAO;AACb;AACA;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,EAAE,IAAI,EAAE;GAChC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE;KAC/B;OACE,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;AACnB;AACA;;AAEA,GAAE,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AACjC;;AAEA;AACA;AACA;AACA;AACA,CAAA,SAAS,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE;AAC9C,GAAE,MAAM,EAAE,CAAC,WAAW,GAAG,UAAU,EAAE,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG;;GAE7D,UAAU,CAAC,KAAK;;GAEhB,IAAI,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;AACtD,KAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;AAC3B;;GAEE,IAAI,MAAM,EAAE;AACd,KAAI,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE;AACvC,OAAM,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM;MACxB;AACL;AACA;;AAEA,CAAAY,MAAc,GAAG;AACjB,GAAE,aAAa;AACf,GAAE,SAAS;AACX,GAAE,QAAQ;AACV,GAAE,SAAS;AACX,GAAE,kBAAkB;AACpB,GAAE,iBAAiB;AACnB,GAAE,uBAAuB;GACvB;AACF;;;;;;;;;;;ACrMA,CAAA,MAAM,kBAAkB,GAAGb;AAC3B,CAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAGD,gBAAA;CACxB,MAAM;AACN,GAAE,WAAW;AACb,GAAE,UAAU;AACZ,GAAE,WAAW;GACX;AACF,EAAC,GAAGE,cAAA;AACJ,CAAA,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAAGC,aAAA;CAC/C,MAAM,EAAE,UAAU,EAAE,GAAGM,aAAA;CACvB,MAAM,EAAE,WAAW,EAAE,GAAGC,cAAA;CACxB,MAAM,EAAE,QAAQ,EAAE,GAAGN,YAAA;CACrB,MAAM,EAAE,OAAO,EAAE,GAAGO,cAAA;CACpB,MAAM,EAAE,mBAAmB,EAAE,GAAGM,aAAA;CAChC,MAAM,EAAE,YAAY,EAAE,GAAGL,gBAAA;;AAEzB,CAAA,MAAM,QAAQ,GAAG;AACjB,CAAA,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,uBAAuB;AAClE,CAAA,QAAQ,CAAC,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,wBAAwB;AACpE,CAAA,QAAQ,CAAC,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,+BAA+B;;AAEjF;CACA,IAAI;CACJ,IAAI;GACF,MAAM,GAAG,OAAA,CAAQ,QAAQ;AAC3B,EAAC,CAAC,MAAM;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,4BAA4B,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;AACjF;AACA;GACE,MAAM,UAAU,GAAG;;GAEnB,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,KAAK,GAAG,OAAO,GAAG;;AAE3D;AACA;AACA;AACA;AACA,GAAE,MAAM,OAAO,GAAG,WAAW,CAAC;AAC9B,KAAI,OAAO,EAAE,CAAC,UAAU,CAAC;KACrB,cAAc,EAAE,MAAM;KACtB,QAAQ,EAAE,aAAa;KACvB,IAAI,EAAE,WAAW;KACjB,WAAW,EAAE,SAAS;KACtB,KAAK,EAAE,UAAU;AACrB,KAAI,QAAQ,EAAE;IACX;;AAEH;AACA,GAAE,IAAI,OAAO,CAAC,OAAO,EAAE;KACnB,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY;;KAE7D,OAAO,CAAC,WAAW,GAAG;AAC1B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ;;AAE3D;AACA;GACE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ;;AAE1D;AACA;GACE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI;;AAE1D;AACA;AACA;AACA,GAAE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;KAChC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ;AACjE;;AAEA;AACA;AACA;AACA;GACE,MAAM,iBAAiB,GAAG,GAAE;;AAE9B;AACA;AACA;;AAEA;AACA;AACA,GAAE,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC9B,KAAI,OAAO;KACP,gBAAgB,EAAE,IAAI;AAC1B,KAAI,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,mBAAmB,EAAE;AAC3D,KAAI,eAAe,CAAC,CAAC,QAAQ,EAAE;AAC/B;AACA;AACA,OAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AAChE,SAAQ,uBAAuB,CAAC,EAAE,EAAE,gDAAgD;SAC5E;AACR;;AAEA;AACA;AACA;AACA;AACA,OAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;AACzF,SAAQ,uBAAuB,CAAC,EAAE,EAAE,6CAA6C;SACzE;AACR;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE;AAC9E,SAAQ,uBAAuB,CAAC,EAAE,EAAE,mDAAmD;SAC/E;AACR;;AAEA;AACA;AACA;AACA;AACA,OAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE;AAC/E,SAAQ,uBAAuB,CAAC,EAAE,EAAE,oDAAoD;SAChF;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;OACM,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB;AACzE,OAAM,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ;AACrF,OAAM,IAAI,WAAW,KAAK,MAAM,EAAE;AAClC,SAAQ,uBAAuB,CAAC,EAAE,EAAE,yDAAyD;SACrF;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;OACM,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,0BAA0B;;OAExE,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,iBAAiB,EAAE;AACvE,SAAQ,uBAAuB,CAAC,EAAE,EAAE,yDAAyD;SACrF;AACR;;AAEA;AACA;AACA;AACA;AACA;OACM,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB;;AAE3E,OAAM,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;AACrG,SAAQ,uBAAuB,CAAC,EAAE,EAAE,gDAAgD;SAC5E;AACR;;OAEM,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY;OACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa;OACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa;;AAE/C,OAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;AACxC,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,WAAU,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;WAClC,QAAQ,EAAE,WAAW;AAC/B,WAAU,UAAU,EAAE;UACb;AACT;;OAEM,WAAW,CAAC,QAAQ;AAC1B;IACG;;AAEH,GAAE,OAAO;AACT;;AAEA;AACA;AACA;CACA,SAAS,YAAY,EAAE,KAAK,EAAE;AAC9B,GAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;KACtC,IAAI,CAAC,KAAK;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,IAAI;AAC1B,GAAE,MAAM,EAAE,EAAE,EAAE,GAAG;;AAEjB;AACA;AACA;GACE,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,cAAc;;GAEpD,IAAI,IAAI,GAAG;GACX,IAAI,MAAM,GAAG;;AAEf,GAAE,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;;GAE/B,IAAI,MAAM,EAAE;AACd,KAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI;KACtB,MAAM,GAAG,MAAM,CAAC;AACpB,IAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,GAAG;AACX;;AAEA;AACA,GAAE,EAAE,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;;AAE3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE;KACjC,QAAQ,EAAE,IAAI,EAAE;IACjB;;AAEH,GAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE;AACrC,KAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;OACrB,SAAS,EAAE,EAAE;AACnB,OAAM,IAAI;OACJ;MACD;AACL;AACA;;CAEA,SAAS,aAAa,EAAE,KAAK,EAAE;AAC/B,GAAE,MAAM,EAAE,EAAE,EAAE,GAAG;;AAEjB,GAAE,EAAE,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;;AAE3B,GAAE,IAAI,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE;AAC3C,KAAI,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK;AACtC;;GAEE,IAAI,CAAC,OAAO;AACd;;AAEA,CAAA,UAAc,GAAG;GACf;AACF;;;;;;;;;;;CChSA,MAAM,EAAE,gBAAgB,EAAE,GAAGX,gBAAA;;AAE7B;CACA,IAAI;CACJ,IAAI;GACF,MAAM,GAAG,OAAA,CAAQ,QAAQ;AAC3B,EAAC,CAAC,MAAM;;AAER;;AAEA,CAAA,MAAM,kBAAkB,CAAC;AACzB;AACA;AACA;AACA,GAAE,WAAW,CAAC,CAAC,IAAI,EAAE;KACjB,IAAI,CAAC,SAAS,GAAG;KACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACvC;;AAEA,GAAE,WAAW,CAAC,CAAC,MAAM,EAAE;KACnB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI;;AAErD;KACI,IAAI,aAAa,GAAG,WAAU;KAC9B,IAAI,MAAM,GAAG;;AAEjB,KAAI,IAAI,UAAU,GAAG,gBAAgB,EAAE;OACjC,MAAM,IAAI,EAAC;AACjB,OAAM,aAAa,GAAG;AACtB,MAAK,MAAM,IAAI,UAAU,GAAG,GAAG,EAAE;OAC3B,MAAM,IAAI,EAAC;AACjB,OAAM,aAAa,GAAG;AACtB;;KAEI,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,MAAM;;AAEzD;KACI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;AAC5B,KAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAI;AACrB,KAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAM;;AAE3C;KACI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;KACnC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;KACnC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;KACnC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;;AAEvC,KAAI,MAAM,CAAC,CAAC,CAAC,GAAG;;AAEhB,KAAI,IAAI,aAAa,KAAK,GAAG,EAAE;AAC/B,OAAM,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;AACxC,MAAK,MAAM,IAAI,aAAa,KAAK,GAAG,EAAE;AACtC;OACM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;OACxB,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACzC;;AAEA,KAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAI;;AAErB;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;OACnC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;AACjE;;AAEA,KAAI,OAAO;AACX;AACA;;AAEA,CAAA,KAAc,GAAG;GACf;AACF;;;;;;;;;;;CCtEA,MAAM,EAAE,QAAQ,EAAE,GAAGA;AACrB,CAAA,MAAM,kBAAkB,GAAGD;CAC3B,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAGE,gBAAA;CACvD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAGC,cAAA;AAC/D,CAAA,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,GAAGM,aAAA;CACjF,MAAM,EAAE,kBAAkB,EAAE,GAAGC,YAAA;;AAE/B;AACA;AACA;AACA;;AAEA,CAAA,MAAM,QAAQ,GAAG;AACjB,CAAA,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,uBAAuB;AAClE,CAAA,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,uBAAuB;;CAElE,MAAM,UAAU,SAAS,QAAQ,CAAC;AAClC,GAAE,QAAQ,GAAG;AACb,GAAE,WAAW,GAAG;;GAEd,MAAM,GAAG,YAAY,CAAC;;AAExB,GAAE,KAAK,GAAG;AACV,GAAE,UAAU,GAAG;;AAEf,GAAE,WAAW,CAAC,CAAC,EAAE,EAAE;AACnB,KAAI,KAAK;;KAEL,IAAI,CAAC,EAAE,GAAG;AACd;;AAEA;AACA;AACA;AACA;GACE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC9B,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;AAC5B,KAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;;AAE9B,KAAI,IAAI,CAAC,GAAG,CAAC,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;KACb,OAAO,IAAI,EAAE;OACX,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE;AAC7C;AACA,SAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,WAAU,OAAO,QAAQ;AACzB;;AAEA,SAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;;AAErC,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM;SACxC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;;AAExC;AACA;SACQ,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC;;SAEzC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;;SAEzE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE;AACjH;AACA,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC;WACrE;AACV;;AAEA,SAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG;;AAE1C,SAAQ,IAAI,aAAa,IAAI,GAAG,EAAE;AAClC,WAAU,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG;AACrC,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC,UAAS,MAAM,IAAI,aAAa,KAAK,GAAG,EAAE;AAC1C,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC,UAAS,MAAM,IAAI,aAAa,KAAK,GAAG,EAAE;AAC1C,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC;;SAEQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,GAAG,GAAG,EAAE;AAC1D;AACA,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,sCAAsC;WACvE;AACV,UAAS,MAAM;WACL,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI;aACjC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI;aAClC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK;AAC/C,WAAU,aAAa,GAAG;WAChB;AACV;AACA,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,sDAAsD;WACvF;UACD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE;AACxD,WAAU,IAAI,aAAa,KAAK,CAAC,EAAE;AACnC,aAAY,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,0CAA0C;aAC3E;AACZ;;AAEA,WAAU,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;;AAEjD,WAAU,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI;;WAEtD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;AACpC;AACA;AACA;AACA;AACA,aAAY,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,aAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC3D,aAAY,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI;;aAE9C,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK;AAC3C,eAAc,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;eACrC,CAAC,GAAG,KAAK;iBACP,IAAI,CAAC,GAAG,EAAE;AAC1B,mBAAkB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;WACU,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;AACxC,WAAU,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG;;WAE1B,IAAI,CAAC,GAAG;;WAER;UACD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE;AACvD;AACA;AACA;AACA;;AAEA,WAAU,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;;WAEvC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE;AACxC,aAAY,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI;;AAErD,aAAY,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;;AAE3E,aAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9C,eAAc,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACpC,iBAAgB,OAAO,EAAE;gBACV;AACf;AACA;;AAEA,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;;AAErC,WAAU,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;aACxB;AACZ,YAAW,MAAM;AACjB,aAAY,QAAQ;aACR;AACZ;UACS,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE;AACvD;AACA;AACA;;AAEA,WAAU,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;;AAEjD,WAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE;AAC5C,aAAY,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,eAAc,OAAO,EAAE;cACV;AACb;;AAEA,WAAU,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;aACxB;AACZ,YAAW,MAAM;AACjB,aAAY,QAAQ;aACR;AACZ;AACA;QACO,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,gBAAgB,EAAE;AAChE,SAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,WAAU,OAAO,QAAQ;AACzB;;AAEA,SAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;;SAE7B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACxD,SAAQ,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC5B,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,gBAAgB,EAAE;AAChE,SAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAClC,WAAU,OAAO,QAAQ;AACzB;;AAEA,SAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;SACQ,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACjC,WAAU,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,uCAAuC;WACxE;AACV;;AAEA,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;SAEnC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI;AAClD,SAAQ,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC5B,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,EAAE;SACjD,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACzD;AACA,WAAU,OAAO,QAAQ;UAChB,MAAM,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACjE;;WAEU,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa;;AAE5D,WAAU,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI;;AAEnC;AACA;WACU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,EAAE;aAC5F,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU;;AAE7D,aAAY,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW;;aAExE,IAAI,CAAC,KAAK,GAAG;AACzB,aAAY,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;AACrC;;AAEA,WAAU,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AACrC;AACA;;AAEA,OAAM,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;SACxB;AACR,QAAO,MAAM;AACb,SAAQ,QAAQ;SACR;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,KAAI,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9B,OAAM,OAAO;AACb,MAAK,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACxB,OAAM,OAAO;AACb;;KAEI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;OACjC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3C,OAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK;AAChC;;AAEA,KAAI,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;KACnC,IAAI,MAAM,GAAG;;AAEjB,KAAI,OAAO,MAAM,KAAK,CAAC,EAAE;AACzB,OAAM,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,OAAM,MAAM,EAAE,MAAM,EAAE,GAAG;;AAEzB,OAAM,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE;SACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM;SACxC;AACR,QAAO,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;AACtC,SAAQ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM;AACvD,SAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM;SAC3C;AACR,QAAO,MAAM;SACL,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM;SACxC,MAAM,IAAI,IAAI,CAAC;AACvB;AACA;;KAEI,IAAI,CAAC,WAAW,IAAI;;AAExB,KAAI,OAAO;AACX;;AAEA,GAAE,cAAc,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE;AAClC;AACA;AACA,KAAI,IAAI;;AAER,KAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B;AACA;AACA;AACA,OAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC;;KAEI,IAAI,QAAQ,EAAE;AAClB,OAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AACpC,SAAQ,OAAO;AACf;;OAEM,OAAO,EAAE,IAAI;AACnB;;AAEA;AACA;AACA,KAAI,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEhC;KACI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACxE,OAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC;;KAEI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AACxD,OAAM,OAAO;AACb;;AAEA,KAAI,IAAI;AACR;AACA,OAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;AACtE,MAAK,CAAC,MAAM;AACZ,OAAM,OAAO;AACb;;AAEA,KAAI,OAAO,EAAE,IAAI,EAAE,MAAM;AACzB;;GAEE,IAAI,WAAW,CAAC,GAAG;AACrB,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB;AACA;;AAEA,CAAA,QAAc,GAAG;GACf;AACF;;;;;;;;;;;CCrVA,MAAM,EAAE,MAAM,EAAE,GAAGT,aAAA;CACnB,MAAM,EAAE,YAAY,EAAE,GAAGD,kBAAA;CACzB,MAAM,EAAE,aAAa,EAAE,GAAGE,cAAA;CAC1B,MAAM,EAAE,eAAe,EAAE,GAAGC,eAAA;CAC5B,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAGM,gBAAA;CACpE,MAAM;AACN,GAAE,aAAa;AACf,GAAE,WAAW;AACb,GAAE,WAAW;AACb,GAAE,WAAW;AACb,GAAE,SAAS;AACX,GAAE,UAAU;GACV;AACF,EAAC,GAAGC,cAAA;CACJ,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,EAAE,GAAGN,aAAA;CAC7F,MAAM,EAAE,4BAA4B,EAAE,GAAGO,iBAAA;CACzC,MAAM,EAAE,kBAAkB,EAAE,GAAGM,YAAA;CAC/B,MAAM,EAAE,UAAU,EAAE,GAAGL,eAAA;AACvB,CAAA,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAGC,aAAA;CAC5C,MAAM,EAAE,mBAAmB,EAAE,GAAGK,aAAA;CAChC,MAAM,EAAE,KAAK,EAAE,GAAGC;;AAElB,CAAA,IAAI,kBAAkB,GAAG;;AAEzB;CACA,MAAM,SAAS,SAAS,WAAW,CAAC;AACpC,GAAE,OAAO,GAAG;KACR,IAAI,EAAE,IAAI;KACV,KAAK,EAAE,IAAI;KACX,KAAK,EAAE,IAAI;AACf,KAAI,OAAO,EAAE;AACb;;AAEA,GAAE,eAAe,GAAG;AACpB,GAAE,SAAS,GAAG;AACd,GAAE,WAAW,GAAG;;AAEhB;AACA;AACA;AACA;GACE,WAAW,CAAC,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE;AACpC,KAAI,KAAK;;AAET,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE;;KAE5E,IAAI,CAAC,kBAAkB,EAAE;AAC7B,OAAM,kBAAkB,GAAG;AAC3B,OAAM,OAAO,CAAC,WAAW,CAAC,iEAAiE,EAAE;AAC7F,SAAQ,IAAI,EAAE;QACP;AACP;;KAEI,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,mDAAmD,CAAC,CAAC,SAAS;;KAEhG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG;KACrC,SAAS,GAAG,OAAO,CAAC;;AAExB;KACI,MAAM,OAAO,GAAG,eAAe;;AAEnC;AACA,KAAI,IAAI;;AAER,KAAI,IAAI;AACR,OAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO;MACjC,CAAC,OAAO,CAAC,EAAE;AAChB;AACA,OAAM,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,aAAa;AAC7C;;AAEA;AACA,KAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE;OAClC,SAAS,CAAC,QAAQ,GAAG;AAC3B,MAAK,MAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAChD;OACM,SAAS,CAAC,QAAQ,GAAG;AAC3B;;AAEA;AACA,KAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,EAAE;OACjE,MAAM,IAAI,YAAY;AAC5B,SAAQ,CAAC,qCAAqC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC5D;AACR;AACA;;AAEA;AACA;AACA,KAAI,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxD,OAAM,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,aAAa;AAC1D;;AAEA;AACA;AACA,KAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;OACjC,SAAS,GAAG,CAAC,SAAS;AAC5B;;AAEA;AACA;AACA;AACA;KACI,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AAChF,OAAM,MAAM,IAAI,YAAY,CAAC,sCAAsC,EAAE,aAAa;AAClF;;AAEA,KAAI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9E,OAAM,MAAM,IAAI,YAAY,CAAC,sCAAsC,EAAE,aAAa;AAClF;;AAEA;KACI,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI;;AAEhD;;AAEA;;AAEA;AACA;AACA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,4BAA4B;AACpD,OAAM,SAAS;AACf,OAAM,SAAS;AACf,OAAM,IAAI;OACJ,CAAC,QAAQ,KAAK,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;OACrD;AACN;;AAEA;AACA;AACA;AACA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;;AAElC;;AAEA;;AAEA;AACA;AACA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB;;AAEA;AACA;AACA;AACA;AACA;GACE,KAAK,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;AAC/C,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B,OAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACtE;;AAEA,KAAI,IAAI,MAAM,KAAK,SAAS,EAAE;OACxB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM;AACjD;;AAEA;AACA;AACA;AACA,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;AAC5B,OAAM,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;AACzD,SAAQ,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,oBAAoB;AACnE;AACA;;KAEI,IAAI,gBAAgB,GAAG;;AAE3B;AACA,KAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B;AACA;AACA;AACA,OAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM;;AAEjD,OAAM,IAAI,gBAAgB,GAAG,GAAG,EAAE;SAC1B,MAAM,IAAI,YAAY;AAC9B,WAAU,CAAC,6CAA6C,EAAE,gBAAgB,CAAC,CAAC;WAClE;AACV;AACA;AACA;;AAEA;AACA,KAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAGtF,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACrC;AACA;AACA;AACA,OAAM,uBAAuB,CAAC,IAAI,EAAE,kDAAkD;AACtF,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;AACpC,MAAK,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAM,MAAM,KAAK,GAAG,IAAI,kBAAkB;;AAE1C;AACA;;AAEA;AACA;OACM,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;SAC9C,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;SACtC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AAC7D;AACA;SACQ,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,gBAAgB;SACzD,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7C;SACQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO;AAChD,QAAO,MAAM;SACL,KAAK,CAAC,SAAS,GAAG;AAC1B;;AAEA;AACA,OAAM,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;;AAErC,OAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK;SACtD,IAAI,CAAC,GAAG,EAAE;AAClB,WAAU,IAAI,CAAC,UAAU,CAAC,GAAG;AAC7B;QACO;;AAEP;AACA;AACA;AACA,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;AACjC,MAAK,MAAM;AACX;AACA;AACA,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,CAAC,IAAI,EAAE;AACd,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE;;KAErE,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI;;AAEnD;AACA;KACI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,UAAU,EAAE;AACpD,OAAM,MAAM,IAAI,YAAY,CAAC,wBAAwB,EAAE,mBAAmB;AAC1E;;AAEA;AACA;AACA;;KAEI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;OAC3C;AACN;;AAEA;AACA,KAAI,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;;AAEnC;AACA,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAM,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI;AACpC,OAAM,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,KAAK;OAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI;;AAEnD,OAAM,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;AACpC,OAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;AACjC,SAAQ,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;QAC/B;MACF,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAM,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI;AACpC,OAAM,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,KAAK;OAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;;AAErD,OAAM,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;AACpC,OAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;AACjC,SAAQ,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;QAC/B;MACF,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAM,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU;;AAEnE,OAAM,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,EAAE;OACvC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;;AAErD,OAAM,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;AACjC,OAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;AACjC,SAAQ,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QAC5B;AACP,MAAK,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAM,MAAM,KAAK,GAAG,IAAI,kBAAkB;;OAEpC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK;AACtC,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;SAC5B,KAAK,CAAC,SAAS,GAAG;SAClB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM;;AAEvD,SAAQ,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;AACtC,SAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM;AACnC,WAAU,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;UAC/B;QACF;AACP;AACA;;GAEE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC;KACI,OAAO,IAAI,CAAC,WAAW;AAC3B;;GAEE,IAAI,cAAc,CAAC,GAAG;AACxB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;KAEjC,OAAO,IAAI,CAAC;AAChB;;GAEE,IAAI,GAAG,CAAC,GAAG;AACb,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC;AACA,KAAI,OAAO,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5C;;GAEE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;KAEjC,OAAO,IAAI,CAAC;AAChB;;GAEE,IAAI,QAAQ,CAAC,GAAG;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;KAEjC,OAAO,IAAI,CAAC;AAChB;;GAEE,IAAI,MAAM,CAAC,GAAG;AAChB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB;;AAEA,GAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE;AAClB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;OACrB,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACxD;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG;AAC1B,OAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE;AACtC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG;AAC1B;AACA;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB;;AAEA,GAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;OACtB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC1D;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;AAC3B,OAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;AACvC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;AAC3B;AACA;;GAEE,IAAI,OAAO,CAAC,GAAG;AACjB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB;;AAEA,GAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;OACtB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;AAC1D;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;AAC3B,OAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE;AACvC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;AAC3B;AACA;;GAEE,IAAI,SAAS,CAAC,GAAG;AACnB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB;;AAEA,GAAE,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE;AACrB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;AAErC,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;OACxB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;AAC9D;;AAEA,KAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;AAClC,OAAM,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AAC7B,OAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE;AACzC,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG;AAC7B;AACA;;GAEE,IAAI,UAAU,CAAC,GAAG;AACpB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;KAEjC,OAAO,IAAI,CAAC,WAAW;AAC3B;;AAEA,GAAE,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE;AACxB,KAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS;;KAEjC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE;AACnD,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG;AAC1B,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,WAAW,CAAC,GAAG;AAC1B;AACA;;AAEA;AACA;AACA;AACA,GAAE,wBAAwB,CAAC,CAAC,QAAQ,EAAE;AACtC;AACA;AACA,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG;;AAEtB,KAAI,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI;KAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,aAAa,IAAI;OAC3C,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM;MACjC;;AAEL,KAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG;AACzB,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG;;AAExB;AACA,KAAI,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;;AAE/B;AACA;AACA;KACI,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,0BAA0B;;AAE1E,KAAI,IAAI,UAAU,KAAK,IAAI,EAAE;OACvB,IAAI,CAAC,WAAW,GAAG;AACzB;;AAEA;AACA;AACA;KACI,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB;;AAEtE,KAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;OACrB,IAAI,CAAC,SAAS,GAAG;AACvB;;AAEA;AACA,KAAI,SAAS,CAAC,MAAM,EAAE,IAAI;AAC1B;AACA;;AAEA;CACA,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC;AAC/D;CACA,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AACnD;CACA,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;AACzD;CACA,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;;AAEvD,CAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,EAAE;GAC3C,UAAU,EAAE,yBAAyB;GACrC,IAAI,EAAE,yBAAyB;GAC/B,OAAO,EAAE,yBAAyB;GAClC,MAAM,EAAE,yBAAyB;GACjC,GAAG,EAAE,mBAAmB;GACxB,UAAU,EAAE,mBAAmB;GAC/B,cAAc,EAAE,mBAAmB;GACnC,MAAM,EAAE,mBAAmB;GAC3B,OAAO,EAAE,mBAAmB;GAC5B,OAAO,EAAE,mBAAmB;GAC5B,KAAK,EAAE,mBAAmB;GAC1B,SAAS,EAAE,mBAAmB;GAC9B,UAAU,EAAE,mBAAmB;GAC/B,IAAI,EAAE,mBAAmB;GACzB,UAAU,EAAE,mBAAmB;GAC/B,QAAQ,EAAE,mBAAmB;AAC/B,GAAE,CAAC,MAAM,CAAC,WAAW,GAAG;KACpB,KAAK,EAAE,WAAW;KAClB,QAAQ,EAAE,KAAK;KACf,UAAU,EAAE,KAAK;AACrB,KAAI,YAAY,EAAE;AAClB;EACC;;AAED,CAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;GACjC,UAAU,EAAE,yBAAyB;GACrC,IAAI,EAAE,yBAAyB;GAC/B,OAAO,EAAE,yBAAyB;AACpC,GAAE,MAAM,EAAE;EACT;;CAED,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,iBAAiB;GACjE,MAAM,CAAC,UAAU,CAAC;AACpB;;CAEA,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,GAAG,UAAU,CAAC,EAAE;AACrE,GAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE;KAC5D,OAAO,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC;AACrD;;AAEA,GAAE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACtC;;AAEA;CACA,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;GAC3D;KACE,GAAG,EAAE,WAAW;AACpB,KAAI,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC;KAChE,IAAI,YAAY,CAAC,GAAG;AACxB,OAAM,OAAO;AACb;IACG;GACD;KACE,GAAG,EAAE,YAAY;AACrB,KAAI,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC;KACnB,IAAI,YAAY,CAAC,GAAG;AACxB,OAAM,OAAO,mBAAmB;AAChC;IACG;GACD;KACE,GAAG,EAAE,SAAS;KACd,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW;AACrE;EACC;;CAED,MAAM,CAAC,UAAU,CAAC,mDAAmD,CAAC,GAAG,UAAU,CAAC,EAAE;AACtF,GAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE;AACnE,KAAI,OAAO,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC5C;;AAEA,GAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC;AAC9E;;AAEA,CAAA,MAAM,CAAC,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,EAAE;GACjD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACxC,KAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACvB,OAAM,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACxD;;AAEA,KAAI,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC5D,OAAM,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC7C;AACA;;AAEA,GAAE,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACtC;;AAEA,CAAA,SAAc,GAAG;GACf;AACF;;;;;;;;;;AC9nBA,CAAA,MAAM,MAAM,GAAGlB,aAAA;AACf,CAAA,MAAM,UAAU,GAAGD,iBAAA;AACnB,CAAA,MAAM,MAAM,GAAGE,eAAA;AACf,CAAA,MAAM,IAAI,GAAGC,WAAA;AACb,CAAA,MAAM,YAAY,GAAGM,mBAAA;AACrB,CAAA,MAAM,KAAK,GAAGC,YAAA;AACd,CAAA,MAAM,IAAI,GAAGN,aAAA;CACb,MAAM,EAAE,oBAAoB,EAAE,GAAG;AACjC,CAAA,MAAM,GAAG,GAAGO,UAAA;AACZ,CAAA,MAAM,cAAc,GAAGM,cAAA;AACvB,CAAA,MAAM,UAAU,GAAGL,iBAAA;AACnB,CAAA,MAAM,SAAS,GAAGC,gBAAA;AAClB,CAAA,MAAM,QAAQ,GAAGK,eAAA;AACjB,CAAA,MAAM,UAAU,GAAGC,iBAAA;AACnB,CAAA,MAAM,UAAU,GAAGE,iBAAA;AACnB,CAAA,MAAM,YAAY,GAAGC,mBAAA;AACrB,CAAA,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAGC,aAAA;AACrD,CAAA,MAAM,gBAAgB,GAAGC,uBAAA;AACzB,CAAA,MAAM,eAAe,GAAGE,sBAAA;AACxB,CAAA,MAAM,yBAAyB,GAAGC,0BAAA;;CAElC,IAAI;CACJ,IAAI;AACJ,GAAE,QAAQ,QAAQ;AAClB,GAAE,SAAS,GAAG;AACd,EAAC,CAAC,MAAM;AACR,GAAE,SAAS,GAAG;AACd;;AAEA,CAAA,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG;;AAEvC,CAAA,MAAA,CAAA,UAAyB,GAAG;AAC5B,CAAA,MAAA,CAAA,MAAqB,GAAG;AACxB,CAAA,MAAA,CAAA,IAAmB,GAAG;AACtB,CAAA,MAAA,CAAA,YAA2B,GAAG;AAC9B,CAAA,MAAA,CAAA,KAAoB,GAAG;AACvB,CAAA,MAAA,CAAA,UAAyB,GAAG;AAC5B,CAAA,MAAA,CAAA,YAA2B,GAAG;;AAE9B,CAAA,MAAA,CAAA,gBAA+B,GAAG;AAClC,CAAA,MAAA,CAAA,eAA8B,GAAG;AACjC,CAAA,MAAA,CAAA,yBAAwC,GAAG;;AAE3C,CAAA,MAAA,CAAA,cAA6B,GAAG;AAChC,CAAA,MAAA,CAAA,MAAqB,GAAG;;CAExB,SAAS,cAAc,EAAE,EAAE,EAAE;AAC7B,GAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,KAAK;AACjC,KAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AACpC,OAAM,OAAO,GAAG;AAChB,OAAM,IAAI,GAAG;AACb;;KAEI,IAAI,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC,EAAE;AAC/F,OAAM,MAAM,IAAI,oBAAoB,CAAC,aAAa;AAClD;;KAEI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClD,OAAM,MAAM,IAAI,oBAAoB,CAAC,cAAc;AACnD;;KAEI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;AACnC,OAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzC,SAAQ,MAAM,IAAI,oBAAoB,CAAC,mBAAmB;AAC1D;;AAEA,OAAM,IAAI,IAAI,GAAG,IAAI,CAAC;OAChB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACtC,SAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AACxB;;AAEA,OAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI;AACvD,MAAK,MAAM;OACL,IAAI,CAAC,IAAI,EAAE;SACT,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG;AAC/C;;AAEA,OAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG;AAC7B;;KAEI,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,mBAAmB,EAAE,EAAE,GAAG;;KAEtD,IAAI,KAAK,EAAE;AACf,OAAM,MAAM,IAAI,oBAAoB,CAAC,mDAAmD;AACxF;;AAEA,KAAI,OAAO,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;AAC/B,OAAM,GAAG,IAAI;AACb,OAAM,MAAM,EAAE,GAAG,CAAC,MAAM;OAClB,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ;AACtE,OAAM,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK;AACvD,MAAK,EAAE,OAAO;AACd;AACA;;AAEA,CAAA,MAAA,CAAA,mBAAkC,GAAG;AACrC,CAAA,MAAA,CAAA,mBAAkC,GAAG;;AAErC,CAAA,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,IAAI,CAAC,SAAS,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;GACzE,IAAI,SAAS,GAAG;AAClB,GAAE,YAAoB,GAAG,eAAe,KAAK,EAAE,QAAQ,EAAE;KACrD,IAAI,CAAC,SAAS,EAAE;OACd,SAAS,GAAGE,YAAA,EAAsB,CAAC;AACzC;;AAEA,KAAI,IAAI;AACR,OAAM,OAAO,MAAM,SAAS,CAAC,GAAG,SAAS;MACpC,CAAC,OAAO,GAAG,EAAE;AAClB,OAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,SAAQ,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI;AACzC;;AAEA,OAAM,MAAM;AACZ;AACA;GACE,MAAA,CAAA,OAAsB,GAAGC,cAAA,EAA8B,CAAC;GACxD,MAAA,CAAA,QAAuB,GAAGC,eAAA,EAA+B,CAAC;GAC1D,MAAA,CAAA,OAAsB,GAAGC,cAAA,EAA8B,CAAC;GACxD,MAAA,CAAA,QAAuB,GAAGC,eAAA,EAA+B,CAAC;GAC1D,MAAA,CAAA,IAAmB,GAAGC,WAAA,EAA2B,CAAC;GAClD,MAAA,CAAA,UAAyB,GAAGC,iBAAA,EAAmC,CAAC;;AAElE,GAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAGC,eAAA;;AAE/C,GAAE,sBAA8B,GAAG;AACnC,GAAE,sBAA8B,GAAG;;AAEnC,GAAE,MAAM,EAAE,YAAY,EAAE,GAAGC,mBAAA;AAC3B,GAAE,MAAM,EAAE,UAAU,EAAE,GAAGC,gBAAA;;AAEzB;AACA;AACA,GAAE,MAAqB,CAAA,MAAA,GAAG,IAAI,YAAY,CAAC,UAAU;AACrD;;AAEA,CAAA,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE;GACxB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,GAAGC,cAAA;;AAEjE,GAAE,mBAA2B,GAAG;AAChC,GAAE,iBAAyB,GAAG;AAC9B,GAAE,oBAA4B,GAAG;AACjC,GAAE,gBAAwB,GAAG;;AAE7B,GAAE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,GAAGC,cAAA;;AAEhD,GAAE,oBAA4B,GAAG;AACjC,GAAE,yBAAiC,GAAG;AACtC;;AAEA,CAAA,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,IAAI,SAAS,EAAE;AACvC,GAAE,MAAM,EAAE,SAAS,EAAE,GAAGC,gBAAA;;AAExB,GAAE,gBAAwB,GAAG;AAC7B;;AAEA,CAAA,MAAA,CAAA,OAAsB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO;AACnD,CAAA,MAAA,CAAA,MAAqB,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM;AACjD,CAAA,MAAA,CAAA,QAAuB,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ;AACrD,CAAA,MAAA,CAAA,OAAsB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO;AACnD,CAAA,MAAA,CAAA,OAAsB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO;;AAEnD,CAAA,MAAA,CAAA,UAAyB,GAAG;AAC5B,CAAA,MAAA,CAAA,QAAuB,GAAG;AAC1B,CAAA,MAAA,CAAA,SAAwB,GAAG;AAC3B,CAAA,MAAA,CAAA,UAAyB,GAAG;;;;;;;;;ACrK5B;CACA,IAAI,eAAe,GAAG,CAAC1C,GAAI,IAAIA,GAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;KAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,OAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE;KACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;EACrC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,GAAI,IAAIA,GAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,GAAI,IAAIA,GAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,IAAI,SAAS,GAAG,CAACA,GAAI,IAAIA,GAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAK,CAAC;EACL;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,GAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,GAAA,CAAA,UAAkB,GAAG,GAAe,CAAA,OAAA,GAAG,GAA0B,CAAA,kBAAA,GAAG,mBAAuB,GAAG,GAAA,CAAA,WAAmB,GAAG,GAAA,CAAA,UAAkB,GAAG,GAAe,CAAA,OAAA,GAAG,GAAiB,CAAA,SAAA,GAAG,MAAM;AACrL,CAAA,MAAM,IAAI,GAAG,YAAY,CAACE,UAAe,CAAC;AAC1C,CAAA,MAAM,KAAK,GAAG,YAAY,CAACD,YAAgB,CAAC;AAC5C,CAAA,MAAM,EAAE,GAAG,YAAY,CAACE,cAAkB,CAAC;AAC3C,CAAA,MAAM,MAAM,GAAG,YAAY,CAACC,eAAiB,CAAC;CAC9C,MAAM,QAAQ,GAAGM,aAAiB,EAAA;AAClC,CAAA,IAAI,SAAS;CACb,CAAC,UAAU,SAAS,EAAE;KAClB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI;KACvC,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,GAAG,iBAAiB;KACjE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB;KACnE,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,GAAG,eAAe;KAC7D,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;KACnD,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa;KACzD,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;KACnD,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,GAAG,aAAa;KACzD,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC,GAAG,mBAAmB;KACrE,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,GAAG,CAAC,GAAG,mBAAmB;KACrE,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,YAAY;KACvD,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,GAAG,cAAc;KAC3D,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,GAAG,iBAAiB;KACjE,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,WAAW;KACrD,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;KACnD,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,GAAG,kBAAkB;KACnE,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,GAAG,eAAe;KAC7D,SAAS,CAAC,SAAS,CAAC,6BAA6B,CAAC,GAAG,GAAG,CAAC,GAAG,6BAA6B;KACzF,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,GAAG,gBAAgB;KAC/D,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU;KACnD,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM;KAC3C,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,GAAG,iBAAiB;KACjE,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,GAAG,GAAG,CAAC,GAAG,qBAAqB;KACzE,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,GAAG,gBAAgB;KAC/D,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,YAAY;KACvD,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,GAAG,GAAG,CAAC,GAAG,oBAAoB;KACvE,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,GAAG,gBAAgB;EAClE,EAAE,SAAS,KAAK,GAAA,CAAA,SAAiB,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;AACrD,CAAA,IAAI,OAAO;CACX,CAAC,UAAU,OAAO,EAAE;AACpB,KAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAChC,KAAI,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc;EAC1C,EAAE,OAAO,KAAK,GAAA,CAAA,OAAe,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAA,IAAI,UAAU;CACd,CAAC,UAAU,UAAU,EAAE;AACvB,KAAI,UAAU,CAAC,iBAAiB,CAAC,GAAG,kBAAkB;EACrD,EAAE,UAAU,KAAK,GAAA,CAAA,UAAkB,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;AACxD;AACA;AACA;AACA;CACA,SAAS,WAAW,CAAC,SAAS,EAAE;AAChC,KAAI,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;AACvD,KAAI,OAAO,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAE;AACxC;AACA,CAAA,GAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,MAAM,iBAAiB,GAAG;KACtB,SAAS,CAAC,gBAAgB;KAC1B,SAAS,CAAC,aAAa;KACvB,SAAS,CAAC,QAAQ;KAClB,SAAS,CAAC,iBAAiB;AAC/B,KAAI,SAAS,CAAC;EACb;AACD,CAAA,MAAM,sBAAsB,GAAG;KAC3B,SAAS,CAAC,UAAU;KACpB,SAAS,CAAC,kBAAkB;AAChC,KAAI,SAAS,CAAC;EACb;CACD,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;CAC/D,MAAM,yBAAyB,GAAG,EAAE;CACpC,MAAM,2BAA2B,GAAG,CAAC;CACrC,MAAM,eAAe,SAAS,KAAK,CAAC;AACpC,KAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;SAC7B,KAAK,CAAC,OAAO,CAAC;AACtB,SAAQ,IAAI,CAAC,IAAI,GAAG,iBAAiB;AACrC,SAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;SAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC;AAC9D;AACA;AACA,CAAA,GAAA,CAAA,eAAuB,GAAG,eAAe;AACzC,CAAA,MAAM,kBAAkB,CAAC;KACrB,WAAW,CAAC,OAAO,EAAE;AACzB,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B;AACA,KAAI,QAAQ,GAAG;SACP,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;iBACzE,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;qBAC/B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC3D,kBAAiB,CAAC;iBACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7C,qBAAoB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC9C,kBAAiB,CAAC;AAClB,cAAa,CAAC,CAAC;AACf,UAAS,CAAC;AACV;AACA,KAAI,cAAc,GAAG;SACb,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;iBACzE,MAAM,MAAM,GAAG,EAAE;iBACjB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;AACnD,qBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,kBAAiB,CAAC;iBACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;qBACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClD,kBAAiB,CAAC;AAClB,cAAa,CAAC,CAAC;AACf,UAAS,CAAC;AACV;AACA;AACA,CAAA,GAAA,CAAA,kBAA0B,GAAG,kBAAkB;CAC/C,SAAS,OAAO,CAAC,UAAU,EAAE;AAC7B,KAAI,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACzC,KAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;AAC1C;AACA,CAAA,GAAA,CAAA,OAAe,GAAG,OAAO;AACzB,CAAA,MAAM,UAAU,CAAC;AACjB,KAAI,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE;AACrD,SAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;AACpC,SAAQ,IAAI,CAAC,eAAe,GAAG,IAAI;AACnC,SAAQ,IAAI,CAAC,uBAAuB,GAAG,KAAK;AAC5C,SAAQ,IAAI,CAAC,aAAa,GAAG,EAAE;AAC/B,SAAQ,IAAI,CAAC,aAAa,GAAG,KAAK;AAClC,SAAQ,IAAI,CAAC,WAAW,GAAG,CAAC;AAC5B,SAAQ,IAAI,CAAC,UAAU,GAAG,KAAK;AAC/B,SAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B,SAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE;AACtC,SAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;SACpC,IAAI,cAAc,EAAE;AAC5B,aAAY,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;AACvD,iBAAgB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,cAAc;AACpE;AACA,aAAY,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,aAAa;AAC9D,aAAY,IAAI,cAAc,CAAC,cAAc,IAAI,IAAI,EAAE;AACvD,iBAAgB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC,cAAc;AACpE;AACA,aAAY,IAAI,cAAc,CAAC,sBAAsB,IAAI,IAAI,EAAE;AAC/D,iBAAgB,IAAI,CAAC,uBAAuB,GAAG,cAAc,CAAC,sBAAsB;AACpF;AACA,aAAY,IAAI,cAAc,CAAC,YAAY,IAAI,IAAI,EAAE;AACrD,iBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;AAC7E;AACA,aAAY,IAAI,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE;AAClD,iBAAgB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS;AAC1D;AACA,aAAY,IAAI,cAAc,CAAC,YAAY,IAAI,IAAI,EAAE;AACrD,iBAAgB,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC,YAAY;AAChE;AACA,aAAY,IAAI,cAAc,CAAC,UAAU,IAAI,IAAI,EAAE;AACnD,iBAAgB,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,UAAU;AAC5D;AACA;AACA;AACA,KAAI,OAAO,CAAC,UAAU,EAAE,iBAAiB,EAAE;SACnC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACrF,UAAS,CAAC;AACV;AACA,KAAI,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE;SAC/B,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACjF,UAAS,CAAC;AACV;AACA,KAAI,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE;SAC/B,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACpF,UAAS,CAAC;AACV;AACA,KAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACtC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AAClF,UAAS,CAAC;AACV;AACA,KAAI,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACvC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACnF,UAAS,CAAC;AACV;AACA,KAAI,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE;SACrC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACjF,UAAS,CAAC;AACV;AACA,KAAI,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE;SAChC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;AAClF,UAAS,CAAC;AACV;KACI,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE;SACpD,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC;AAC5E,UAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,KAAI,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,EAAE,EAAE;SACxC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;aAChD,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC;aACnI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC;aACzD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC;AAClE,UAAS,CAAC;AACV;KACI,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,iBAAiB,GAAG,EAAE,EAAE;SAC9C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACzC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC;aACnI,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC;AACzJ,aAAY,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC;aAChE,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC;AAClE,UAAS,CAAC;AACV;KACI,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,iBAAiB,GAAG,EAAE,EAAE;SAC7C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACzC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC;aACnI,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC;AACzJ,aAAY,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC;aAC/D,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC;AAClE,UAAS,CAAC;AACV;KACI,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,iBAAiB,GAAG,EAAE,EAAE;SAC/C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACzC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC;aACnI,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC;AACzJ,aAAY,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC;aACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC;AAClE,UAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;KACI,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;SACrC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,iBAAgB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AACpE;AACA,aAAY,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACjD,aAAY,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;AACrE;aACY,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI;mBACjE,IAAI,CAAC,WAAW,GAAG;AACrC,mBAAkB,CAAC;aACP,IAAI,QAAQ,GAAG,CAAC;AAC5B,aAAY,IAAI,QAAQ;AACxB,aAAY,GAAG;iBACC,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5D;AACA,iBAAgB,IAAI,QAAQ;qBACR,QAAQ,CAAC,OAAO;qBAChB,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,YAAY,EAAE;AAC5E,qBAAoB,IAAI,qBAAqB;AAC7C,qBAAoB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzD,yBAAwB,IAAI,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE;6BAC3C,qBAAqB,GAAG,OAAO;6BAC/B;AAC5B;AACA;qBACoB,IAAI,qBAAqB,EAAE;yBACvB,OAAO,qBAAqB,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3F;0BACyB;AACzB;AACA;AACA,yBAAwB,OAAO,QAAQ;AACvC;AACA;AACA,iBAAgB,IAAI,kBAAkB,GAAG,IAAI,CAAC,aAAa;AAC3D,iBAAgB,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU;qBAC9B,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;qBACvD,IAAI,CAAC,eAAe;qBACpB,kBAAkB,GAAG,CAAC,EAAE;qBACxB,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;qBACxD,IAAI,CAAC,WAAW,EAAE;AACtC;yBACwB;AACxB;AACA,qBAAoB,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC;AAClE,qBAAoB,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ;AACvD,yBAAwB,SAAS,CAAC,QAAQ,KAAK,iBAAiB,CAAC,QAAQ;AACzE,yBAAwB,CAAC,IAAI,CAAC,uBAAuB,EAAE;AACvD,yBAAwB,MAAM,IAAI,KAAK,CAAC,8KAA8K,CAAC;AACvN;AACA;AACA;AACA,qBAAoB,MAAM,QAAQ,CAAC,QAAQ,EAAE;AAC7C;qBACoB,IAAI,iBAAiB,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;AAC3E,yBAAwB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtD;AACA,6BAA4B,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE;AAC1E,iCAAgC,OAAO,OAAO,CAAC,MAAM,CAAC;AACtD;AACA;AACA;AACA;qBACoB,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC;qBAC7D,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;AAChE,qBAAoB,kBAAkB,EAAE;AACxC;AACA,iBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;qBAC5B,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACnF;AACA,qBAAoB,OAAO,QAAQ;AACnC;iBACgB,QAAQ,IAAI,CAAC;AAC7B,iBAAgB,IAAI,QAAQ,GAAG,QAAQ,EAAE;AACzC,qBAAoB,MAAM,QAAQ,CAAC,QAAQ,EAAE;AAC7C,qBAAoB,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC;AACnE;cACa,QAAQ,QAAQ,GAAG,QAAQ;AACxC,aAAY,OAAO,QAAQ;AAC3B,UAAS,CAAC;AACV;AACA;AACA;AACA;AACA,KAAI,OAAO,GAAG;AACd,SAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,aAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACjC;AACA,SAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE;SACnB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;aAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACpD,iBAAgB,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;qBACjC,IAAI,GAAG,EAAE;yBACL,MAAM,CAAC,GAAG,CAAC;AACnC;0BACyB,IAAI,CAAC,GAAG,EAAE;AACnC;AACA,yBAAwB,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AAC1D;0BACyB;yBACD,OAAO,CAAC,GAAG,CAAC;AACpC;AACA;iBACgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1E,cAAa,CAAC;AACd,UAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjD,SAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtC,aAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACvC,iBAAgB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE;AACzC;AACA,aAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;AACpF;SACQ,IAAI,cAAc,GAAG,KAAK;AAClC,SAAQ,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;aAC5B,IAAI,CAAC,cAAc,EAAE;iBACjB,cAAc,GAAG,IAAI;AACrC,iBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAClC;AACA;AACA,SAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AACnE,aAAY,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC;AACnD,aAAY,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC;AACxC,UAAS,CAAC;AACV,SAAQ,IAAI,MAAM;AAClB,SAAQ,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI;aACrB,MAAM,GAAG,IAAI;AACzB,UAAS,CAAC;AACV;AACA,SAAQ,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM;aACnD,IAAI,MAAM,EAAE;iBACR,MAAM,CAAC,GAAG,EAAE;AAC5B;AACA,aAAY,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5E,UAAS,CAAC;SACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE;AACvC;AACA;aACY,YAAY,CAAC,GAAG,CAAC;AAC7B,UAAS,CAAC;AACV,SAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC9C,aAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACnC;AACA,SAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC9C,aAAY,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY;iBACzB,GAAG,CAAC,GAAG,EAAE;AACzB,cAAa,CAAC;AACd,aAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B;cACa;aACD,GAAG,CAAC,GAAG,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;KACI,QAAQ,CAAC,SAAS,EAAE;AACxB,SAAQ,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AAC5C,SAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AACxC;KACI,kBAAkB,CAAC,SAAS,EAAE;AAClC,SAAQ,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;SACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AAClD,SAAQ,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ;SAC9C,IAAI,CAAC,QAAQ,EAAE;aACX;AACZ;SACQ,OAAO,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC;AACjE;AACA,KAAI,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;SACzC,MAAM,IAAI,GAAG,EAAE;AACvB,SAAQ,IAAI,CAAC,SAAS,GAAG,UAAU;SAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ;SACrD,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI;AACjD,SAAQ,MAAM,WAAW,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;AAC/C,SAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;SACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;SAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3C,eAAc,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;AAC1C,eAAc,WAAW;AACzB,SAAQ,IAAI,CAAC,OAAO,CAAC,IAAI;AACzB,aAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;AAC3E,SAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM;SAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC1D,SAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;aACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS;AAC/D;AACA,SAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3D;AACA,SAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,aAAY,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjD,iBAAgB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACpD;AACA;AACA,SAAQ,OAAO,IAAI;AACnB;KACI,aAAa,CAAC,OAAO,EAAE;SACnB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;aACpD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAC9G;AACA,SAAQ,OAAO,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC;AAC3C;AACA,KAAI,2BAA2B,CAAC,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE;AACrE,SAAQ,IAAI,YAAY;SAChB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAChE,aAAY,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC7E;SACQ,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,YAAY,IAAI,QAAQ;AACpE;KACI,SAAS,CAAC,SAAS,EAAE;AACzB,SAAQ,IAAI,KAAK;SACT,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;AAClD,SAAQ,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ;AACtD,SAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE;AACzC,aAAY,KAAK,GAAG,IAAI,CAAC,WAAW;AACpC;SACQ,IAAI,CAAC,QAAQ,EAAE;AACvB,aAAY,KAAK,GAAG,IAAI,CAAC,MAAM;AAC/B;AACA;SACQ,IAAI,KAAK,EAAE;AACnB,aAAY,OAAO,KAAK;AACxB;AACA,SAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ;SAChD,IAAI,UAAU,GAAG,GAAG;AAC5B,SAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,aAAY,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU;AACtF;AACA;AACA,SAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;aAC/B,MAAM,YAAY,GAAG;AACjC,iBAAgB,UAAU;AAC1B,iBAAgB,SAAS,EAAE,IAAI,CAAC,UAAU;iBAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK;AACpG,qBAAoB,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;AACzE,kBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;cACxD;AACb,aAAY,IAAI,WAAW;AAC3B,aAAY,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,KAAK,QAAQ;aAChD,IAAI,QAAQ,EAAE;iBACV,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa;AACtF;kBACiB;iBACD,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY;AACpF;AACA,aAAY,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC;AAC7C,aAAY,IAAI,CAAC,WAAW,GAAG,KAAK;AACpC;AACA;SACQ,IAAI,CAAC,KAAK,EAAE;aACR,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE;AACtE,aAAY,KAAK,GAAG,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjF,aAAY,IAAI,CAAC,MAAM,GAAG,KAAK;AAC/B;AACA,SAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C;AACA;AACA;AACA,aAAY,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE;AAC/D,iBAAgB,kBAAkB,EAAE;AACpC,cAAa,CAAC;AACd;AACA,SAAQ,OAAO,KAAK;AACpB;AACA,KAAI,wBAAwB,CAAC,SAAS,EAAE,QAAQ,EAAE;AAClD,SAAQ,IAAI,UAAU;AACtB,SAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,aAAY,UAAU,GAAG,IAAI,CAAC,qBAAqB;AACnD;AACA;SACQ,IAAI,UAAU,EAAE;AACxB,aAAY,OAAO,UAAU;AAC7B;AACA,SAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ;AACxD,SAAQ,UAAU,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK;AACtK,aAAY,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxG,UAAS,EAAE,CAAC;AACZ,SAAQ,IAAI,CAAC,qBAAqB,GAAG,UAAU;AAC/C,SAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAC9C;AACA;AACA;AACA,aAAY,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE;AACpF,iBAAgB,kBAAkB,EAAE;AACpC,cAAa,CAAC;AACd;AACA,SAAQ,OAAO,UAAU;AACzB;KACI,0BAA0B,CAAC,WAAW,EAAE;SACpC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;aAChD,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC;AAC1E,aAAY,MAAM,EAAE,GAAG,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC;AAC7E,aAAY,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1E,UAAS,CAAC;AACV;AACA,KAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE;SAC3B,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;iBACjF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;iBAC9C,MAAM,QAAQ,GAAG;AACjC,qBAAoB,UAAU;qBACV,MAAM,EAAE,IAAI;AAChC,qBAAoB,OAAO,EAAE;kBACZ;AACjB;AACA,iBAAgB,IAAI,UAAU,KAAK,SAAS,CAAC,QAAQ,EAAE;qBACnC,OAAO,CAAC,QAAQ,CAAC;AACrC;AACA;AACA,iBAAgB,SAAS,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE;AAC1D,qBAAoB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnD,yBAAwB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;yBACzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;AACjD,6BAA4B,OAAO,CAAC;AACpC;AACA;AACA,qBAAoB,OAAO,KAAK;AAChC;AACA,iBAAgB,IAAI,GAAG;AACvB,iBAAgB,IAAI,QAAQ;AAC5B,iBAAgB,IAAI;AACpB,qBAAoB,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE;qBAC/B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,yBAAwB,IAAI,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE;6BACrC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC;AAC5E;8BAC6B;AAC7B,6BAA4B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtD;AACA,yBAAwB,QAAQ,CAAC,MAAM,GAAG,GAAG;AAC7C;qBACoB,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO;AAC1D;iBACgB,OAAO,GAAG,EAAE;AAC5B;AACA;AACA;AACA,iBAAgB,IAAI,UAAU,GAAG,GAAG,EAAE;AACtC,qBAAoB,IAAI,GAAG;AAC3B;AACA,qBAAoB,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;AAC5C,yBAAwB,GAAG,GAAG,GAAG,CAAC,OAAO;AACzC;0BACyB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9D;yBACwB,GAAG,GAAG,QAAQ;AACtC;0BACyB;yBACD,GAAG,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/D;qBACoB,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;AACpE,qBAAoB,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;qBAC5B,MAAM,CAAC,GAAG,CAAC;AAC/B;sBACqB;qBACD,OAAO,CAAC,QAAQ,CAAC;AACrC;AACA,cAAa,CAAC,CAAC;AACf,UAAS,CAAC;AACV;AACA;AACA,CAAA,GAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B,CAAA,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;AACxG;;;;;;;;;;;AC1oBA,CAAA,IAAI,SAAS,GAAG,CAACV,MAAI,IAAIA,MAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAK,CAAC;EACL;AACD,CAAA,MAAM,CAAC,cAAc,CAAC2C,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,MAAA,CAAA,oCAA4C,GAAGA,MAA+B,CAAA,uBAAA,GAAGA,MAA8B,CAAA,sBAAA,GAAG,MAAM;AACxH,CAAA,MAAM,sBAAsB,CAAC;AAC7B,KAAI,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACpC,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;KACI,cAAc,CAAC,OAAO,EAAE;AAC5B,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9B,aAAY,MAAM,KAAK,CAAC,4BAA4B,CAAC;AACrD;AACA,SAAQ,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzH;AACA;AACA,KAAI,uBAAuB,GAAG;AAC9B,SAAQ,OAAO,KAAK;AACpB;AACA,KAAI,oBAAoB,GAAG;SACnB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC;AAC9C,UAAS,CAAC;AACV;AACA;AACA,CAAAA,MAAA,CAAA,sBAA8B,GAAG,sBAAsB;AACvD,CAAA,MAAM,uBAAuB,CAAC;KAC1B,WAAW,CAAC,KAAK,EAAE;AACvB,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA;AACA;KACI,cAAc,CAAC,OAAO,EAAE;AAC5B,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9B,aAAY,MAAM,KAAK,CAAC,4BAA4B,CAAC;AACrD;AACA,SAAQ,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AACjE;AACA;AACA,KAAI,uBAAuB,GAAG;AAC9B,SAAQ,OAAO,KAAK;AACpB;AACA,KAAI,oBAAoB,GAAG;SACnB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC;AAC9C,UAAS,CAAC;AACV;AACA;AACA,CAAAA,MAAA,CAAA,uBAA+B,GAAG,uBAAuB;AACzD,CAAA,MAAM,oCAAoC,CAAC;KACvC,WAAW,CAAC,KAAK,EAAE;AACvB,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA;AACA;KACI,cAAc,CAAC,OAAO,EAAE;AAC5B,SAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC9B,aAAY,MAAM,KAAK,CAAC,4BAA4B,CAAC;AACrD;AACA,SAAQ,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzG;AACA;AACA,KAAI,uBAAuB,GAAG;AAC9B,SAAQ,OAAO,KAAK;AACpB;AACA,KAAI,oBAAoB,GAAG;SACnB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC;AAC9C,UAAS,CAAC;AACV;AACA;AACA,CAAAA,MAAA,CAAA,oCAA4C,GAAG,oCAAoC;AACnF;;;;;;;;;AC/EA,CAAA,IAAI,SAAS,GAAG,CAAC3C,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAK,CAAC;EACL;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAkB,SAAA,CAAA,UAAA,GAAG,MAAM;CAC3B,MAAM,aAAa,GAAGE,UAA+B,EAAA;CACrD,MAAM,MAAM,GAAGD,WAAwC,EAAA;CACvD,MAAM,MAAM,GAAGE,aAAiB,EAAA;AAChC,CAAA,MAAM,UAAU,CAAC;KACb,OAAO,gBAAgB,CAAC,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE;SACtD,MAAM,cAAc,GAAG;aACnB,YAAY,EAAE,UAAU;AACpC,aAAY,UAAU,EAAE;UACf;SACD,OAAO,IAAI,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC;AACtJ;KACI,OAAO,eAAe,GAAG;SACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;SAC3D,IAAI,CAAC,KAAK,EAAE;AACpB,aAAY,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;AACxF;AACA,SAAQ,OAAO,KAAK;AACpB;KACI,OAAO,aAAa,GAAG;SACnB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;SAC9D,IAAI,CAAC,UAAU,EAAE;AACzB,aAAY,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC;AACtF;AACA,SAAQ,OAAO,UAAU;AACzB;AACA,KAAI,OAAO,OAAO,CAAC,YAAY,EAAE;AACjC,SAAQ,IAAI,EAAE;SACN,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,EAAE;aAChD,MAAM,GAAG,GAAG,MAAM;kBACb,OAAO,CAAC,YAAY;kBACpB,KAAK,CAAC,KAAK,IAAI;AAChC,iBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC;AACjC,qBAAqB,EAAE,KAAK,CAAC,UAAU,CAAC;AACxC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,cAAa,CAAC;aACF,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK;aAChF,IAAI,CAAC,QAAQ,EAAE;AAC3B,iBAAgB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AAChF;AACA,aAAY,OAAO,QAAQ;AAC3B,UAAS,CAAC;AACV;AACA,KAAI,OAAO,UAAU,CAAC,QAAQ,EAAE;SACxB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,aAAY,IAAI;AAChB;AACA,iBAAgB,IAAI,YAAY,GAAG,UAAU,CAAC,aAAa,EAAE;iBAC7C,IAAI,QAAQ,EAAE;AAC9B,qBAAoB,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC;qBACpD,YAAY,GAAG,CAAC,EAAE,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAChF;AACA,iBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;iBACpD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;iBACvD,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC/C,iBAAgB,OAAO,QAAQ;AAC/B;aACY,OAAO,KAAK,EAAE;AAC1B,iBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAClE;AACA,UAAS,CAAC;AACV;AACA;AACA,CAAA,SAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B;;;;;;;;;;;;AC3EA,EAAA,IAAI,SAAS,GAAG,CAACH,OAAI,IAAIA,OAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;MACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,UAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,UAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,UAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,UAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,OAAK,CAAC;GACL;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,OAAA,GAAkB,OAA0B,CAAA,eAAA,GAAA,OAAA,CAAA,gBAAA,GAA2B,OAA0B,CAAA,eAAA,GAAA,MAAM;EACvG,MAAM,IAAI,GAAG,UAAa;EAC1B,MAAM,IAAI,GAAGC,WAAa;EAC1B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ;AACvD,EAAA,OAAA,CAAA,eAAA,GAA0B,qBAAqB;AAC/C,EAAA,OAAA,CAAA,gBAAA,GAA2B,2GAA2G;AACtI,EAAA,MAAM,OAAO,CAAC;AACd,MAAI,WAAW,GAAG;AAClB,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,cAAY,IAAI,IAAI,CAAC,SAAS,EAAE;kBAChB,OAAO,IAAI,CAAC,SAAS;AACrC;cACY,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;cACxD,IAAI,CAAC,WAAW,EAAE;AAC9B,kBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,yCAAyC,EAAE,OAAO,CAAC,eAAe,CAAC,2DAA2D,CAAC,CAAC;AACjK;AACA,cAAY,IAAI;AAChB,kBAAgB,MAAM,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACpF;cACY,OAAO,EAAE,EAAE;kBACP,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,WAAW,CAAC,wDAAwD,CAAC,CAAC;AACzI;AACA,cAAY,IAAI,CAAC,SAAS,GAAG,WAAW;cAC5B,OAAO,IAAI,CAAC,SAAS;AACjC,WAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE;AACnC,UAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK;AAC9C,eAAa,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;eAC1C,IAAI,CAAC,EAAE,CAAC;UACb,IAAI,CAAC,OAAO,EAAE;cACV,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACzC;AACA,UAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACI,KAAK,CAAC,OAAO,EAAE;UACX,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;cAChD,MAAM,SAAS,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;AACrG,cAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AAClD,cAAY,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU;AAChE,cAAY,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACzE,cAAY,OAAO,IAAI,CAAC,WAAW,EAAE;AACrC,WAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,KAAK,GAAG;UACJ,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,cAAY,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChE,WAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,SAAS,GAAG;UACR,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,aAAa,GAAG;AACpB,UAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,WAAW,GAAG;AAClB,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE;AACjC,UAAQ,IAAI,CAAC,OAAO,IAAI,IAAI;UACpB,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,MAAM,GAAG;UACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AAC7B,UAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE;AAC3D,UAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC;UAChE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE;AACpC,UAAQ,MAAM,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI;UACjC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;UACnE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;UACzC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACI,QAAQ,CAAC,IAAI,EAAE;UACX,MAAM,SAAS,GAAG;eACb,GAAG,CAAC,GAAG,IAAI;cACZ,MAAM,KAAK,GAAG;mBACT,GAAG,CAAC,IAAI,IAAI;AAC7B,kBAAgB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;sBAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAChD;kBACgB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;AAC/D,kBAAgB,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI;kBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,IAAI,EAAE,OAAO,EAAE,EAAE;kBAClG,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC;eACrC;mBACI,IAAI,CAAC,EAAE,CAAC;cACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;WAChC;eACI,IAAI,CAAC,EAAE,CAAC;UACb,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;UAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,UAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC;UAC3E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;UACxB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE;UACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,IAAI,EAAE,MAAM,EAAE,EAAE;UAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;UAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;UACpB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/B,UAAQ,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG;gBAC9D;AACd,gBAAc,IAAI;UACV,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;UAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,YAAY,GAAG;UACX,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;UACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,QAAQ,GAAG;UACP,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;UACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE;AACzB,UAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE;AAC3D,UAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;UACpD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAI,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;AACxB,UAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;UAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAC5C;AACA;AACA,EAAA,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE;AAC9B;AACA;AACA;AACA,EAAA,OAAA,CAAA,eAAA,GAA0B,QAAQ;AAClC,EAAA,OAAA,CAAA,OAAA,GAAkB,QAAQ;AAC1B;;;;;;;;;;;;CCzRA,IAAI,eAAe,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;KAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,OAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE;KACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;EACrC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,SAAA,CAAA,cAAsB,GAAG,SAAmB,CAAA,WAAA,GAAG,SAAmB,CAAA,WAAA,GAAG,MAAM;AAC3E,CAAA,MAAM,IAAI,GAAG,YAAY,CAACE,YAAe,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,WAAW,CAAC,GAAG,EAAE;KACtB,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACpC;AACA,CAAA,SAAA,CAAA,WAAmB,GAAG,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,WAAW,CAAC,GAAG,EAAE;KACtB,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AACpC;AACA,CAAA,SAAA,CAAA,WAAmB,GAAG,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,GAAG,EAAE;KACzB,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C;AACA,CAAA,SAAA,CAAA,cAAsB,GAAG,cAAc;AACvC;;;;;;;;;;;;;;;;;;;;EC5DA,IAAI,eAAe,GAAG,CAACF,MAAI,IAAIA,MAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;GACvF,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,GAAC,CAAC,CAAC;AACH,EAAA,IAAI,kBAAkB,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,MAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,GAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,MAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,GAAC,CAAC;EACF,IAAI,YAAY,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;MAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;MACrC,IAAI,MAAM,GAAG,EAAE;AACnB,MAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAClI,MAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,MAAI,OAAO,MAAM;GAChB;AACD,EAAA,IAAI,SAAS,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;MACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,UAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,UAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,UAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,UAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,OAAK,CAAC;GACL;AACD,EAAA,IAAI,EAAE;EACN,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,oBAAA,GAA+B,mBAAmB,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,MAAA,GAAiB,mBAAmB,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,iBAAiB,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,IAAA,GAAe,gBAAgB,OAAa,CAAA,EAAA,GAAA,OAAA,CAAA,MAAA,GAAiB,mBAAmB,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,IAAA,GAAe,gBAAgB,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,QAAA,GAAmB,OAAgB,CAAA,KAAA,GAAA,MAAM;AAC5Y,EAAA,MAAM,EAAE,GAAG,YAAY,CAACE,WAAa,CAAC;AACtC,EAAA,MAAM,IAAI,GAAG,YAAY,CAACD,YAAe,CAAC;EAC1C,EAAE,GAAG,EAAE,CAAC;AACR;AACA,IAAE,OAAgB,CAAA,KAAA,GAAA,EAAE,CAAC,KAAK,EAAE,OAAA,CAAA,QAAA,GAAmB,EAAE,CAAC,QAAQ,EAAE,OAAgB,CAAA,KAAA,GAAA,EAAE,CAAC,KAAK,EAAE,OAAA,CAAA,KAAA,GAAgB,EAAE,CAAC,KAAK,EAAE,OAAe,CAAA,IAAA,GAAA,EAAE,CAAC,IAAI,EAAE,OAAA,CAAA,OAAA,GAAkB,EAAE,CAAC,OAAO,EAAE,OAAA,CAAA,QAAA,GAAmB,EAAE,CAAC,QAAQ,EAAE,OAAiB,CAAA,MAAA,GAAA,EAAE,CAAC,MAAM,EAAE,OAAA,CAAA,EAAA,GAAa,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAe,CAAA,IAAA,GAAA,EAAE,CAAC,IAAI,EAAE,OAAA,CAAA,OAAA,GAAkB,EAAE,CAAC,OAAO,EAAE,OAAiB,CAAA,MAAA,GAAA,EAAE,CAAC,MAAM;AAChW;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,OAAO,CAAC,QAAQ,KAAK,OAAO;AACjD;AACA,EAAA,OAAA,CAAA,cAAA,GAAyB,UAAU;AACnC,EAAA,OAAA,CAAA,QAAA,GAAmB,EAAE,CAAC,SAAS,CAAC,QAAQ;EACxC,SAAS,MAAM,CAAC,MAAM,EAAE;MACpB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,UAAQ,IAAI;AACZ,cAAY,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC;UACQ,OAAO,GAAG,EAAE;AACpB,cAAY,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvC,kBAAgB,OAAO,KAAK;AAC5B;AACA,cAAY,MAAM,GAAG;AACrB;AACA,UAAQ,OAAO,IAAI;AACnB,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,MAAA,GAAiB,MAAM;AACvB,EAAA,SAAS,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE;MAC1C,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,UAAQ,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AACxF,UAAQ,OAAO,KAAK,CAAC,WAAW,EAAE;AAClC,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC;AACA;AACA;AACA;EACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,MAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;MAC1B,IAAI,CAAC,CAAC,EAAE;AACZ,UAAQ,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACnE;AACA,MAAI,IAAI,OAAO,CAAC,UAAU,EAAE;AAC5B,UAAQ,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C;AACV;AACA,MAAI,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5B;AACA,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE;MAChD,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;UAChD,IAAI,KAAK,GAAG,SAAS;AAC7B,UAAQ,IAAI;AACZ;cACY,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChD;UACQ,OAAO,GAAG,EAAE;AACpB,cAAY,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvC;AACA,kBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,oEAAoE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACvH;AACA;AACA,UAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;AACrC,cAAY,IAAI,OAAO,CAAC,UAAU,EAAE;AACpC;kBACgB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;AACrE,kBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE;AACtF,sBAAoB,OAAO,QAAQ;AACnC;AACA;mBACiB;AACjB,kBAAgB,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAC7C,sBAAoB,OAAO,QAAQ;AACnC;AACA;AACA;AACA;UACQ,MAAM,gBAAgB,GAAG,QAAQ;AACzC,UAAQ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAC5C,cAAY,QAAQ,GAAG,gBAAgB,GAAG,SAAS;cACvC,KAAK,GAAG,SAAS;AAC7B,cAAY,IAAI;kBACA,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpD;cACY,OAAO,GAAG,EAAE;AACxB,kBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC3C;AACA,sBAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,oEAAoE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC3H;AACA;AACA,cAAY,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;AACzC,kBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE;AACxC;AACA,sBAAoB,IAAI;0BACA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;0BACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;0BACvD,KAAK,MAAM,UAAU,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACnF,8BAA4B,IAAI,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;kCACxC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;kCAC3C;AAChC;AACA;AACA;sBACoB,OAAO,GAAG,EAAE;AAChC;AACA,0BAAwB,OAAO,CAAC,GAAG,CAAC,CAAC,sEAAsE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjI;AACA,sBAAoB,OAAO,QAAQ;AACnC;uBACqB;AACrB,sBAAoB,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;AACjD,0BAAwB,OAAO,QAAQ;AACvC;AACA;AACA;AACA;AACA,UAAQ,OAAO,EAAE;AACjB,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,oBAAA,GAA+B,oBAAoB;EACnD,SAAS,mBAAmB,CAAC,CAAC,EAAE;AAChC,MAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AACf,MAAI,IAAI,OAAO,CAAC,UAAU,EAAE;AAC5B;UACQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AAClC;UACQ,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;AACxC;AACA;MACI,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;AACnC;AACA;AACA;AACA;EACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;MAC7B,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC;AAChC,WAAS,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;AAChE,WAAS,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;AACjE;AACA;AACA,EAAA,SAAS,UAAU,GAAG;AACtB,MAAI,IAAI,EAAE;MACN,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;AACnF;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;;;;;;;;;;CCrLA,IAAI,eAAe,GAAG,CAACD,EAAI,IAAIA,EAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACvF,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,EAAI,IAAIA,EAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,EAAI,IAAIA,EAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAClI,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,IAAI,SAAS,GAAG,CAACA,EAAI,IAAIA,EAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAK,CAAC;EACL;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,EAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,EAAA,CAAA,UAAkB,GAAG,EAAA,CAAA,KAAa,GAAG,EAAA,CAAA,MAAc,GAAG,EAAA,CAAA,IAAY,GAAG,EAAA,CAAA,EAAU,GAAG,EAAA,CAAA,EAAU,GAAG,MAAM;CACrG,MAAM,QAAQ,GAAGE,YAAiB;AAClC,CAAA,MAAM,IAAI,GAAG,YAAY,CAACD,YAAe,CAAC;AAC1C,CAAA,MAAM,MAAM,GAAG,YAAY,CAACE,eAAoB,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;KACpC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,SAAQ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC;SAC1E,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AACrF;SACQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE;aACzC;AACZ;AACA;SACQ,MAAM,OAAO,GAAG,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI;eAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACnD,eAAc,IAAI;SACV,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;aAChC,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC;AACnE;SACQ,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACpD,SAAQ,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE;aAC1B,IAAI,CAAC,SAAS,EAAE;iBACZ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,0DAA0D,CAAC,CAAC;AACtH;kBACiB;iBACD,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;AAC/D;AACA;cACa;aACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE;AACvD;AACA,iBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACjF;aACY,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AAClD;AACA,MAAK,CAAC;AACN;AACA,CAAA,EAAA,CAAA,EAAU,GAAG,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;KACpC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;aAC3B,IAAI,UAAU,GAAG,IAAI;aACrB,IAAI,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAChD;AACA,iBAAgB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC7C,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACtD;aACY,IAAI,UAAU,EAAE;iBACZ,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AAC5D,qBAAoB,MAAM,IAAI,CAAC,IAAI,CAAC;AACpC;sBACqB;AACrB,qBAAoB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AACjE;AACA;AACA;SACQ,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;AACzC,MAAK,CAAC;AACN;AACA,CAAA,EAAA,CAAA,EAAU,GAAG,EAAE;AACf;AACA;AACA;AACA;AACA;CACA,SAAS,IAAI,CAAC,SAAS,EAAE;KACrB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,SAAQ,IAAI,MAAM,CAAC,UAAU,EAAE;AAC/B;AACA;AACA,aAAY,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC3C,iBAAgB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC;AAClG;AACA;AACA,SAAQ,IAAI;AACZ;AACA,aAAY,MAAM,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE;iBACvB,KAAK,EAAE,IAAI;iBACX,UAAU,EAAE,CAAC;iBACb,SAAS,EAAE,IAAI;AAC/B,iBAAgB,UAAU,EAAE;AAC5B,cAAa,CAAC;AACd;SACQ,OAAO,GAAG,EAAE;aACR,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE;AACA,MAAK,CAAC;AACN;AACA,CAAA,EAAA,CAAA,IAAY,GAAG,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,MAAM,CAAC,MAAM,EAAE;KACpB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,SAAQ,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kCAAkC,CAAC;AAC/D,SAAQ,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACvD,MAAK,CAAC;AACN;AACA,CAAA,EAAA,CAAA,MAAc,GAAG,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;KACxB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,CAAC,IAAI,EAAE;AACnB,aAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA;SACQ,IAAI,KAAK,EAAE;aACP,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;aACvC,IAAI,CAAC,MAAM,EAAE;AACzB,iBAAgB,IAAI,MAAM,CAAC,UAAU,EAAE;qBACnB,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAAC,sMAAsM,CAAC,CAAC;AACtR;sBACqB;qBACD,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,IAAI,CAAC,8LAA8L,CAAC,CAAC;AAC9Q;AACA;AACA,aAAY,OAAO,MAAM;AACzB;AACA,SAAQ,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;SACtC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,aAAY,OAAO,OAAO,CAAC,CAAC,CAAC;AAC7B;AACA,SAAQ,OAAO,EAAE;AACjB,MAAK,CAAC;AACN;AACA,CAAA,EAAA,CAAA,KAAa,GAAG,KAAK;AACrB;AACA;AACA;AACA;AACA;CACA,SAAS,UAAU,CAAC,IAAI,EAAE;KACtB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,CAAC,IAAI,EAAE;AACnB,aAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;AACA;SACQ,MAAM,UAAU,GAAG,EAAE;SACrB,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACzD,aAAY,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;iBAClE,IAAI,SAAS,EAAE;AAC/B,qBAAoB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9C;AACA;AACA;AACA;AACA,SAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;aACvB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC;aACpE,IAAI,QAAQ,EAAE;iBACV,OAAO,CAAC,QAAQ,CAAC;AACjC;AACA,aAAY,OAAO,EAAE;AACrB;AACA;SACQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACrC,aAAY,OAAO,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;SACQ,MAAM,WAAW,GAAG,EAAE;AAC9B,SAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;AAC9B,aAAY,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;iBACpD,IAAI,CAAC,EAAE;AACvB,qBAAoB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC;AACA;AACA;AACA;SACQ,MAAM,OAAO,GAAG,EAAE;AAC1B,SAAQ,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE;AAC7C,aAAY,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC;aAC1F,IAAI,QAAQ,EAAE;AAC1B,iBAAgB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACtC;AACA;AACA,SAAQ,OAAO,OAAO;AACtB,MAAK,CAAC;AACN;AACA,CAAA,EAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,KAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK;KAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AAChD,KAAI,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI;WACrD;AACV,WAAU,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;AAC9C,KAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE;AACpD;CACA,SAAS,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;KAC7D,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD;SACQ,IAAI,YAAY,IAAI,GAAG;aACnB;AACZ,SAAQ,YAAY,EAAE;AACtB,SAAQ,MAAM,MAAM,CAAC,OAAO,CAAC;SACrB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACrD,SAAQ,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;aAC1B,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC1C,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACzC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3D,aAAY,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE;AAC3C;iBACgB,MAAM,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC;AAC5E;kBACiB;iBACD,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;AACxD;AACA;AACA;AACA,SAAQ,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;AACxE,MAAK,CAAC;AACN;AACA;AACA,CAAA,SAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,SAAQ,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,EAAE;AAC5D;AACA,aAAY,IAAI;AAChB,iBAAgB,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC5C,iBAAgB,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC7C;aACY,OAAO,CAAC,EAAE;AACtB;AACA,iBAAgB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;qBACpB,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;AACxD,qBAAoB,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AACjD;AACA;AACA;AACA;aACY,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC9D,aAAY,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;AAC9F;AACA,cAAa,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,EAAE;aAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AACpD;AACA,MAAK,CAAC;AACN;AACA;;;;;;;;;CCzSA,IAAI,eAAe,GAAG,CAACH,UAAI,IAAIA,UAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACvF,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,UAAI,IAAIA,UAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,UAAI,IAAIA,UAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAClI,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,IAAI,SAAS,GAAG,CAACA,UAAI,IAAIA,UAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAK,CAAC;EACL;AACD,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,UAAA,CAAA,gBAAwB,GAAG,UAAA,CAAA,UAAkB,GAAG,MAAM;AACtD,CAAA,MAAM,EAAE,GAAG,YAAY,CAAC,UAAa,CAAC;AACtC,CAAA,MAAM,MAAM,GAAG,YAAY,CAACC,UAAiB,CAAC;AAC9C,CAAA,MAAM,KAAK,GAAG,YAAY,CAACE,YAAwB,CAAC;AACpD,CAAA,MAAM,IAAI,GAAG,YAAY,CAACC,YAAe,CAAC;AAC1C,CAAA,MAAM,EAAE,GAAG,YAAY,CAACM,WAAsB,CAAC;AAC/C,CAAA,MAAM,MAAM,GAAG,YAAY,CAACC,eAAkC,CAAC;CAC/D,MAAM,QAAQ,GAAGN,YAAiB;AAClC;AACA,CAAA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;AAC/C;AACA;AACA;AACA,CAAA,MAAM,UAAU,SAAS,MAAM,CAAC,YAAY,CAAC;AAC7C,KAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,SAAQ,KAAK,EAAE;SACP,IAAI,CAAC,QAAQ,EAAE;AACvB,aAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AAC5E;AACA,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;AAC9B,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE;AACpC;KACI,MAAM,CAAC,OAAO,EAAE;AACpB,SAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE;aACxD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AACjD;AACA;AACA,KAAI,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE;AACzC,SAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;SACzC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACxC,IAAI,GAAG,GAAG,QAAQ,GAAG,EAAE,GAAG,WAAW,CAAC;SACtC,IAAI,UAAU,EAAE;AACxB;AACA,aAAY,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;iBACnB,GAAG,IAAI,QAAQ;AAC/B,iBAAgB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACtC,qBAAoB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC;AACA;AACA;AACA,kBAAiB,IAAI,OAAO,CAAC,wBAAwB,EAAE;iBACvC,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtC,iBAAgB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACtC,qBAAoB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC;AACA;AACA;kBACiB;AACjB,iBAAgB,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;AACzD,iBAAgB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACtC,qBAAoB,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D;AACA;AACA;cACa;AACb;AACA;AACA;aACY,GAAG,IAAI,QAAQ;AAC3B,aAAY,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AAClC,iBAAgB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B;AACA;AACA,SAAQ,OAAO,GAAG;AAClB;AACA,KAAI,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;AAChD,SAAQ,IAAI;aACA,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;aACnC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;AACrC,aAAY,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;iBACX,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC9B,MAAM,CAAC,IAAI,CAAC;AAC5B;AACA,iBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;iBAClC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;AACrC;AACA,aAAY,OAAO,CAAC;AACpB;SACQ,OAAO,GAAG,EAAE;AACpB;aACY,IAAI,CAAC,MAAM,CAAC,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1E,aAAY,OAAO,EAAE;AACrB;AACA;AACA,KAAI,iBAAiB,GAAG;SAChB,IAAI,UAAU,EAAE;AACxB,aAAY,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;iBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS;AAC1D;AACA;SACQ,OAAO,IAAI,CAAC,QAAQ;AAC5B;KACI,aAAa,CAAC,OAAO,EAAE;SACnB,IAAI,UAAU,EAAE;AACxB,aAAY,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AACnC,iBAAgB,IAAI,OAAO,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,iBAAgB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;qBACvB,OAAO,IAAI,GAAG;qBACd,OAAO,IAAI,OAAO,CAAC;2BACb;AAC1B,2BAA0B,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACrD;iBACgB,OAAO,IAAI,GAAG;iBACd,OAAO,CAAC,OAAO,CAAC;AAChC;AACA;SACQ,OAAO,IAAI,CAAC,IAAI;AACxB;AACA,KAAI,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;AACxB,SAAQ,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChC;AACA,KAAI,UAAU,GAAG;SACT,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;SACjD,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;AACrD,aAAY,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;AACjD;KACI,mBAAmB,CAAC,GAAG,EAAE;AAC7B;AACA,SAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AAChC,aAAY,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;SACQ,IAAI,CAAC,GAAG,EAAE;AAClB,aAAY,OAAO,IAAI;AACvB;AACA;SACQ,MAAM,eAAe,GAAG;AAChC,aAAY,GAAG;AACf,aAAY,IAAI;AAChB,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;AACf,aAAY,GAAG;aACH;UACH;SACD,IAAI,WAAW,GAAG,KAAK;AAC/B,SAAQ,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;aACpB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;iBACvC,WAAW,GAAG,IAAI;iBAClB;AAChB;AACA;AACA;SACQ,IAAI,CAAC,WAAW,EAAE;AAC1B,aAAY,OAAO,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;SACQ,IAAI,OAAO,GAAG,GAAG;SACjB,IAAI,QAAQ,GAAG,IAAI;AAC3B,SAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C;AACA,aAAY,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aACrB,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;iBACjC,OAAO,IAAI,IAAI,CAAC;AAChC;kBACiB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;iBACzB,QAAQ,GAAG,IAAI;iBACf,OAAO,IAAI,GAAG,CAAC;AAC/B;kBACiB;iBACD,QAAQ,GAAG,KAAK;AAChC;AACA;SACQ,OAAO,IAAI,GAAG;AACtB,SAAQ,OAAO;cACF,KAAK,CAAC,EAAE;AACrB,cAAa,OAAO;cACP,IAAI,CAAC,EAAE,CAAC;AACrB;KACI,cAAc,CAAC,GAAG,EAAE;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;SACQ,IAAI,CAAC,GAAG,EAAE;AAClB;AACA,aAAY,OAAO,IAAI;AACvB;SACQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7E;AACA,aAAY,OAAO,GAAG;AACtB;AACA,SAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvD;AACA;AACA,aAAY,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;SACQ,IAAI,OAAO,GAAG,GAAG;SACjB,IAAI,QAAQ,GAAG,IAAI;AAC3B,SAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C;AACA,aAAY,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aACrB,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;iBACjC,OAAO,IAAI,IAAI;AAC/B;kBACiB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;iBACzB,QAAQ,GAAG,IAAI;iBACf,OAAO,IAAI,IAAI;AAC/B;kBACiB;iBACD,QAAQ,GAAG,KAAK;AAChC;AACA;SACQ,OAAO,IAAI,GAAG;AACtB,SAAQ,OAAO;cACF,KAAK,CAAC,EAAE;AACrB,cAAa,OAAO;cACP,IAAI,CAAC,EAAE,CAAC;AACrB;KACI,iBAAiB,CAAC,OAAO,EAAE;AAC/B,SAAQ,OAAO,GAAG,OAAO,IAAI,EAAE;SACvB,MAAM,MAAM,GAAG;aACX,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;aACjC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;AAC3C,aAAY,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;AAC3C,aAAY,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,IAAI,KAAK;AAC/E,aAAY,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;AACvD,aAAY,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;AAC/D,aAAY,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI;UAC3B;SACD,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM;SACtD,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM;AAC9D,SAAQ,OAAO,MAAM;AACrB;AACA,KAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE;AACxC,SAAQ,OAAO,GAAG,OAAO,IAAI,EAAE;SACvB,MAAM,MAAM,GAAG,EAAE;AACzB,SAAQ,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG;AAChC,SAAQ,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG;SACxB,MAAM,CAAC,0BAA0B,CAAC;AAC1C,aAAY,OAAO,CAAC,wBAAwB,IAAI,IAAI,CAAC,UAAU,EAAE;AACjE,SAAQ,IAAI,OAAO,CAAC,wBAAwB,EAAE;aAClC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1C;AACA,SAAQ,OAAO,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI,IAAI,GAAG;SACH,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D;aACY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/C,kBAAiB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC5C,sBAAqB,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACnE;iBACgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC7G;AACA;AACA;AACA,aAAY,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/D,aAAY,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACjG,iBAAgB,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,iBAAgB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AACzC,iBAAgB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE;qBACzB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5C;iBACgB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC3D,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,SAAS,EAAE;AACxE,qBAAoB,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AACnG;iBACgB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC1D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK;AAC/C,qBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AACxC,kBAAiB,CAAC;iBACF,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAClF,qBAAoB,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5F;AACA,iBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE;iBACzC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACnH,IAAI,SAAS,GAAG,EAAE;AAClC,iBAAgB,IAAI,EAAE,CAAC,MAAM,EAAE;qBACX,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACnD,yBAAwB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;6BACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/D;yBACwB,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,SAAS,EAAE;AAChF,6BAA4B,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAChE;AACA,yBAAwB,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,KAAK;AACvF,6BAA4B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;iCAC1D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACpE;AACA,0BAAyB,CAAC;AAC1B,sBAAqB,CAAC;AACtB;iBACgB,IAAI,SAAS,GAAG,EAAE;AAClC,iBAAgB,IAAI,EAAE,CAAC,MAAM,EAAE;qBACX,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACnD,yBAAwB,KAAK,CAAC,aAAa,GAAG,IAAI;AAClD,yBAAwB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;6BACzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/D;AACA,yBAAwB,IAAI,CAAC,cAAc,CAAC,MAAM;6BACtB,cAAc,CAAC,SAAS;6BACxB,cAAc,CAAC,SAAS,EAAE;AACtD,6BAA4B,MAAM,CAAC,GAAG,cAAc,CAAC;AACrD,mCAAkC,cAAc,CAAC;mCACf,cAAc,CAAC,SAAS;AAC1D,6BAA4B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC;AACA,yBAAwB,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,KAAK;AACvF,6BAA4B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE;iCAC1D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACpE;AACA,0BAAyB,CAAC;AAC1B,sBAAqB,CAAC;AACtB;iBACgB,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AACxC,qBAAoB,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO;AACpD,qBAAoB,KAAK,CAAC,aAAa,GAAG,IAAI;AAC9C,qBAAoB,KAAK,CAAC,aAAa,GAAG,IAAI;qBAC1B,KAAK,CAAC,aAAa,EAAE;AACzC,kBAAiB,CAAC;iBACF,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACxC,qBAAoB,KAAK,CAAC,eAAe,GAAG,IAAI;AAChD,qBAAoB,KAAK,CAAC,aAAa,GAAG,IAAI;AAC9C,qBAAoB,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACtE,KAAK,CAAC,aAAa,EAAE;AACzC,kBAAiB,CAAC;iBACF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK;AACzC,qBAAoB,KAAK,CAAC,eAAe,GAAG,IAAI;AAChD,qBAAoB,KAAK,CAAC,aAAa,GAAG,IAAI;AAC9C,qBAAoB,KAAK,CAAC,aAAa,GAAG,IAAI;AAC9C,qBAAoB,IAAI,CAAC,MAAM,CAAC,CAAC,oCAAoC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACpE,KAAK,CAAC,aAAa,EAAE;AACzC,kBAAiB,CAAC;iBACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK;AACtD,qBAAoB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,yBAAwB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;AACvD;AACA,qBAAoB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,yBAAwB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;AACvD;qBACoB,EAAE,CAAC,kBAAkB,EAAE;qBACvB,IAAI,KAAK,EAAE;yBACP,MAAM,CAAC,KAAK,CAAC;AACrC;0BACyB;yBACD,OAAO,CAAC,QAAQ,CAAC;AACzC;AACA,kBAAiB,CAAC;AAClB,iBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACxC,qBAAoB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;AACnC,yBAAwB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;AACtE;qBACoB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACpD;AACA,cAAa,CAAC,CAAC;AACf,UAAS,CAAC;AACV;AACA;AACA,CAAA,UAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,gBAAgB,CAAC,SAAS,EAAE;KACjC,MAAM,IAAI,GAAG,EAAE;KACf,IAAI,QAAQ,GAAG,KAAK;KACpB,IAAI,OAAO,GAAG,KAAK;KACnB,IAAI,GAAG,GAAG,EAAE;AAChB,KAAI,SAAS,MAAM,CAAC,CAAC,EAAE;AACvB;AACA,SAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,GAAG,EAAE;aACtB,GAAG,IAAI,IAAI;AACvB;SACQ,GAAG,IAAI,CAAC;SACR,OAAO,GAAG,KAAK;AACvB;AACA,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACvC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,SAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;aACX,IAAI,CAAC,OAAO,EAAE;iBACV,QAAQ,GAAG,CAAC,QAAQ;AACpC;kBACiB;iBACD,MAAM,CAAC,CAAC,CAAC;AACzB;aACY;AACZ;AACA,SAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,EAAE;aACvB,MAAM,CAAC,CAAC,CAAC;aACT;AACZ;AACA,SAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,QAAQ,EAAE;aACxB,OAAO,GAAG,IAAI;aACd;AACZ;AACA,SAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACpC,aAAY,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,iBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACd,GAAG,GAAG,EAAE;AACxB;aACY;AACZ;SACQ,MAAM,CAAC,CAAC,CAAC;AACjB;AACA,KAAI,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;SAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC7B;AACA,KAAI,OAAO,IAAI;AACf;AACA,CAAA,UAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,MAAM,SAAS,SAAS,MAAM,CAAC,YAAY,CAAC;AAC5C,KAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnC,SAAQ,KAAK,EAAE;AACf,SAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AACnC,SAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,SAAQ,IAAI,CAAC,eAAe,GAAG,CAAC;AAChC,SAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AACnC,SAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AACnC,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,SAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,SAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;SACnB,IAAI,CAAC,QAAQ,EAAE;AACvB,aAAY,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AACzD;AACA,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,SAAQ,IAAI,OAAO,CAAC,KAAK,EAAE;AAC3B,aAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;AACtC;AACA;AACA,KAAI,aAAa,GAAG;AACpB,SAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;aACX;AACZ;AACA,SAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;aACpB,IAAI,CAAC,UAAU,EAAE;AAC7B;AACA,cAAa,IAAI,IAAI,CAAC,aAAa,EAAE;AACrC,aAAY,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;AACzF;AACA;KACI,MAAM,CAAC,OAAO,EAAE;AACpB,SAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACnC;AACA,KAAI,UAAU,GAAG;AACjB;AACA,SAAQ,IAAI,KAAK;AACjB,SAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,aAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AACnC,iBAAgB,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,2DAA2D,EAAE,IAAI,CAAC,QAAQ,CAAC,yDAAyD,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7L;AACA,kBAAiB,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;AACnF,iBAAgB,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AACjH;kBACiB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACtE,iBAAgB,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,oEAAoE,CAAC,CAAC;AACtI;AACA;AACA;AACA,SAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,aAAY,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,aAAY,IAAI,CAAC,OAAO,GAAG,IAAI;AAC/B;AACA,SAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;SAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;AACtD;AACA,KAAI,OAAO,aAAa,CAAC,KAAK,EAAE;AAChC,SAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;aACZ;AACZ;SACQ,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE;aAC7C,MAAM,OAAO,GAAG,CAAC,uCAAuC,EAAE,KAAK,CAAC,KAAK;iBACjE,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,QAAQ,CAAC,wFAAwF,CAAC;AACxK,aAAY,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;AACjC;SACQ,KAAK,CAAC,UAAU,EAAE;AAC1B;AACA;AACA;;;;;;;;;CCxmBA,IAAI,eAAe,GAAG,CAACL,IAAI,IAAIA,IAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACvF,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,KAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,EAAC,CAAC,CAAC;AACH,CAAA,IAAI,kBAAkB,GAAG,CAACA,IAAI,IAAIA,IAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,KAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,EAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,KAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,EAAC,CAAC;CACF,IAAI,YAAY,GAAG,CAACA,IAAI,IAAIA,IAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;KAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;KACrC,IAAI,MAAM,GAAG,EAAE;AACnB,KAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAClI,KAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,KAAI,OAAO,MAAM;EAChB;AACD,CAAA,IAAI,SAAS,GAAG,CAACA,IAAI,IAAIA,IAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;KACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,SAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,SAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,SAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,SAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,MAAK,CAAC;EACL;AACD,CAAA,MAAM,CAAC,cAAc,CAAC4C,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,IAAA,CAAA,aAAqB,GAAGA,IAAA,CAAA,IAAY,GAAG,MAAM;CAC7C,MAAM,gBAAgB,GAAG1C,UAAyB;AAClD,CAAA,MAAM,EAAE,GAAG,YAAY,CAACD,mBAAuB,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS4C,MAAI,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;KACtC,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC;AAC5D,SAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,aAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gDAAgD,CAAC,CAAC;AAC/E;AACA;AACA,SAAQ,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;AACvC,SAAQ,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AACtD,SAAQ,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AACjE,SAAQ,OAAO,MAAM,CAAC,IAAI,EAAE;AAC5B,MAAK,CAAC;AACN;AACA,CAAAD,IAAA,CAAA,IAAY,GAAGC,MAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;KAC/C,IAAI,EAAE,EAAE,EAAE;KACV,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;SAChD,IAAI,MAAM,GAAG,EAAE;SACf,IAAI,MAAM,GAAG,EAAE;AACvB;SACQ,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC;SAChE,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC;AACxE,SAAQ,MAAM,sBAAsB,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AAChK,SAAQ,MAAM,sBAAsB,GAAG,CAAC,EAAE,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM;AAChK,SAAQ,MAAM,cAAc,GAAG,CAAC,IAAI,KAAK;AACzC,aAAY,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;aACnC,IAAI,sBAAsB,EAAE;iBACxB,sBAAsB,CAAC,IAAI,CAAC;AAC5C;UACS;AACT,SAAQ,MAAM,cAAc,GAAG,CAAC,IAAI,KAAK;AACzC,aAAY,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;aACnC,IAAI,sBAAsB,EAAE;iBACxB,sBAAsB,CAAC,IAAI,CAAC;AAC5C;UACS;AACT,SAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;SAC3K,MAAM,QAAQ,GAAG,MAAMA,MAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAChH;AACA,SAAQ,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;AACrC,SAAQ,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE;AACrC,SAAQ,OAAO;AACf,aAAY,QAAQ;AACpB,aAAY,MAAM;aACN;UACH;AACT,MAAK,CAAC;AACN;AACA,CAAAD,IAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;;ECrGA,IAAI,eAAe,GAAG,CAAC5C,QAAI,IAAIA,QAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;MAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,QAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE;MACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;GACrC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,GAAC,CAAC,CAAC;AACH,EAAA,IAAI,kBAAkB,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,MAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,GAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,MAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,GAAC,CAAC;EACF,IAAI,YAAY,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;MAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;MACrC,IAAI,MAAM,GAAG,EAAE;AACnB,MAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,MAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,MAAI,OAAO,MAAM;GAChB;AACD,EAAA,IAAI,SAAS,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;MACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,UAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,UAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,UAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,UAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,OAAK,CAAC;GACL;EACD,IAAI,eAAe,GAAG,CAACA,QAAI,IAAIA,QAAI,CAAC,eAAe,KAAK,UAAU,GAAG,EAAE;AACvE,MAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;GAC5D;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,UAAA,GAAqB,kBAAkB,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,OAAe,CAAA,IAAA,GAAA,OAAA,CAAA,QAAA,GAAmB,MAAM;AACrH,EAAA,MAAM,IAAI,GAAG,eAAe,CAAC,UAAa,CAAC;AAC3C,EAAA,MAAM,IAAI,GAAG,YAAY,CAACC,aAAwB,CAAC;AACnD,EAAA,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5E,MAAI,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kFAAkF,EAAE,SAAS,EAAE;AACxJ,UAAQ,MAAM,EAAE;AAChB,OAAK,CAAC;AACN,MAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kFAAkF,EAAE,SAAS,EAAE;AACrJ,UAAQ,MAAM,EAAE;AAChB,OAAK,CAAC;AACN,MAAI,OAAO;AACX,UAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACzB,UAAQ,OAAO,EAAE,OAAO,CAAC,IAAI;OACxB;AACL,GAAC,CAAC;AACF,EAAA,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC1E,MAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,MAAI,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE;AACtE,UAAQ,MAAM,EAAE;AAChB,OAAK,CAAC;AACN,MAAI,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACvJ,MAAI,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACjJ,MAAI,OAAO;AACX,UAAQ,IAAI;UACJ;OACH;AACL,GAAC,CAAC;AACF,EAAA,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC1E,MAAI,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;AACnF,UAAQ,MAAM,EAAE;AAChB,OAAK,CAAC;AACN,MAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AACrD,MAAI,OAAO;AACX,UAAQ,IAAI;UACJ;OACH;AACL,GAAC,CAAC;AACF,EAAA,OAAA,CAAA,QAAA,GAAmB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC1C,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAClC,EAAA,OAAA,CAAA,SAAA,GAAoB,OAAO,CAAC,QAAQ,KAAK,OAAO;AAChD,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO,CAAC,QAAQ,KAAK,QAAQ;AAC/C,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO,CAAC,QAAQ,KAAK,OAAO;AAC9C,EAAA,SAAS,UAAU,GAAG;MAClB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AACxD,UAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,OAAO,CAAC;AAC/D,gBAAc,cAAc;AAC5B,gBAAc,OAAO,CAAC;AACtB,oBAAkB,YAAY;oBACZ,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ;AACjE,cAAY,IAAI,EAAE,OAAO,CAAC,IAAI;AAC9B,cAAY,SAAS,EAAE,OAAO,CAAC,SAAS;AACxC,cAAY,OAAO,EAAE,OAAO,CAAC,OAAO;AACpC,cAAY,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;;;;;;;;;;;EC5FA,IAAI,eAAe,GAAG,CAACD,MAAI,IAAIA,MAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAChG,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;MAChD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;AACvF,QAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnE;MACI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;GACrC,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;AAC5B,MAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC;MAC5B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,GAAC,CAAC,CAAC;AACH,EAAA,IAAI,kBAAkB,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,kBAAkB,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AAC/F,MAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvE,GAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE;AACpB,MAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,GAAC,CAAC;EACF,IAAI,YAAY,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,YAAY,KAAK,UAAU,GAAG,EAAE;MAC7D,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG;MACrC,IAAI,MAAM,GAAG,EAAE;AACnB,MAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5I,MAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC;AACnC,MAAI,OAAO,MAAM;GAChB;AACD,EAAA,IAAI,SAAS,GAAG,CAACA,MAAI,IAAIA,MAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;MACrF,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9G,MAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,UAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACjG,UAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;AACpG,UAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpH,UAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAC7E,OAAK,CAAC;GACL;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,QAAA,GAAmB,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,eAAA,GAA0B,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,QAAA,GAAmB,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAiB,CAAA,MAAA,GAAA,OAAA,CAAA,OAAA,GAAkB,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,OAA0B,CAAA,eAAA,GAAA,OAAA,CAAA,iBAAA,GAA4B,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,OAAA,GAAkB,OAAoB,CAAA,SAAA,GAAA,OAAA,CAAA,cAAA,GAAyB,OAAmB,CAAA,QAAA,GAAA,MAAM;EAC9jB,MAAM,SAAS,GAAGE,cAAoB,EAAA;EACtC,MAAM,cAAc,GAAGD,kBAAyB,EAAA;EAChD,MAAM,OAAO,GAAGE,cAAkB,EAAA;AAClC,EAAA,MAAM,EAAE,GAAG,YAAY,CAACC,UAAa,CAAC;AACtC,EAAA,MAAM,IAAI,GAAG,YAAY,CAACM,YAAe,CAAC;EAC1C,MAAM,YAAY,GAAGC,gBAAuB,EAAA;AAC5C;AACA;AACA;AACA,EAAA,IAAI,QAAQ;EACZ,CAAC,UAAU,QAAQ,EAAE;AACrB;AACA;AACA;MACI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;AACjD;AACA;AACA;MACI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;GAChD,EAAE,QAAQ,KAAK,OAAA,CAAA,QAAA,GAAmB,QAAQ,GAAG,EAAE,CAAC,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;MAC/B,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;AACzD,MAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY;MAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;MAChD,IAAI,QAAQ,EAAE;UACV,OAAO,IAAI,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,sBAAsB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACjH;AACA,MAAI,IAAI,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC;AAClE;AACA,EAAA,OAAA,CAAA,cAAA,GAAyB,cAAc;AACvC;AACA;AACA;AACA;EACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,MAAI,IAAI,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC;AACvD;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;AACA;AACA;AACA;EACA,SAAS,OAAO,CAAC,SAAS,EAAE;MACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;MACjD,IAAI,QAAQ,EAAE;UACV,IAAI,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,CAAC;AAC/D;WACS;AACT,UAAQ,IAAI,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC;AAC9D;MACI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/E;AACA,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;MAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;MAC/E,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;UACrC,MAAM,IAAI,KAAK,CAAC,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnE;MACI,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;AACrD,UAAQ,OAAO,GAAG;AAClB;AACA,MAAI,OAAO,GAAG,CAAC,IAAI,EAAE;AACrB;AACA,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1C,MAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO;WAChC,KAAK,CAAC,IAAI;AACnB,WAAS,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;MAC1B,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;AACrD,UAAQ,OAAO,MAAM;AACrB;MACI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5C;AACA,EAAA,OAAA,CAAA,iBAAA,GAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE;MACpC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;MAC1C,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;MAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;AACvC,MAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC/B,UAAQ,OAAO,IAAI;AACnB,MAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChC,UAAQ,OAAO,KAAK;MAChB,MAAM,IAAI,SAAS,CAAC,CAAC,0DAA0D,EAAE,IAAI,CAAC,EAAE,CAAC;UACrF,CAAC,0EAA0E,CAAC,CAAC;AACrF;AACA,EAAA,OAAA,CAAA,eAAA,GAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;MAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;MACnD,IAAI,QAAQ,EAAE;UACV,OAAO,IAAI,cAAc,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,cAAc,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACtH;MACI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;MAC5B,IAAI,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC3F;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;EACA,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,MAAI,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AACxD;AACA,EAAA,OAAA,CAAA,cAAA,GAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,SAAS,CAAC,OAAO,EAAE;AAC5B,MAAI,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO;MACnC,KAAK,CAAC,OAAO,CAAC;AAClB;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,OAAO,GAAG;MACf,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG;AAC9C;AACA,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO;AACzB;AACA;AACA;AACA;EACA,SAAS,KAAK,CAAC,OAAO,EAAE;AACxB,MAAI,IAAI,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC;AACrD;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE;AACzC,MAAI,IAAI,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,OAAO,YAAY,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC;AAC/I;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE;AAC3C,MAAI,IAAI,SAAS,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,OAAO,YAAY,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC;AACjJ;AACA,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE;AAC1C,MAAI,IAAI,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,EAAE,OAAO,YAAY,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC;AAChJ;AACA,EAAA,OAAA,CAAA,MAAA,GAAiB,MAAM;AACvB;AACA;AACA;AACA;EACA,SAAS,IAAI,CAAC,OAAO,EAAE;MACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AAC1C;AACA,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,UAAU,CAAC,IAAI,EAAE;MACtB,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;AACvC;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;AACA;AACA;AACA,EAAA,SAAS,QAAQ,GAAG;MAChB,IAAI,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC;AACpC;AACA,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE;MACrB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;UAChD,UAAU,CAAC,IAAI,CAAC;AACxB,UAAQ,IAAI,MAAM;AAClB,UAAQ,IAAI;AACZ,cAAY,MAAM,GAAG,MAAM,EAAE,EAAE;AAC/B;kBACgB;AAChB,cAAY,QAAQ,EAAE;AACtB;AACA,UAAQ,OAAO,MAAM;AACrB,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;MAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE;MAClD,IAAI,QAAQ,EAAE;UACV,OAAO,IAAI,cAAc,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,cAAc,CAAC,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACrH;MACI,IAAI,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC3F;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,MAAI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7C;AACA,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;EAC3B,SAAS,UAAU,CAAC,GAAG,EAAE;MACrB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;UAChD,OAAO,MAAM,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5D,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;AACA;AACA;EACA,IAAI,SAAS,GAAGN,cAAoB,EAAA;EACpC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC/G;AACA;AACA;EACA,IAAI,SAAS,GAAGA,cAAoB,EAAA;EACpC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;AAC/H;AACA;AACA;EACA,IAAI,YAAY,GAAGO,gBAAuB,EAAA;EAC1C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;EAC1H,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;EAC1H,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;AAChI;AACA;AACA;EACA,OAAmB,CAAA,QAAA,GAAA,YAAY,CAACM,eAAA,EAAqB,CAAC;AACtD;;;;;;;;;;;;;;;;;;;;;;;AC/UA;AACA;AACA;EACA,MAAM,EAAE,GAAGhB,WAAa;EACxB,MAAM,EAAE,GAAGD,UAAa;EACxB,MAAM,IAAI,GAAGE,YAAe;EAC5B,MAAM,MAAM,GAAGC,YAAiB;AAChC,EAAA,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE;;AAEjD;AACA;AACA;AACA,EAAA;IACE,YAAY,GAAG,gEAAgE;IAC/E,gBAAgB,GAAG,QAAQ;IAC3B,aAAa,GAAG,CAAC;AACnB,IAAE,YAAY,GAAG,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC;AAC1G;AACA,IAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;AACtC,IAAE,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK;AACvC,IAAE,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM;IACxC,QAAQ,GAAG,KAAK;IAChB,SAAS,GAAG,KAAK;IACjB,IAAI,GAAG,MAAM;AACf;IACE,cAAc,GAAG,EAAE;AACrB;IACE,aAAa,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;;EAEvC,IAAI,gBAAgB,GAAG,KAAK;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnC,IAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,IAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE;IAClC,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;AACjD,MAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAClB,MAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;;IAEd,yBAAyB,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,gBAAgB,EAAE;AACnE,MAAI,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE3B,MAAI,IAAI,KAAK,GAAG,gBAAgB,CAAC,KAAK;MAClC,CAAC,SAAS,cAAc,GAAG;AAC/B,QAAM,IAAI;AACV,UAAQ,MAAM,IAAI,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;;AAEvD;UACQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE;AACrC;YACU,IAAI,CAAC,GAAG,EAAE;AACpB;cACY,IAAI,KAAK,EAAE,GAAG,CAAC,EAAE,OAAO,cAAc,EAAE;;cAExC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,yDAAyD,GAAG,IAAI,CAAC,CAAC;AAClG;;AAEA,YAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACxB,WAAS,CAAC;SACH,CAAC,OAAO,GAAG,EAAE;UACZ,EAAE,CAAC,GAAG,CAAC;AACf;AACA,OAAK,GAAG;AACR,KAAG,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,WAAW,CAAC,OAAO,EAAE;AAC9B,IAAE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;;AAElB,IAAE,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,IAAI,CAAC;;AAE9D,IAAE,IAAI,KAAK,GAAG,gBAAgB,CAAC,KAAK;AACpC,IAAE,GAAG;AACL,MAAI,MAAM,IAAI,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;AACnD,MAAI,IAAI;AACR,QAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;OAClB,CAAC,OAAO,CAAC,EAAE;AAChB,QAAM,OAAO,IAAI;AACjB;AACA,KAAG,QAAQ,KAAK,EAAE,GAAG,CAAC;;AAEtB,IAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE;IAC/B,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;AACjD,MAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAClB,MAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEhB;IACE,OAAO,CAAC,IAAI,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE;AACpD;AACA,MAAI,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE3B;MACI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE;AACvF;AACA,QAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE7B,QAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE;UAC1B,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,gBAAgB,CAAC,WAAW,EAAE;AACnE;YACU,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,6BAA6B,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvG,WAAS,CAAC;AACV,SAAO,MAAM;AACb;AACA;UACQ,MAAM,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB;UACjF,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,6BAA6B,CAAC,IAAI,EAAE,yBAAyB,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjH;AACA,OAAK,CAAC;AACN,KAAG,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,QAAQ,CAAC,OAAO,EAAE;AAC3B,IAAE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;;IAEhB,MAAM,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,gBAAgB;AACnF,IAAE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;AAChC,IAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;AAClE;AACA,IAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC9B,MAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;MAChB,EAAE,GAAG,SAAS;AAClB;;AAEA,IAAE,OAAO;MACL,IAAI,EAAE,IAAI;MACV,EAAE,EAAE,EAAE;AACV,MAAI,cAAc,EAAE,6BAA6B,CAAC,IAAI,EAAE,yBAAyB,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI;KACpG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE;IAC9B,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;AACjD,MAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAClB,MAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEhB;IACE,OAAO,CAAC,IAAI,EAAE,SAAS,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE;AACpD;AACA,MAAI,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE3B;AACA,MAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,SAAS,WAAW,CAAC,GAAG,EAAE;AACpE;AACA,QAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE7B,QAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACrE,OAAK,CAAC;AACN,KAAG,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,OAAO,CAAC,OAAO,EAAE;AAC1B,IAAE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;AACvC,MAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;;AAElB,IAAE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;;AAE3C,IAAE,OAAO;MACL,IAAI,EAAE,IAAI;MACV,cAAc,EAAE,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI;KAC9D;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,IAAE,MAAM,QAAQ,GAAG,UAAU,GAAG,EAAE;MAC9B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AAChC;AACA,QAAM,OAAO,IAAI,CAAC,GAAG,CAAC;AACtB;AACA,MAAI,IAAI,EAAE;KACP;;AAEH,IAAE,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;MAChB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY;QAC9B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACpC,OAAK,CAAC;SACC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,eAAe,CAAC,MAAM,EAAE;IAC/B,IAAI,iBAAiB,GAAG,IAAI;AAC9B,IAAE,IAAI;AACN,MAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAC5C,CAAC,OAAO,CAAC,EAAE;AACd;AACA,MAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AAC9C,KAAG,SAAS;AACZ,MAAI,IAAI;QACF,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;OACzB,CAAC,OAAO,CAAC,EAAE;AAChB;QACM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC;AAC9C;AACA;AACA,IAAE,IAAI,iBAAiB,KAAK,IAAI,EAAE;AAClC,MAAI,MAAM,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,6BAA6B,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC7D,IAAE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AACtF,IAAE,MAAM,cAAc,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC;;IAErG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC;;AAE5D,IAAE,OAAO,IAAI,GAAG,kBAAkB,GAAG,cAAc;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACxD,IAAE,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,GAAG,cAAc,GAAG,aAAa;IAC9E,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC;AACnF,IAAE,MAAM,cAAc,GAAG,sBAAsB,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;IAC7F,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC;;AAE5D,IAAE,OAAO,IAAI,GAAG,kBAAkB,GAAG,cAAc;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,sBAAsB,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACxF,IAAI,MAAM,GAAG,KAAK;;AAEpB;AACA,IAAE,OAAO,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACzC;MACI,IAAI,CAAC,MAAM,EAAE;AACjB;AACA,QAAM,MAAM,QAAQ,GAAG,mBAAmB,IAAI,gBAAgB;QACxD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpD;AACA,QAAM,IAAI,KAAK,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;QAE/C,MAAM,GAAG,IAAI;QACb,IAAI,IAAI,IAAI,cAAc,KAAK,aAAa,IAAI,cAAc,KAAK,cAAc,EAAE;AACzF,UAAQ,OAAO,cAAc,CAAC,aAAa,CAAC;AAC5C,SAAO,MAAM;UACL,OAAO,cAAc,CAAC,aAAa,EAAE,IAAI,IAAI,YAAY,EAAE,CAAC;AACpE;AACA;KACG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,iBAAiB,GAAG;AAC7B;IACE,IAAI,CAAC,gBAAgB,EAAE;;AAEzB;AACA;AACA,IAAE,OAAO,cAAc,CAAC,MAAM,EAAE;AAChC,MAAI,IAAI;AACR,QAAM,cAAc,CAAC,CAAC,CAAC,EAAE;OACpB,CAAC,OAAO,CAAC,EAAE;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,YAAY,CAAC,OAAO,EAAE;IAC7B,IAAI,KAAK,GAAG,EAAE;MACZ,GAAG,GAAG,IAAI;;AAEd;AACA,IAAE,IAAI;AACN,MAAI,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;KAClC,CAAC,OAAO,CAAC,EAAE;AACd,MAAI,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC;AAC3C;;AAEA,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AACpC,MAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAC1D;;AAEA,IAAE,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,IAAE,OAAO,OAAO,GAAG,KAAK,WAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE;AAC5C;AACA,IAAE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACrC,MAAI,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AACxB;;AAEA;AACA,IAAE,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE;AAC7B,MAAI,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC;AACzB;;AAEA;IACE,MAAM,aAAa,GAAG,EAAE;IACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;MACrD,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;AACrC;;AAEA,IAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;AACxC,IAAE,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;;IAE5E,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,EAAE;MACpC,IAAI,GAAG,EAAE;AACb,QAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,EAAE,SAAS,EAAE;AACzE,UAAQ,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE/B,UAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AACpE,SAAO,CAAC;AACR,OAAK,MAAM;AACX,QAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;AACpC;AACA,KAAG,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE;AACxC,IAAE,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;;AAE9E,IAAE,IAAI;AACN,MAAI,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC9B,MAAI,OAAO,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;KACtC,CAAC,OAAO,IAAI,EAAE;AACjB,MAAI,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;;AAElE,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,IAAE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;;AAE5B;IACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;AACjD;;AAEA;IACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;MAChC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAChG;;AAEA;IACE,MAAM,IAAI,GAAG;MACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK;AACrC,MAAI,GAAG;MACH,OAAO,CAAC,GAAG;AACf,MAAI,GAAG;MACH,YAAY,CAAC,EAAE,CAAC;MAChB,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG;AACxC,KAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;AAEZ,IAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;EACA,SAAS,kBAAkB,CAAC,OAAO,EAAE;IACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACnC,MAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;;AAE7B;AACA,MAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,sDAAsD,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;;AAEjH;MACI,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;MACpC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAI;QAC5D,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E;;AAEA;AACA,IAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACpF,MAAI,MAAM,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrE;;AAEA;IACE,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;AACnF,MAAI,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/D;;AAEA;AACA,IAAE,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,GAAG,CAAC;IAC/E,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI;IAC7B,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB;IACrD,OAAO,CAAC,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB;IACvD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa;;AAEjD;AACA,IAAE,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM;AACrE,IAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO;AACxE;;AAEA;AACA;AACA;AACA;AACA;EACA,SAAS,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;IAClD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC;;IAEvC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE;AAC1D,MAAI,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;MAEvB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;;MAExD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QACpC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;AACxG;;AAEA,MAAI,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;AAC1B,KAAG,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACpD,IAAE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;;IAExB,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;;IAExD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACxC,MAAI,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AACjG;;AAEA,IAAE,OAAO,YAAY;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,yBAAyB,CAAC,OAAO,EAAE,EAAE,EAAE;IAC9C,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,MAAM,EAAE;AAC7C,MAAI,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE3B,MAAI,OAAO,CAAC,MAAM,GAAG,MAAM;;AAE3B,MAAI,IAAI;AACR,QAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC;OACpC,CAAC,OAAO,GAAG,EAAE;AAClB,QAAM,OAAO,EAAE,CAAC,GAAG,CAAC;AACpB;;AAEA;AACA,MAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,GAAG,EAAE;AACrE,QAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;QAEvB,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;;AAEhD;AACA,QAAM,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,QAAQ,EAAE;AACtF,UAAQ,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE/B,UAAQ,OAAO,CAAC,QAAQ,GAAG,QAAQ;;AAEnC,UAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACzB,SAAO,CAAC;AACR,OAAK,CAAC;AACN,KAAG,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,6BAA6B,CAAC,OAAO,EAAE;IAC9C,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;;AAE3D,IAAE,kBAAkB,CAAC,OAAe,CAAC;;AAErC,IAAE,MAAM,GAAG,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;IAC5D,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;;AAE5C,IAAE,OAAO,CAAC,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;;AAE/E,IAAE,OAAO,OAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA;EACA,SAAS,QAAQ,CAAC,KAAK,EAAE;IACvB,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;EACA,SAAS,SAAS,CAAC,KAAK,EAAE;IACxB,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9C,IAAE,OAAO,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;AACtF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,kBAAkB,GAAG;IAC5B,gBAAgB,GAAG,IAAI;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE;AACjC,IAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;AACpE;;AAEA;AACA;AACA;AACA;AACA;EACA,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,IAAE,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;AACpE;;AAEA;AACA,EAAA,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;EACA,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;IAC9C,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,GAAG,EAAE,YAAY;MACf,OAAO,cAAc,EAAE;AAC3B;AACA,GAAC,CAAC;;AAEF,EAAA,MAAA,CAAA,OAAA,CAAA,GAAA,GAAqB,GAAG;AACxB,EAAA,MAAA,CAAA,OAAA,CAAA,OAAA,GAAyB,OAAO;;AAEhC,EAAA,MAAA,CAAA,OAAA,CAAA,IAAA,GAAsB,IAAI;AAC1B,EAAA,MAAA,CAAA,OAAA,CAAA,QAAA,GAA0B,QAAQ;;AAElC,EAAA,MAAA,CAAA,OAAA,CAAA,OAAA,GAAyB,OAAO;AAChC,EAAA,MAAA,CAAA,OAAA,CAAA,WAAA,GAA6B,WAAW;;AAExC,EAAA,MAAA,CAAA,OAAA,CAAA,kBAAA,GAAoC,kBAAkB,CAAA;;;;;;;ACz0BtD;AACO,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,IAAI,MAAM,EAAE,SAAS;AACrB,CAAC,CAAC;AAC8B,SAAS,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;AACjF,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AAC7B,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,YAAY,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;AAClC,YAAY,UAAU,EAAE,KAAK;AAC7B,SAAS,CAAC;AACV,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAClC,QAAQ,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9B;AACA,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;AACrC,YAAY,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AAC5B,gBAAgB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACpF;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG;AAC3B;AACA;AACA,IAAI,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,MAAM;AAC3C,IAAI,MAAM,UAAU,SAAS,MAAM,CAAC;AACpC;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC9D,IAAI,SAAS,CAAC,CAAC,GAAG,EAAE;AACpB,QAAQ,IAAI,EAAE;AACd,QAAQ,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,GAAG,IAAI,UAAU,EAAE,GAAG,IAAI;AAC7D,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACvB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,KAAK,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvD,QAAQ,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC7C,YAAY,EAAE,EAAE;AAChB;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACrD,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE;AACjD,QAAQ,KAAK,EAAE,CAAC,IAAI,KAAK;AACzB,YAAY,IAAI,MAAM,EAAE,MAAM,IAAI,IAAI,YAAY,MAAM,CAAC,MAAM;AAC/D,gBAAgB,OAAO,IAAI;AAC3B,YAAY,OAAO,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AAChD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACrD,IAAI,OAAO,CAAC;AACZ;AAGO,MAAM,cAAc,SAAS,KAAK,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,CAAC,wEAAwE,CAAC,CAAC;AACzF;AACA;AACO,MAAM,YAAY,GAAG,EAAE;AACvB,SAAS,MAAM,CAAC,SAAS,EAAE;AAGlC,IAAI,OAAO,YAAY;AACvB;;AC5DA;AAYO,SAAS,aAAa,CAAC,OAAO,EAAE;AACvC,IAAI,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC;AACrF,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO;AACzC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AAC5D,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3B,IAAI,OAAO,MAAM;AACjB;AAIO,SAAS,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE;AAChD,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;AACjC,QAAQ,OAAO,KAAK,CAAC,QAAQ,EAAE;AAC/B,IAAI,OAAO,KAAK;AAChB;AACO,SAAS,MAAM,CAAC,MAAM,EAAE;AAE/B,IAAI,OAAO;AACX,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAsB;AACtB,gBAAgB,MAAM,KAAK,GAAG,MAAM,EAAE;AACtC,gBAAgB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC;AAC/D,gBAAgB,OAAO,KAAK;AAC5B;AAEA,SAAS;AACT,KAAK;AACL;AACO,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAChD;AACO,SAAS,UAAU,CAAC,MAAM,EAAE;AACnC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAChD,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;AACxE,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACnC;AACO,SAAS,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE;AAC9C,IAAI,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;AACnE,IAAI,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;AACrE,IAAI,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY;AAC5E,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC1E,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,IAAI,EAAE,IAAI,QAAQ;AAC9C;AACO,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AAEhD,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AACvC,QAAQ,GAAG,GAAG;AACd,YAAsB;AACtB,gBAAgB,MAAM,KAAK,GAAG,MAAM,EAAE;AACtC,gBAAgB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACnC,gBAAgB,OAAO,KAAK;AAC5B;AAEA,SAAS;AACT,QAAQ,GAAG,CAAC,CAAC,EAAE;AACf,YAAY,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AAC/C,gBAAgB,KAAK,EAAE,CAAC;AACxB;AACA,aAAa,CAAC;AACd;AACA,SAAS;AACT,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC;AACN;AACO,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAChD,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,QAAQ,KAAK;AACb,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC;AACN;AAyBO,SAAS,GAAG,CAAC,GAAG,EAAE;AACzB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAC9B;AACO,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,KAAK,CAAC;AACZ,MAAM,CAAC,GAAG,KAAK,KAAK,GAAG;AAChB,SAAS0C,UAAQ,CAAC,IAAI,EAAE;AAC/B,IAAI,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5E;AACO,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM;AACvC,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;AAC1F,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,IAAI;AACR,QAAQ,MAAM,CAAC,GAAG,QAAQ;AAC1B,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;AACjB,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,CAAC,EAAE;AACd,QAAQ,OAAO,KAAK;AACpB;AACA,CAAC,CAAC;AACK,SAASC,eAAa,CAAC,CAAC,EAAE;AACjC,IAAI,IAAID,UAAQ,CAAC,CAAC,CAAC,KAAK,KAAK;AAC7B,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW;AAC9B,IAAI,IAAI,IAAI,KAAK,SAAS;AAC1B,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;AAC/B,IAAI,IAAIA,UAAQ,CAAC,IAAI,CAAC,KAAK,KAAK;AAChC,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,KAAK,EAAE;AAC/E,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,OAAO,IAAI;AACf;AAsDO,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEhE,SAAS,WAAW,CAAC,GAAG,EAAE;AACjC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACrD;AACA;AACO,SAAS,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;AACzC,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACzD,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,EAAE,MAAM;AAC9B,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI;AAC7B,IAAI,OAAO,EAAE;AACb;AACO,SAAS,eAAe,CAAC,OAAO,EAAE;AACzC,IAAI,MAAM,MAAM,GAAG,OAAO;AAC1B,IAAI,IAAI,CAAC,MAAM;AACf,QAAQ,OAAO,EAAE;AACjB,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AAClC,QAAQ,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,EAAE;AACtC,IAAI,IAAI,MAAM,EAAE,OAAO,KAAK,SAAS,EAAE;AACvC,QAAQ,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS;AACvC,YAAY,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AAC/E,QAAQ,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO;AACrC;AACA,IAAI,OAAO,MAAM,CAAC,OAAO;AACzB,IAAI,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;AACxC,QAAQ,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE;AACvD,IAAI,OAAO,MAAM;AACjB;AAyCO,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC5C,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU;AACxF,KAAK,CAAC;AACN;AACO,MAAM,oBAAoB,GAAG;AACpC,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC/D,IAAI,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;AACpC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC;AAC3B,IAAI,OAAO,EAAE,CAAC,qBAAsB,EAAE,qBAAqB,CAAC;AAC5D,IAAI,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;AAClD,CAAC;AAKM,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;AACnC,IAAI,MAAM,QAAQ,GAAG,EAAE;AACvB,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AACrC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,YAAY;AACZ;AACA,QAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1C;AACA,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AAC1B,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;AACnC,IAAI,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AACjD,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAC5B,QAAQ,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AACrC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,YAAY;AACZ,QAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC;AAC5B;AACA,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AAC1B,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK,CAAC;AACN;AACO,SAASE,QAAM,CAAC,MAAM,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,CAACD,eAAa,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAQ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AAC3E;AACA,IAAI,MAAM,GAAG,GAAG;AAChB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AAC1B,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAY,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE;AACjE,YAAY,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,YAAY,OAAO,MAAM;AACzB,SAAS;AACT,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;AAC7B;AACO,SAASE,OAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE;AACpB,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG;AACrB,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAY,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AACvE,YAAY,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,YAAY,OAAO,MAAM;AACzB,SAAS;AACT,QAAQ,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;AACrC,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;AAC7C,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AAC1C,IAAI,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE;AACjC,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAChC,YAAY,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE;AACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,gBAAgB;AAChB;AACA,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG;AACzB,kBAAkB,IAAI,KAAK,CAAC;AAC5B,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5C,iBAAiB;AACjB,kBAAkB,QAAQ,CAAC,GAAG,CAAC;AAC/B;AACA;AACA,SAAS;AACT,QAAQ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACpC;AACA,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG;AACzB,kBAAkB,IAAI,KAAK,CAAC;AAC5B,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5C,iBAAiB;AACjB,kBAAkB,QAAQ,CAAC,GAAG,CAAC;AAC/B;AACA;AACA,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AAC1B,QAAQ,KAAK;AACb,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK,CAAC;AACN;AACO,SAASC,UAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;AAC9C,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AAC1C,IAAI,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE;AACjC,IAAI,IAAI,IAAI,EAAE;AACd,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AAChC,YAAY,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE;AACjC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,gBAAgB;AAChB;AACA,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC;AACnC,gBAAgB,IAAI,EAAE,aAAa;AACnC,gBAAgB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxC,aAAa,CAAC;AACd;AACA;AACA,SAAS;AACT,QAAQ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACpC;AACA,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC;AACnC,gBAAgB,IAAI,EAAE,aAAa;AACnC,gBAAgB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxC,aAAa,CAAC;AACd;AACA;AACA,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;AACzB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AAC1B,QAAQ,KAAK;AACb;AACA,QAAQ,MAAM,EAAE,EAAE;AAClB,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvD,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI;AAC1C,YAAY,OAAO,IAAI;AACvB;AACA,IAAI,OAAO,KAAK;AAChB;AACO,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;AAC3C,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC/B,QAAQ,IAAI,EAAE;AACd,QAAQ,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AACzC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9B,QAAQ,OAAO,GAAG;AAClB,KAAK,CAAC;AACN;AACO,SAAS,aAAa,CAAC,OAAO,EAAE;AACvC,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO;AACnE;AACO,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;AACjD;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AACtB,QAAQ,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;AACvE,YAAY,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC;AAC5C,YAAY,aAAa,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;AACpD,YAAY,aAAa,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;AACpD,YAAY,eAAe;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B;AACA;AACA,IAAI,OAAO,IAAI,CAAC,IAAI;AACpB,IAAI,OAAO,IAAI,CAAC,QAAQ;AACxB,IAAI,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB;AACA,IAAI,OAAO,IAAI;AACf;AAUO,SAAS,mBAAmB,CAAC,KAAK,EAAE;AAC3C,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5B,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;AACjC,QAAQ,OAAO,QAAQ;AACvB,IAAI,OAAO,SAAS;AACpB;AACO,SAAS,KAAK,CAAC,GAAG,IAAI,EAAE;AAC/B,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI;AACnC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,GAAG;AACxB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS;AACT;AACA,IAAI,OAAO,EAAE,GAAG,GAAG,EAAE;AACrB;;AC9dA,MAAMC,aAAW,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK;AACnC,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW;AAC3B,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AACxC,QAAQ,KAAK,EAAE,IAAI,CAAC,IAAI;AACxB,QAAQ,UAAU,EAAE,KAAK;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC1C,QAAQ,KAAK,EAAE,GAAG;AAClB,QAAQ,UAAU,EAAE,KAAK;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;AAC3C,QAAQ,GAAG,GAAG;AACd,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAEC,qBAA0B,EAAE,CAAC,CAAC;AACrE,SAAS;AACT,QAAQ,UAAU,EAAE,IAAI;AACxB;AACA,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;AAC5C,QAAQ,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO;AACjC,QAAQ,UAAU,EAAE,KAAK;AACzB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAED,aAAW,CAAC;AACxD,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAEA,aAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC/E,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;AACvE,IAAI,MAAM,WAAW,GAAG,EAAE;AAC1B,IAAI,MAAM,UAAU,GAAG,EAAE;AACzB,IAAI,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;AACpC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAY,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrE,YAAY,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD;AACA,aAAa;AACb,YAAY,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC;AACA;AACA,IAAI,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE;AACtC;AACO,SAASE,aAAW,CAAC,KAAK,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,MAAM,GAAG,OAAO;AAC1B,QAAQ,UAAU,KAAK,EAAE;AACzB,YAAY,OAAO,KAAK,CAAC,OAAO;AAChC,SAAS;AACT,IAAI,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;AACvC,IAAI,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK;AACpC,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1C,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;AACvE,gBAAgB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AACnD,gBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACtD;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;AACvD,gBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACtD;AACA,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,gBAAgB,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,IAAI,IAAI,GAAG,WAAW;AACtC,gBAAgB,IAAI,CAAC,GAAG,CAAC;AACzB,gBAAgB,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9C,oBAAoB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,oBAAoB,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AAChE,oBAAoB,IAAI,CAAC,QAAQ,EAAE;AACnC,wBAAwB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAC9D;AACA,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAC9D,wBAAwB,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D;AACA,oBAAoB,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;AACnC,oBAAoB,CAAC,EAAE;AACvB;AACA;AACA;AACA,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,CAAC;AACvB,IAAI,OAAO,WAAW;AACtB;;AC9EO,MAAM,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,KAAK;AAClE,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/E,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC9D,IAAI,IAAI,MAAM,YAAY,OAAO,EAAE;AACnC,QAAQ,MAAM,IAAIC,cAAmB,EAAE;AACvC;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,QAAQ,MAAM,CAAC,GAAG,KAAK,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKC,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC,CAAC;AACrH,QAAQC,iBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC;AAClD,QAAQ,MAAM,CAAC;AACf;AACA,IAAI,OAAO,MAAM,CAAC,KAAK;AACvB,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,IAAI,KAAK,OAAO,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK;AAC5E,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7E,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC5D,IAAI,IAAI,MAAM,YAAY,OAAO;AACjC,QAAQ,MAAM,GAAG,MAAM,MAAM;AAC7B,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,QAAQ,MAAM,CAAC,GAAG,KAAK,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKF,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC,CAAC;AACpH,QAAQC,iBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACjD,QAAQ,MAAM,CAAC;AACf;AACA,IAAI,OAAO,MAAM,CAAC,KAAK;AACvB,CAAC;AAEM,MAAM,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK;AAC7D,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACnE,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC9D,IAAI,IAAI,MAAM,YAAY,OAAO,EAAE;AACnC,QAAQ,MAAM,IAAIH,cAAmB,EAAE;AACvC;AACA,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC;AACzB,UAAU;AACV,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,KAAK,EAAE,KAAK,IAAI,IAAII,SAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKH,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC,CAAC;AAC1H;AACA,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;AAC/C,CAAC;AACM,MAAMG,WAAS,kBAAkB,UAAU,CAACC,aAAoB,CAAC;AACjE,MAAM,eAAe,GAAG,CAAC,IAAI,KAAK,OAAO,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK;AACxE,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAC7E,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC5D,IAAI,IAAI,MAAM,YAAY,OAAO;AACjC,QAAQ,MAAM,GAAG,MAAM,MAAM;AAC7B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC;AACzB,UAAU;AACV,YAAY,OAAO,EAAE,KAAK;AAC1B,YAAY,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKL,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC,CAAC;AACpG;AACA,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;AAC/C,CAAC;AACM,MAAMK,gBAAc,kBAAkB,eAAe,CAACD,aAAoB,CAAC;;ACxD3E,MAAM,IAAI,GAAG,kBAAkB;AAC/B,MAAM,KAAK,GAAG,aAAa;AAC3B,MAAM,IAAI,GAAG,uCAAuC;AACpD,MAAM,GAAG,GAAG,mBAAmB;AAC/B,MAAM,KAAK,GAAG,mBAAmB;AACjC,MAAM,MAAM,GAAG,qBAAqB;AAC3C;AACO,MAAME,UAAQ,GAAG,+FAA+F;AAGvH;AACO,MAAM,IAAI,GAAG,iFAAiF;AACrG;AACA;AACA;AACO,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK;AACjC,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ,OAAO,mIAAmI;AAClJ,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,gCAAgC,EAAE,OAAO,CAAC,uDAAuD,CAAC,CAAC;AAC1H,CAAC;AAID;AACO,MAAM,KAAK,GAAG,kGAAkG;AAQvH;AACO,MAAMC,QAAM,GAAG,CAAC,oDAAoD,CAAC;AACrE,SAAS,KAAK,GAAG;AACxB,IAAI,OAAO,IAAI,MAAM,CAACA,QAAM,EAAE,GAAG,CAAC;AAClC;AACO,MAAM,IAAI,GAAG,qHAAqH;AAClI,MAAM,IAAI,GAAG,8FAA8F;AAC3G,MAAM,MAAM,GAAG,0IAA0I;AACzJ,MAAM,MAAM,GAAG,gIAAgI;AACtJ;AACO,MAAM,MAAM,GAAG,6EAA6E;AAC5F,MAAM,SAAS,GAAG,kBAAkB;AAC3C;AACA;AACA;AACO,MAAM,QAAQ,GAAG,mCAAmC;AAE3D;AACO,MAAM,IAAI,GAAG,0BAA0B;AAC9C;AACA,MAAM,UAAU,GAAG,CAAC,mNAAmN,CAAC;AACjO,MAAMC,MAAI,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/D,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,IAAI,MAAM,IAAI,GAAG,CAAC,2BAA2B,CAAC;AAC9C,IAAI,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK;AAC5C,UAAU,IAAI,CAAC,SAAS,KAAK;AAC7B,cAAc,CAAC,EAAE,IAAI,CAAC;AACtB,cAAc,IAAI,CAAC,SAAS,KAAK;AACjC,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS;AACnC,kBAAkB,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5D,UAAU,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC;AAC7C,IAAI,OAAO,KAAK;AAChB;AACO,SAASC,MAAI,CAAC,IAAI,EAAE;AAC3B,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA;AACO,SAASC,UAAQ,CAAC,IAAI,EAAE;AAC/B,IAAI,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAC1D,IAAI,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;AACtB,IAAI,IAAI,IAAI,CAAC,KAAK;AAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACrB,IAAI,IAAI,IAAI,CAAC,MAAM;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACzD;AACO,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;AAClC,IAAI,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;AACrG,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAEM,MAAM,OAAO,GAAG,OAAO;AACvB,MAAMC,QAAM,GAAG,mBAAmB;AAClC,MAAMC,SAAO,GAAG,aAAa;AACpC,MAAMC,OAAK,GAAG,OAAO;AAIrB;AACO,MAAM,SAAS,GAAG,WAAW;AACpC;AACO,MAAM,SAAS,GAAG,WAAW;;AC9FpC;AAIO,MAAM,SAAS,iBAAiBC,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG;AACvB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,KAAK,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnD,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG;AACzB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,MAAM,EAAE,MAAM;AAClB,CAAC;AACM,MAAM,iBAAiB,iBAAiBA,YAAiB,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC,iBAAiB;AACrG,QAAQ,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE;AAC9B,YAAY,IAAI,GAAG,CAAC,SAAS;AAC7B,gBAAgB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK;AACvC;AACA,gBAAgB,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK;AAChD;AACA,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE;AACpF,YAAY;AACZ;AACA,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM;AAClB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,GAAG,CAAC,KAAK;AAC9B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,SAAS,EAAE,GAAG,CAAC,SAAS;AACpC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,oBAAoB,iBAAiBA,YAAiB,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3G,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;AACrD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC,iBAAiB;AACrG,QAAQ,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE;AAC9B,YAAY,IAAI,GAAG,CAAC,SAAS;AAC7B,gBAAgB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK;AACvC;AACA,gBAAgB,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK;AAChD;AACA,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE;AACpF,YAAY;AACZ;AACA,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM;AAClB,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,OAAO,EAAE,GAAG,CAAC,KAAK;AAC9B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,SAAS,EAAE,GAAG,CAAC,SAAS;AACpC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,mBAAmB;AAChC,cAAcA,YAAiB,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACtE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,IAAI,EAAE;AACd,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;AACtE,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,OAAO,GAAG,CAAC,KAAK;AACrD,YAAY,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;AACjF,QAAQ,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK;AACpD,cAAc,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;AACpD,cAAcC,kBAAuB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACrE,QAAQ,IAAI,UAAU;AACtB,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,EAAE,OAAO,OAAO,CAAC,KAAK;AACxC,YAAY,IAAI,EAAE,iBAAiB;AACnC,YAAY,OAAO,EAAE,GAAG,CAAC,KAAK;AAC9B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,qBAAqB,iBAAiBD,YAAiB,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7G,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,SAAS;AACxC,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC;AAC7C,IAAI,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ;AAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAGE,oBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC;AACpE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AAC/B,QAAQ,GAAG,CAAC,OAAO,GAAG,OAAO;AAC7B,QAAQ,GAAG,CAAC,OAAO,GAAG,OAAO;AAC7B,QAAQ,IAAI,KAAK;AACjB,YAAY,GAAG,CAAC,OAAO,GAAGC,OAAe;AACzC,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,oBAAoB,QAAQ,EAAE,MAAM;AACpC,oBAAoB,MAAM,EAAE,GAAG,CAAC,MAAM;AACtC,oBAAoB,IAAI,EAAE,cAAc;AACxC,oBAAoB,KAAK;AACzB,oBAAoB,IAAI;AACxB,iBAAiB,CAAC;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AAC9C,gBAAgB,IAAI,KAAK,GAAG,CAAC,EAAE;AAC/B;AACA,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,wBAAwB,KAAK;AAC7B,wBAAwB,IAAI,EAAE,SAAS;AACvC,wBAAwB,OAAO,EAAE,MAAM,CAAC,gBAAgB;AACxD,wBAAwB,IAAI,EAAE,iDAAiD;AAC/E,wBAAwB,IAAI;AAC5B,wBAAwB,MAAM;AAC9B,wBAAwB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAC5C,qBAAqB,CAAC;AACtB;AACA,qBAAqB;AACrB;AACA,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,wBAAwB,KAAK;AAC7B,wBAAwB,IAAI,EAAE,WAAW;AACzC,wBAAwB,OAAO,EAAE,MAAM,CAAC,gBAAgB;AACxD,wBAAwB,IAAI,EAAE,iDAAiD;AAC/E,wBAAwB,IAAI;AAC5B,wBAAwB,MAAM;AAC9B,wBAAwB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAC5C,qBAAqB,CAAC;AACtB;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,IAAI,KAAK,GAAG,OAAO,EAAE;AAC7B,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,OAAO;AACvB,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpC,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,KAAK,GAAG,OAAO,EAAE;AAC7B,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,OAAO;AACvB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd;AACA,KAAK;AACL,CAAC,CAAC;AAsHK,MAAM,kBAAkB,iBAAiBH,YAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvG,IAAI,IAAI,EAAE;AACV,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK;AACzD,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK;AACjC,QAAQ,OAAO,CAACI,OAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;AAC7D,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC;AACxE,QAAQ,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;AAC/C,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC,OAAO;AACjC,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAGC,mBAAwB,CAAC,KAAK,CAAC;AACtD,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM;AAClB,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,OAAO,EAAE,GAAG,CAAC,OAAO;AAChC,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,kBAAkB,iBAAiBL,YAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvG,IAAI,IAAI,EAAE;AACV,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK;AACzD,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK;AACjC,QAAQ,OAAO,CAACI,OAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;AAC7D,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC;AACxE,QAAQ,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;AAC/C,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,IAAI,MAAM,IAAI,GAAG,CAAC,OAAO;AACjC,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAGC,mBAAwB,CAAC,KAAK,CAAC;AACtD,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM;AAClB,YAAY,IAAI,EAAE,WAAW;AAC7B,YAAY,OAAO,EAAE,GAAG,CAAC,OAAO;AAChC,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,qBAAqB,iBAAiBL,YAAiB,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7G,IAAI,IAAI,EAAE;AACV,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK;AACzD,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK;AACjC,QAAQ,OAAO,CAACI,OAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;AAC7D,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM;AAChC,QAAQ,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM;AAChC,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AAC/B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM;AACjC,YAAY;AACZ,QAAQ,MAAM,MAAM,GAAGC,mBAAwB,CAAC,KAAK,CAAC;AACtD,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM;AAC1C,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM;AAClB,YAAY,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAC/G,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,qBAAqB,iBAAiBL,YAAiB,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7G,IAAI,IAAI,EAAE,EAAE,EAAE;AACd,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AAC/B,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE;AACzB,YAAY,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AACtD,YAAY,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACzC;AACA,KAAK,CAAC;AACN,IAAI,IAAI,GAAG,CAAC,OAAO;AACnB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AAC3D,YAAY,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;AACrC,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,gBAAgB;AAChB,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,IAAI,EAAE,gBAAgB;AACtC,gBAAgB,MAAM,EAAE,GAAG,CAAC,MAAM;AAClC,gBAAgB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpC,gBAAgB,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC;AAC3E,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpC,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC;AACxD,CAAC,CAAC;AACK,MAAM,cAAc,iBAAiBA,YAAiB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/F,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC;AACjC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3C,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,OAAO;AAC3B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC3C,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,kBAAkB,iBAAiBA,YAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvG,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGM,SAAiB,CAAC;AACpD,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,CAAC,CAAC;AACK,MAAM,kBAAkB,iBAAiBN,YAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvG,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGO,SAAiB,CAAC;AACpD,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,CAAC,CAAC;AACK,MAAM,iBAAiB,iBAAiBP,YAAiB,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,MAAM,YAAY,GAAGQ,WAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACvD,IAAI,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,YAAY,CAAC;AACtH,IAAI,GAAG,CAAC,OAAO,GAAG,OAAO;AACzB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AAClD,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC;AAC9D,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,UAAU;AAC9B,YAAY,QAAQ,EAAE,GAAG,CAAC,QAAQ;AAClC,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,mBAAmB,iBAAiBR,YAAiB,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAEQ,WAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACpE,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AAClD,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;AAChD,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,aAAa;AACjC,YAAY,MAAM,EAAE,GAAG,CAAC,MAAM;AAC9B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,iBAAiB,iBAAiBR,YAAiB,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAEQ,WAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;AAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AAClD,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,MAAM,EAAE,GAAG,CAAC,MAAM;AAC9B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AAwCK,MAAM,kBAAkB,iBAAiBR,YAAiB,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7C,KAAK;AACL,CAAC,CAAC;;ACpjBK,MAAM,GAAG,CAAC;AACjB,IAAI,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC;AACvB,QAAQ,IAAI,IAAI;AAChB,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI;AAC5B;AACA,IAAI,QAAQ,CAAC,EAAE,EAAE;AACjB,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC;AACxB,QAAQ,EAAE,CAAC,IAAI,CAAC;AAChB,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC;AACxB;AACA,IAAI,KAAK,CAAC,GAAG,EAAE;AACf,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACvC,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC5C,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC7C,YAAY;AACZ;AACA,QAAQ,MAAM,OAAO,GAAG,GAAG;AAC3B,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;AACxF,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACzG,QAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACrC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,MAAM,CAAC,GAAG,QAAQ;AAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI;AAC/B,QAAQ,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAQ,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD;AACA,QAAQ,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C;AACA;;AClCO,MAAM,OAAO,GAAG;AACvB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,KAAK,EAAE,CAAC;AACZ,CAAC;;ACGM,MAAM,QAAQ,iBAAiBA,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACxC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO;AAC/B,IAAI,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AACpD;AACA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC3C,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5B;AACA;AACA,IAAI,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE;AAC7B,QAAQ,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC3C,YAAY,EAAE,CAAC,IAAI,CAAC;AACpB;AACA;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B;AACA;AACA,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,KAAK,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;AACvD,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM;AACvC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AAC3C,SAAS,CAAC;AACV;AACA,SAAS;AACT,QAAQ,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK;AACpD,YAAY,IAAI,SAAS,GAAGS,OAAY,CAAC,OAAO,CAAC;AACjD,YAAY,IAAI,WAAW;AAC3B,YAAY,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE;AACrC,gBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AACtC,oBAAoB,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/D,oBAAoB,IAAI,CAAC,SAAS;AAClC,wBAAwB;AACxB;AACA,qBAAqB,IAAI,SAAS,EAAE;AACpC,oBAAoB;AACpB;AACA,gBAAgB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AACrD,gBAAgB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAChD,gBAAgB,IAAI,CAAC,YAAY,OAAO,IAAI,GAAG,EAAE,KAAK,KAAK,KAAK,EAAE;AAClE,oBAAoB,MAAM,IAAI1B,cAAmB,EAAE;AACnD;AACA,gBAAgB,IAAI,WAAW,IAAI,CAAC,YAAY,OAAO,EAAE;AACzD,oBAAoB,WAAW,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY;AACtF,wBAAwB,MAAM,CAAC;AAC/B,wBAAwB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AAC7D,wBAAwB,IAAI,OAAO,KAAK,OAAO;AAC/C,4BAA4B;AAC5B,wBAAwB,IAAI,CAAC,SAAS;AACtC,4BAA4B,SAAS,GAAG0B,OAAY,CAAC,OAAO,EAAE,OAAO,CAAC;AACtE,qBAAqB,CAAC;AACtB;AACA,qBAAqB;AACrB,oBAAoB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AACzD,oBAAoB,IAAI,OAAO,KAAK,OAAO;AAC3C,wBAAwB;AACxB,oBAAoB,IAAI,CAAC,SAAS;AAClC,wBAAwB,SAAS,GAAGA,OAAY,CAAC,OAAO,EAAE,OAAO,CAAC;AAClE;AACA;AACA,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM;AAC9C,oBAAoB,OAAO,OAAO;AAClC,iBAAiB,CAAC;AAClB;AACA,YAAY,OAAO,OAAO;AAC1B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AAC1C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;AACxD,YAAY,IAAI,MAAM,YAAY,OAAO,EAAE;AAC3C,gBAAgB,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK;AACvC,oBAAoB,MAAM,IAAI1B,cAAmB,EAAE;AACnD,gBAAgB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9E;AACA,YAAY,OAAO,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC;AACjD,SAAS;AACT;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG;AACxB,QAAQ,QAAQ,EAAE,CAAC,KAAK,KAAK;AAC7B,YAAY,IAAI;AAChB,gBAAgB,MAAM,CAAC,GAAGK,WAAS,CAAC,IAAI,EAAE,KAAK,CAAC;AAChD,gBAAgB,OAAO,CAAC,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE;AAClF;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAOE,gBAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7H;AACA,SAAS;AACT,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL,CAAC,CAAC;AAEK,MAAM,UAAU,iBAAiBU,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAIU,QAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK;AACtC,QAAQ,IAAI,GAAG,CAAC,MAAM;AACtB,YAAY,IAAI;AAChB,gBAAgB,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrD;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,QAAQ,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;AAC7C,YAAY,OAAO,OAAO;AAC1B,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,MAAM,gBAAgB,iBAAiBV,YAAiB,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnG;AACA,IAAIW,qBAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9B,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiBX,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGY,IAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiBZ,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE;AACrB,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,YAAY,EAAE,EAAE,CAAC;AACjB,SAAS;AACT,QAAQ,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;AACzC,QAAQ,IAAI,CAAC,KAAK,SAAS;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGa,IAAY,CAAC,CAAC,CAAC,CAAC;AACtD;AACA;AACA,QAAQ,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGA,IAAY,EAAE,CAAC;AACrD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,SAAS,iBAAiBb,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGc,KAAa,CAAC;AAChD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,OAAO,iBAAiBd,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK;AACtC,YAAY,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;AACrC,YAAY,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI;AACjC,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE;AAC9B,gBAAgB,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;AAC1C,gBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACtD,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,wBAAwB,IAAI,EAAE,gBAAgB;AAC9C,wBAAwB,MAAM,EAAE,KAAK;AACrC,wBAAwB,IAAI,EAAE,kBAAkB;AAChD,wBAAwB,OAAO,EAAEe,QAAgB,CAAC,MAAM;AACxD,wBAAwB,KAAK,EAAE,OAAO,CAAC,KAAK;AAC5C,wBAAwB,IAAI;AAC5B,wBAAwB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAC5C,qBAAqB,CAAC;AACtB;AACA;AACA,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE;AAC9B,gBAAgB,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;AAC1C,gBAAgB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC/G,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,wBAAwB,IAAI,EAAE,gBAAgB;AAC9C,wBAAwB,MAAM,EAAE,KAAK;AACrC,wBAAwB,IAAI,EAAE,kBAAkB;AAChD,wBAAwB,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;AACpD,wBAAwB,KAAK,EAAE,OAAO,CAAC,KAAK;AAC5C,wBAAwB,IAAI;AAC5B,wBAAwB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAC5C,qBAAqB,CAAC;AACtB;AACA;AACA;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC3D,gBAAgB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjD;AACA,iBAAiB;AACjB,gBAAgB,OAAO,CAAC,KAAK,GAAG,IAAI;AACpC;AACA,YAAY;AACZ;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,IAAI,EAAE,gBAAgB;AACtC,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpC,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpC,aAAa,CAAC;AACd;AACA,KAAK;AACL,CAAC,CAAC;AACK,MAAM,SAAS,iBAAiBf,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGgB,KAAa,EAAE,CAAC;AAClD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,UAAU,iBAAiBhB,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGiB,MAAc,CAAC;AACjD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiBjB,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGkB,IAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,SAAS,iBAAiBlB,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGmB,KAAa,CAAC;AAChD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiBnB,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGoB,IAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,OAAO,iBAAiBpB,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGqB,GAAW,CAAC;AAC9C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,SAAS,iBAAiBrB,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGsB,KAAa,CAAC;AAChD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,eAAe,iBAAiBtB,YAAiB,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjG,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGuB,UAAgB,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,WAAW,iBAAiBvB,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGwB,MAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,WAAW,iBAAiBxB,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGyB,MAAY,CAAC,GAAG,CAAC,CAAC;AACpD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,eAAe,iBAAiBzB,YAAiB,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjG,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG0B,UAAgB,CAAC;AACnD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiB1B,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG2B,IAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AAC3B,KAAK,CAAC;AACN,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiB3B,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG4B,IAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AACjC,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI;AACZ,YAAY,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD;AACA;AACA,QAAQ,MAAM;AACd,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,IAAI,EAAE,gBAAgB;AACtC,gBAAgB,MAAM,EAAE,MAAM;AAC9B,gBAAgB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpC,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpC,aAAa,CAAC;AACd;AACA,KAAK;AACL,CAAC,CAAC;AACK,MAAM,UAAU,iBAAiB5B,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG6B,MAAc,CAAC;AACjD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACK,MAAM,UAAU,iBAAiB7B,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG8B,MAAc,CAAC,CAAC;AAClD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1D,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB,MAAM,IAAI,KAAK,EAAE;AACjC,YAAY,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5C,YAAY,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,KAAK,MAAM;AACzC,gBAAgB,MAAM,IAAI,KAAK,EAAE;AACjC,YAAY,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG;AAChD,gBAAgB,MAAM,IAAI,KAAK,EAAE;AACjC,YAAY,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C;AACA,QAAQ,MAAM;AACd,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,IAAI,EAAE,gBAAgB;AACtC,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpC,gBAAgB,IAAI;AACpB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AACpC,aAAa,CAAC;AACd;AACA,KAAK;AACL,CAAC,CAAC;AACF;AACO,SAAS,aAAa,CAAC,IAAI,EAAE;AACpC,IAAI,IAAI,IAAI,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI;AACnB,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAC7B,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC;AAClB,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM;AACV,QAAQ,OAAO,KAAK;AACpB;AACA;AACO,MAAM,UAAU,iBAAiB9B,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAG+B,MAAc,CAAC;AACjD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ;AAChD,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,QAAQ;AAC5B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF;AACO,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACvC,IAAI,IAAI,CAACC,SAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,QAAQ,OAAO,KAAK;AACpB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACxE,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACvE,IAAI,OAAO,aAAa,CAAC,MAAM,CAAC;AAChC;AACO,MAAM,aAAa,iBAAiBhC,YAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7F,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGgC,SAAiB,CAAC;AACpD,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACtC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,WAAW;AACnD,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;AAC3C,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,WAAW;AAC/B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiBhC,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,GAAGiC,IAAY,CAAC;AAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,CAAC,CAAC;AACF;AACO,SAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE;AACpD,IAAI,IAAI;AACR,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;AACpC,YAAY,OAAO,KAAK;AACxB,QAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW;AACpC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY,OAAO,KAAK;AACxB,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrD,QAAQ,IAAI,KAAK,IAAI,YAAY,IAAI,YAAY,EAAE,GAAG,KAAK,KAAK;AAChE,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG;AAC7B,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,SAAS,KAAK,EAAE,KAAK,IAAI,YAAY,CAAC,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,CAAC;AACrF,YAAY,OAAO,KAAK;AACxB,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM;AACV,QAAQ,OAAO,KAAK;AACpB;AACA;AACO,MAAM,OAAO,iBAAiBjC,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;AAC9C,YAAY;AACZ,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,YAAY,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK;AAChC,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AAeK,MAAM,UAAU,iBAAiBA,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAIkC,QAAc;AAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,IAAI,GAAG,CAAC,MAAM;AACtB,YAAY,IAAI;AAChB,gBAAgB,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrD;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACzF,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK;AAC1C,cAAc,MAAM,CAAC,KAAK,CAAC,KAAK;AAChC,kBAAkB;AAClB,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;AACxC,sBAAsB;AACtB,sBAAsB;AACtB,cAAc,SAAS;AACvB,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,YAAY,IAAI,QAAQ,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,MAAM,gBAAgB,iBAAiBlC,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7F,IAAImC,qBAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC,CAAC;AACK,MAAM,WAAW,iBAAiBnC,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAGoC,SAAe;AACvC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,IAAI,GAAG,CAAC,MAAM;AACtB,YAAY,IAAI;AAChB,gBAAgB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AACtD;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;AACtC,YAAY,OAAO,OAAO;AAC1B,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AA2DK,MAAM,QAAQ,iBAAiBpC,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAGqC,OAAY;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,KAAK,KAAK,IAAI;AAC1B,YAAY,OAAO,OAAO;AAC1B,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,EAAE,MAAM;AAC5B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,MAAM,OAAO,iBAAiBrC,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK,OAAO;AAC1C,CAAC,CAAC;AACK,MAAM,WAAW,iBAAiBA,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK,OAAO;AAC1C,CAAC,CAAC;AACK,MAAM,SAAS,iBAAiBA,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,EAAE,OAAO;AAC7B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AAwCF,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AACjD,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,QAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGsC,YAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACrE;AACA,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK;AACrC;AACO,MAAM,SAAS,iBAAiBtC,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnC,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,QAAQ,EAAE,OAAO;AACjC,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3C,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACjC,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAChD,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa,EAAE,GAAG,CAAC;AACnB,YAAY,IAAI,MAAM,YAAY,OAAO,EAAE;AAC3C,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F;AACA,iBAAiB;AACjB,gBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AACrD;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC;AACzD;AACA,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,CAAC,CAAC;AACF,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;AAChD;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B,QAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGsC,YAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACnE;AACA,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK;AACnC;AACA,SAAS,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AAC/D,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9B;AACA,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AACtC;AACA,YAAY,IAAI,GAAG,IAAI,KAAK,EAAE;AAC9B,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;AAC5C;AACA,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK;AAC/C;AACA;AACA,aAAa;AACb,YAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGA,YAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACvE;AACA;AACA,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;AACzC;AACA,QAAQ,IAAI,GAAG,IAAI,KAAK;AACxB,YAAY,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;AACxC;AACA,SAAS;AACT;AACA,QAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK;AACvC;AACA;AACO,MAAM,UAAU,iBAAiBtC,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF;AACA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,MAAM,WAAW,GAAGuC,MAAW,CAAC,MAAM;AAC1C,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3C,QAAQ,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AAC9B,YAAY,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,EAAE;AACrD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC;AACvF;AACA;AACA,QAAQ,MAAM,KAAK,GAAGC,YAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;AAClD,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,GAAG,CAAC,KAAK;AAC5B,YAAY,IAAI;AAChB,YAAY,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACjC,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM;AAChC,YAAY,YAAY,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC;AACxC,SAAS;AACT,KAAK,CAAC;AACN,IAAIC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM;AACnD,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK;AAC/B,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACjC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI;AACzC,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9B,gBAAgB,UAAU,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AAChE,gBAAgB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM;AAC5C,oBAAoB,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C;AACA;AACA,QAAQ,OAAO,UAAU;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACxC,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACxD,QAAQ,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK;AAC5C,QAAQ,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK;AAClC,YAAY,MAAM,CAAC,GAAGC,GAAQ,CAAC,GAAG,CAAC;AACnC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,qBAAqB,CAAC;AAClF,SAAS;AACT,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC,CAAC;AACjD,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAQ,IAAI,OAAO,GAAG,CAAC;AACvB,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE;AAC3C,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACzC;AACA;AACA,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACzC,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE;AAC3C,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAClD,gBAAgB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AACnC,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,gBAAgB,MAAM,CAAC,GAAGA,GAAQ,CAAC,GAAG,CAAC;AACvC,gBAAgB,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAY,EAAE,EAAE,CAAC;AACjB,oBAAoB,EAAE,CAAC,CAAC;AACxB,gBAAgB,EAAE,CAAC,CAAC;AACpB,wBAAwB,EAAE,CAAC,CAAC;AAC5B;AACA;AACA;AACA,cAAc,EAAE,EAAE,CAAC;AACnB;AACA,kCAAkC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAC5D;AACA;AACA;AACA,mBAAmB,EAAE,EAAE,CAAC;AACxB,cAAc,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC3C;AACA,oBAAoB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AACjC;AACA,QAAQ,CAAC,CAAC;AACV;AACA,iBAAiB;AACjB,gBAAgB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AACnC;AACA,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,gBAAgB,GAAG,CAAC,KAAK,CAAC;AAC1B,cAAc,EAAE,EAAE,CAAC,uDAAuD,EAAE,EAAE,CAAC;AAC/E;AACA,8BAA8B,EAAEA,GAAQ,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAEA,GAAQ,CAAC,GAAG,CAAC,CAAC;AAChF,eAAe,CAAC,CAAC;AACjB,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,EAAEA,GAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACtE;AACA;AACA,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,0BAA0B,CAAC,CAAC;AAC/C,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;AACpC,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE;AAChC,QAAQ,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;AACxD,KAAK;AACL,IAAI,IAAI,QAAQ;AAChB,IAAI,MAAM,QAAQ,GAAGC,UAAa;AAClC,IAAI,MAAM,GAAG,GAAG,CAACC,YAAiB,CAAC,OAAO;AAC1C,IAAI,MAAMC,YAAU,GAAGC,UAAe;AACtC,IAAI,MAAM,WAAW,GAAG,GAAG,IAAID,YAAU,CAAC,KAAK,CAAC;AAChD,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;AACjC,IAAI,IAAI,KAAK;AACb,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,KAAK,KAAK,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC5C,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC9B,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,GAAG,IAAI,WAAW,IAAI,GAAG,EAAE,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE;AAChF;AACA,YAAY,IAAI,CAAC,QAAQ;AACzB,gBAAgB,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;AACtD,YAAY,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;AAC5C;AACA,aAAa;AACb,YAAY,OAAO,CAAC,KAAK,GAAG,EAAE;AAC9B,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AACrC,YAAY,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;AAC1C,gBAAgB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC7E,gBAAgB,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU;AAChG,gBAAgB,IAAI,CAAC,YAAY,OAAO,EAAE;AAC1C,oBAAoB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,0BAA0B,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACpJ;AACA,qBAAqB,IAAI,UAAU,EAAE;AACrC,oBAAoB,0BAA0B,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;AACtE;AACA,qBAAqB;AACrB,oBAAoB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC;AACvD;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB;AACA,YAAY,OAAO,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO;AAClF;AACA,QAAQ,MAAM,YAAY,GAAG,EAAE;AAC/B;AACA,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI;AACvC,QAAQ,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI;AACpC,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/B,gBAAgB;AAChB,YAAY,IAAI,CAAC,KAAK,OAAO,EAAE;AAC/B,gBAAgB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,gBAAgB;AAChB;AACA,YAAY,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC3E,YAAY,IAAI,CAAC,YAAY,OAAO,EAAE;AACtC,gBAAgB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E;AACA,iBAAiB;AACjB,gBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC;AACnD;AACA;AACA,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE;AACjC,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,IAAI,EAAE,mBAAmB;AACzC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;AACzB,YAAY,OAAO,OAAO;AAC1B,QAAQ,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;AAC7C,YAAY,OAAO,OAAO;AAC1B,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF,SAAS,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE;AACvD,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,YAAY,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACtC,YAAY,OAAO,KAAK;AACxB;AACA;AACA,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACtB,QAAQ,IAAI,EAAE,eAAe;AAC7B,QAAQ,KAAK,EAAE,KAAK,CAAC,KAAK;AAC1B,QAAQ,IAAI;AACZ,QAAQ,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK7D,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC,CAAC;AAChH,KAAK,CAAC;AACN,IAAI,OAAO,KAAK;AAChB;AACO,MAAM,SAAS,iBAAiBe,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;AAC5H,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;AAC9H,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM;AAC/C,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrD,YAAY,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3F;AACA,QAAQ,OAAO,SAAS;AACxB,KAAK,CAAC;AACN,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM;AAChD,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtD,YAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACnE,YAAY,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAKM,UAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAChG;AACA,QAAQ,OAAO,SAAS;AACxB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,IAAI,KAAK,GAAG,KAAK;AACzB,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;AAC1C,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,gBAAgB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpC,gBAAgB,MAAM,EAAE,EAAE;AAC1B,aAAa,EAAE,GAAG,CAAC;AACnB,YAAY,IAAI,MAAM,YAAY,OAAO,EAAE;AAC3C,gBAAgB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,gBAAgB,KAAK,GAAG,IAAI;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAC9C,oBAAoB,OAAO,MAAM;AACjC,gBAAgB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC;AACA;AACA,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AAClE,QAAQ,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK;AACtD,YAAY,OAAO,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;AAClE,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACK,MAAM,sBAAsB;AACnC;AACA/C,YAAiB,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3D,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AAClC,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM;AACnD,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE;AAC1C,YAAY,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU;AAC7C,YAAY,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;AACnD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,6CAA6C,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,YAAY,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AACrD,gBAAgB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAClC,oBAAoB,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE;AAC7C,gBAAgB,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE;AACrC,oBAAoB,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1C;AACA;AACA;AACA,QAAQ,OAAO,UAAU;AACzB,KAAK,CAAC;AACN,IAAI,MAAM,IAAI,GAAGF,MAAW,CAAC,MAAM;AACnC,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AAChC,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AAC9B,YAAY,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;AAC/D,YAAY,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;AAC5C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,6CAA6C,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,YAAY,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;AACpC,gBAAgB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAChC,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF;AACA,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B;AACA;AACA,QAAQ,OAAO,GAAG;AAClB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,CAACI,UAAa,CAAC,KAAK,CAAC,EAAE;AACnC,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;AAC9D,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AAC7C;AACA,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE;AAC/B,YAAY,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;AACvC;AACA;AACA,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,eAAe;AACjC,YAAY,MAAM,EAAE,EAAE;AACtB,YAAY,IAAI,EAAE,2BAA2B;AAC7C,YAAY,KAAK;AACjB,YAAY,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;AACrC,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,MAAM,gBAAgB,iBAAiB3C,YAAiB,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACzE,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC3E,QAAQ,MAAM,KAAK,GAAG,IAAI,YAAY,OAAO,IAAI,KAAK,YAAY,OAAO;AACzE,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;AACtE,gBAAgB,OAAO,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AACtE,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;AAC9D,KAAK;AACL,CAAC,CAAC;AACF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B;AACA;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC;AACA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC;AACA,IAAI,IAAIgD,eAAkB,CAAC,CAAC,CAAC,IAAIA,eAAkB,CAAC,CAAC,CAAC,EAAE;AACxD,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AACpF,QAAQ,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;AACrC,QAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AACtC,YAAY,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACpC,gBAAgB,OAAO;AACvB,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC;AACxE,iBAAiB;AACjB;AACA,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI;AAC1C;AACA,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;AAC5C;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9C,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;AACnC,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;AACvD;AACA,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACvD,YAAY,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAClC,YAAY,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAClC,YAAY,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;AACzD,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACpC,gBAAgB,OAAO;AACvB,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,cAAc,EAAE,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC;AAC1E,iBAAiB;AACjB;AACA,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC3C;AACA,QAAQ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9C;AACA,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;AAC/C;AACA,SAAS,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AACxD,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC5B,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1C;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7B,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3C;AACA,IAAI,IAAIvC,OAAY,CAAC,MAAM,CAAC;AAC5B,QAAQ,OAAO,MAAM;AACrB,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;AACvD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,qCAAqC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC7G;AACA,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI;AAC9B,IAAI,OAAO,MAAM;AACjB;AA2EO,MAAM,UAAU,iBAAiBT,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,CAACgD,eAAkB,CAAC,KAAK,CAAC,EAAE;AACxC,YAAY,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,KAAK;AACrB,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;AACrC,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;AAClD,YAAY,OAAO,CAAC,KAAK,GAAG,EAAE;AAC9B,YAAY,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtC,gBAAgB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnG,oBAAoB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACjG,oBAAoB,IAAI,MAAM,YAAY,OAAO,EAAE;AACnD,wBAAwB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3D,4BAA4B,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACtD,gCAAgC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGV,YAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7F;AACA,4BAA4B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK;AAC7D,yBAAyB,CAAC,CAAC;AAC3B;AACA,yBAAyB;AACzB,wBAAwB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAClD,4BAA4B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGA,YAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACzF;AACA,wBAAwB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK;AACzD;AACA;AACA;AACA,YAAY,IAAI,YAAY;AAC5B,YAAY,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACrC,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACtC,oBAAoB,YAAY,GAAG,YAAY,IAAI,EAAE;AACrD,oBAAoB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C;AACA;AACA,YAAY,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,oBAAoB,IAAI,EAAE,mBAAmB;AAC7C,oBAAoB,KAAK;AACzB,oBAAoB,IAAI;AACxB,oBAAoB,IAAI,EAAE,YAAY;AACtC,iBAAiB,CAAC;AAClB;AACA;AACA,aAAa;AACb,YAAY,OAAO,CAAC,KAAK,GAAG,EAAE;AAC9B,YAAY,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtD,gBAAgB,IAAI,GAAG,KAAK,WAAW;AACvC,oBAAoB;AACpB,gBAAgB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AACvF,gBAAgB,IAAI,SAAS,YAAY,OAAO,EAAE;AAClD,oBAAoB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AAC3F;AACA,gBAAgB,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7C,oBAAoB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,wBAAwB,MAAM,EAAE,QAAQ;AACxC,wBAAwB,IAAI,EAAE,aAAa;AAC3C,wBAAwB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKtD,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC;AAC1G,wBAAwB,KAAK,EAAE,GAAG;AAClC,wBAAwB,IAAI,EAAE,CAAC,GAAG,CAAC;AACnC,wBAAwB,IAAI;AAC5B,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK;AACpE,oBAAoB;AACpB;AACA,gBAAgB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;AAC7F,gBAAgB,IAAI,MAAM,YAAY,OAAO,EAAE;AAC/C,oBAAoB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACvD,wBAAwB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAClD,4BAA4B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGqD,YAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACzF;AACA,wBAAwB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK;AACrE,qBAAqB,CAAC,CAAC;AACvB;AACA,qBAAqB;AACrB,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9C,wBAAwB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAGA,YAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACrF;AACA,oBAAoB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK;AACjE;AACA;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;AAC1B,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC;AACzD;AACA,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AAmGK,MAAM,QAAQ,iBAAiBtC,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,MAAM,MAAM,GAAGiD,aAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;AAClD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE;AACxC,SAAS,MAAM,CAAC,CAAC,CAAC,KAAKC,gBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1D,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAG1C,WAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChF,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzC,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,eAAe;AACjC,YAAY,MAAM;AAClB,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,MAAM,WAAW,iBAAiBR,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC;AAC5C,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAGQ,WAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzC,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,eAAe;AACjC,YAAY,MAAM,EAAE,GAAG,CAAC,MAAM;AAC9B,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AAgBK,MAAM,aAAa,iBAAiBR,YAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7F,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1D,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,IAAI,YAAY,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACjF,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3C,gBAAgB,OAAO,CAAC,KAAK,GAAG,MAAM;AACtC,gBAAgB,OAAO,OAAO;AAC9B,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,IAAI,YAAY,OAAO,EAAE;AACrC,YAAY,MAAM,IAAIjB,cAAmB,EAAE;AAC3C;AACA,QAAQ,OAAO,CAAC,KAAK,GAAG,IAAI;AAC5B,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,MAAM,YAAY,iBAAiBiB,YAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3F,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU;AAChC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU;AACjC,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM;AAC/C,QAAQ,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAAG,SAAS;AACzG,KAAK,CAAC;AACN,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM;AAChD,QAAQ,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;AAClD,QAAQ,OAAO,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAEM,UAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;AAC1F,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACrD,YAAY,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACvD;AACA,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AACzC,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACnD,KAAK;AACL,CAAC,CAAC;AACK,MAAM,YAAY,iBAAiB/C,YAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3F,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACvE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM;AAChD,QAAQ,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;AAClD,QAAQ,OAAO,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAEM,UAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS;AAC9F,KAAK,CAAC;AACN,IAAIN,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM;AAC/C,QAAQ,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS;AACpG,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;AAClC,YAAY,OAAO,OAAO;AAC1B,QAAQ,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACnD,KAAK;AACL,CAAC,CAAC;AACK,MAAM,WAAW,iBAAiBzC,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU;AAChC,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AACzC,YAAY,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,YAAY;AAC5C;AACA;AACA;AACA,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AAC3D,QAAQ,IAAI,MAAM,YAAY,OAAO,EAAE;AACvC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC5E;AACA,QAAQ,OAAO,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/C,KAAK;AACL,CAAC,CAAC;AACF,SAAS,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE;AAC3C,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AACrC,QAAQ,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,YAAY;AACxC;AACA,IAAI,OAAO,OAAO;AAClB;AACO,MAAM,YAAY,iBAAiBzC,YAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3F,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU;AAChC,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AACzC,YAAY,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,YAAY;AAC5C;AACA,QAAQ,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AACnD,KAAK;AACL,CAAC,CAAC;AACK,MAAM,eAAe,iBAAiBzC,YAAiB,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM;AAC/C,QAAQ,MAAM,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;AAC3C,QAAQ,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,SAAS;AAC7E,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AAC3D,QAAQ,IAAI,MAAM,YAAY,OAAO,EAAE;AACvC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjF;AACA,QAAQ,OAAO,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC;AACpD,KAAK;AACL,CAAC,CAAC;AACF,SAAS,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE;AAChD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;AAC/D,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5B,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,QAAQ,EAAE,aAAa;AACnC,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,IAAI;AAChB,SAAS,CAAC;AACV;AACA,IAAI,OAAO,OAAO;AAClB;AAeO,MAAM,SAAS,iBAAiBzC,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU;AAChC,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AAC3D,QAAQ,IAAI,MAAM,YAAY,OAAO,EAAE;AACvC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3C,gBAAgB,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AAC5C,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC1C,oBAAoB,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;AACnD,wBAAwB,GAAG,OAAO;AAClC,wBAAwB,KAAK,EAAE;AAC/B,4BAA4B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKzD,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC;AAC3G,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,OAAO,CAAC,KAAK;AAC5C,qBAAqB,CAAC;AACtB,oBAAoB,OAAO,CAAC,MAAM,GAAG,EAAE;AACvC;AACA,gBAAgB,OAAO,OAAO;AAC9B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACpC,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAClC,YAAY,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;AAC3C,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAKD,aAAkB,CAAC,GAAG,EAAE,GAAG,EAAEC,MAAW,EAAE,CAAC,CAAC;AACnG,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpC,aAAa,CAAC;AACd,YAAY,OAAO,CAAC,MAAM,GAAG,EAAE;AAC/B;AACA,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AAgBK,MAAM,QAAQ,iBAAiBe,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AAClE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AAChE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACnE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AAClD,QAAQ,IAAI,IAAI,YAAY,OAAO,EAAE;AACrC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxE;AACA,QAAQ,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;AAC/C,KAAK;AACL,CAAC,CAAC;AACF,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AAC1C,IAAI,IAAIhC,OAAY,CAAC,IAAI,CAAC,EAAE;AAC5B,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC;AAC5E;AACO,MAAM,YAAY,iBAAiBT,YAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3F,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAIyC,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACjF,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACvE,IAAIA,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACzE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK;AACxC,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC;AAC3D,QAAQ,IAAI,MAAM,YAAY,OAAO,EAAE;AACvC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACpD;AACA,QAAQ,OAAO,oBAAoB,CAAC,MAAM,CAAC;AAC3C,KAAK;AACL,CAAC,CAAC;AACF,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,IAAI,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AAChD,IAAI,OAAO,OAAO;AAClB;AAmEO,MAAM,UAAU,iBAAiBzC,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAImD,SAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK;AACtC,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK;AACnC,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,YAAY,OAAO,EAAE;AAClC,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7E;AACA,QAAQ,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AACnD,QAAQ;AACR,KAAK;AACL,CAAC,CAAC;AACF,SAAS,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1D,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK;AACjB,YAAY,IAAI;AAChB,YAAY,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACjD,YAAY,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK;AAC1C;AACA,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAChC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC9C,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,CAACC,KAAU,CAAC,IAAI,CAAC,CAAC;AAC7C;AACA;;AClrDO,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE;AAC/B;AACA,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACnC,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9D,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC1C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC;AAC/E;AACA,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC;AAC5C;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE;AAC/B,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1C,QAAQ,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9D,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,GAAG,CAAC,MAAM,EAAE;AAChB;AACA;AACA,QAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;AACpC,QAAQ,IAAI,CAAC,EAAE;AACf,YAAY,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AACjD,YAAY,OAAO,EAAE,CAAC,EAAE,CAAC;AACzB,YAAY,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACtD;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACpC;AACA,IAAI,GAAG,CAAC,MAAM,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACpC;AACA;AACA;AACO,SAAS,QAAQ,GAAG;AAC3B,IAAI,OAAO,IAAI,YAAY,EAAE;AAC7B;AACO,MAAM,cAAc,iBAAiB,QAAQ,EAAE;;AC/C/C,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,GAAGC,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAQO,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,QAAQ;AACxB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE;AAC1C,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,WAAW;AAC3B,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAQO,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;AACxC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;AACxC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,SAAS,EAAE,IAAI;AACvB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE;AAC9C,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,MAAM,EAAE,SAAS;AACzB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAqCO,SAAS,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;AACxC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAmDO,SAAStD,OAAK,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,GAAGsD,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE;AAC5B,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,KAAK;AACnB,KAAK,CAAC;AACN;AACO,SAAS,QAAQ,CAAC,KAAK,EAAE;AAChC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,SAAS;AACvB,KAAK,CAAC;AACN;AACO,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,GAAGA,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AA0BO,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE;AACnC,IAAI,OAAO,IAAIC,iBAAwB,CAAC;AACxC,QAAQ,KAAK,EAAE,WAAW;AAC1B,QAAQ,GAAGD,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,KAAK;AACb,QAAQ,SAAS,EAAE,KAAK;AACxB,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,IAAIC,iBAAwB,CAAC;AACxC,QAAQ,KAAK,EAAE,WAAW;AAC1B,QAAQ,GAAGD,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,KAAK;AACb,QAAQ,SAAS,EAAE,IAAI;AACvB,KAAK,CAAC;AACN;AAIO,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE;AACnC,IAAI,OAAO,IAAIE,oBAA2B,CAAC;AAC3C,QAAQ,KAAK,EAAE,cAAc;AAC7B,QAAQ,GAAGF,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,KAAK;AACb,QAAQ,SAAS,EAAE,KAAK;AACxB,KAAK,CAAC;AACN;AACO,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AACpC,IAAI,OAAO,IAAIE,oBAA2B,CAAC;AAC3C,QAAQ,KAAK,EAAE,cAAc;AAC7B,QAAQ,GAAGF,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,KAAK;AACb,QAAQ,SAAS,EAAE,IAAI;AACvB,KAAK,CAAC;AACN;AAmBO,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC3C,IAAI,OAAO,IAAIG,mBAA0B,CAAC;AAC1C,QAAQ,KAAK,EAAE,aAAa;AAC5B,QAAQ,GAAGH,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,KAAK;AACb,KAAK,CAAC;AACN;AAsBO,SAAS,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5C,IAAI,MAAM,EAAE,GAAG,IAAII,kBAAyB,CAAC;AAC7C,QAAQ,KAAK,EAAE,YAAY;AAC3B,QAAQ,GAAGJ,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAO;AACf,KAAK,CAAC;AACN,IAAI,OAAO,EAAE;AACb;AACO,SAAS,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,IAAIK,kBAAyB,CAAC;AACzC,QAAQ,KAAK,EAAE,YAAY;AAC3B,QAAQ,GAAGL,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAO;AACf,KAAK,CAAC;AACN;AACO,SAAS,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;AACxC,IAAI,OAAO,IAAIM,qBAA4B,CAAC;AAC5C,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,GAAGN,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,MAAM;AACd,KAAK,CAAC;AACN;AACO,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AACxC,IAAI,OAAO,IAAIO,cAAqB,CAAC;AACrC,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,GAAGP,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAO;AACf,KAAK,CAAC;AACN;AACO,SAAS,UAAU,CAAC,MAAM,EAAE;AACnC,IAAI,OAAO,IAAIQ,kBAAyB,CAAC;AACzC,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,WAAW;AAC3B,QAAQ,GAAGR,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,UAAU,CAAC,MAAM,EAAE;AACnC,IAAI,OAAO,IAAIS,kBAAyB,CAAC;AACzC,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,WAAW;AAC3B,QAAQ,GAAGT,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,SAAS,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,IAAIU,iBAAwB,CAAC;AACxC,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,UAAU;AAC1B,QAAQ,GAAGV,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,QAAQ;AAChB,KAAK,CAAC;AACN;AACO,SAAS,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,IAAIW,mBAA0B,CAAC;AAC1C,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,aAAa;AAC7B,QAAQ,GAAGX,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,MAAM;AACd,KAAK,CAAC;AACN;AACO,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE;AAC1C,IAAI,OAAO,IAAIY,iBAAwB,CAAC;AACxC,QAAQ,KAAK,EAAE,eAAe;AAC9B,QAAQ,MAAM,EAAE,WAAW;AAC3B,QAAQ,GAAGZ,eAAoB,CAAC,MAAM,CAAC;AACvC,QAAQ,MAAM;AACd,KAAK,CAAC;AACN;AAgBO,SAAS,UAAU,CAAC,EAAE,EAAE;AAC/B,IAAI,OAAO,IAAIa,kBAAyB,CAAC;AACzC,QAAQ,KAAK,EAAE,WAAW;AAC1B,QAAQ,EAAE;AACV,KAAK,CAAC;AACN;AACA;AACO,SAAS,UAAU,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO,UAAU,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvD;AACA;AACO,SAAS,KAAK,GAAG;AACxB,IAAI,OAAO,UAAU,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9C;AACA;AACO,SAAS,YAAY,GAAG;AAC/B,IAAI,OAAO,UAAU,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;AACrD;AACA;AACO,SAAS,YAAY,GAAG;AAC/B,IAAI,OAAO,UAAU,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;AACrD;AACO,SAAS,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;AAC/C,IAAI,OAAO,IAAI,KAAK,CAAC;AACrB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,OAAO;AACf;AACA;AACA;AACA,QAAQ,GAAGb,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AA2LO,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,IAAI,GAAGA,eAAoB,CAAC,OAAO,CAAC;AAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACtC,IAAI,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC;AAC7B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,EAAE,EAAE,EAAE;AACd,QAAQ,GAAG,IAAI;AACf,KAAK,CAAC;AACN,IAAI,OAAO,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;AAC5C,IAAI,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC;AAC7B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,QAAQ;AACvB,QAAQ,EAAE,EAAE,EAAE;AACd,QAAQ,GAAGA,eAAoB,CAAC,OAAO,CAAC;AACxC,KAAK,CAAC;AACN,IAAI,OAAO,MAAM;AACjB;;ACh0BA;AACA;AACA;AACA;AAGA;AACO,SAAS,UAAU,CAAC,CAAC,EAAE;AAC9B;AACA,IAAI,MAAM,MAAM,GAAG,CAAC;AACpB,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI;AACxB;AAcA;AACO,SAASjE,WAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACxC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC5B;AACA,QAAQ,MAAM,MAAM,GAAG+E,WAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;AACrD,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3C,IAAI,OAAO,MAAM;AACjB;AAWA;AACO,SAAS,cAAc,CAAC,MAAM,EAAE;AACvC,IAAI,IAAI,CAAC,MAAM;AACf,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,IAAI,QAAQ;AAChB,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC5B,QAAQ,MAAM,QAAQ,GAAG,MAAM;AAC/B,QAAQ,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK;AAC5C;AACA,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,MAAM;AAC/B,QAAQ,QAAQ,GAAG,QAAQ,CAAC,KAAK;AACjC;AACA,IAAI,IAAI,CAAC,QAAQ;AACjB,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC,QAAQ,IAAI;AACZ,YAAY,OAAO,QAAQ,EAAE;AAC7B;AACA,QAAQ,MAAM;AACd,YAAY,OAAO,SAAS;AAC5B;AACA;AACA,IAAI,OAAO,QAAQ;AACnB;AAwGA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,CAAC,MAAM,EAAE;AACxC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AAC5B,QAAQ,MAAM,QAAQ,GAAG,MAAM;AAC/B,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG;AACtC,QAAQ,IAAI,GAAG,EAAE;AACjB;AACA,YAAY,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;AACvC,gBAAgB,OAAO,GAAG,CAAC,KAAK;AAChC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,gBAAgB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC;AACA;AACA;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI;AAC7B,IAAI,IAAI,GAAG,EAAE;AACb,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;AACnC,YAAY,OAAO,GAAG,CAAC,KAAK;AAC5B,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAChE,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK;AACpC,IAAI,IAAI,WAAW,KAAK,SAAS;AACjC,QAAQ,OAAO,WAAW;AAC1B,IAAI,OAAO,SAAS;AACpB;;AC7MO,MAAM,cAAc,iBAAiBnE,YAAiB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/F,IAAIoE,eAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACxC,IAAIC,eAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3C,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,MAAM,EAAE;AACjC,IAAI,OAAOC,YAAiB,CAAC,cAAc,EAAE,MAAM,CAAC;AACpD;AACO,MAAM,UAAU,iBAAiBtE,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAIuE,WAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAIF,eAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3C,CAAC,CAAC;AACK,SAAS,IAAI,CAAC,MAAM,EAAE;AAC7B,IAAI,OAAOG,QAAa,CAAC,UAAU,EAAE,MAAM,CAAC;AAC5C;AACO,MAAM,UAAU,iBAAiBxE,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAIyE,WAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAIJ,eAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3C,CAAC,CAAC;AACK,SAAS,IAAI,CAAC,MAAM,EAAE;AAC7B,IAAI,OAAOK,QAAa,CAAC,UAAU,EAAE,MAAM,CAAC;AAC5C;AACO,MAAM,cAAc,iBAAiB1E,YAAiB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/F,IAAI2E,eAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACxC,IAAIN,eAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3C,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,MAAM,EAAE;AACjC,IAAI,OAAOO,YAAiB,CAAC,cAAc,EAAE,MAAM,CAAC;AACpD;;AC3BA,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACtC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AAChC,IAAI,IAAI,CAAC,IAAI,GAAG,UAAU;AAC1B,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAClC,QAAQ,MAAM,EAAE;AAChB,YAAY,KAAK,EAAE,CAAC,MAAM,KAAKC,aAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7D;AACA,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,KAAK,EAAE,CAAC,MAAM,KAAKC,YAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9D;AACA,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD;AACA,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,YAAY,KAAK,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC1D;AACA,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,GAAG,GAAG;AAClB,gBAAgB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AAC/C,aAAa;AACb;AACA,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAM,YAAY,GAAG9E,YAAiB,CAAC,UAAU,EAAE,WAAW,EAAE;AACvE,IAAI,MAAM,EAAE,KAAK;AACjB,CAAC,CAAC;AACF;AACA;;ACtCO,MAAM,KAAK,mBAAmB+E,MAAW,CAAC,YAAY,CAAC;AACvD,MAAM,UAAU,mBAAmBC,WAAgB,CAAC,YAAY,CAAC;AACjE,MAAM,SAAS,mBAAmBC,UAAe,CAAC,YAAY,CAAC;AAC/D,MAAM,cAAc,mBAAmBC,eAAoB,CAAC,YAAY,CAAC;;ACAzE,MAAM,OAAO,iBAAiBlF,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAImF,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG;AAClB,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvD;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK;AAChC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC;AAC1B,YAAY,GAAG,GAAG;AAClB,YAAY,MAAM,EAAE;AACpB,gBAAgB,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;AACrC,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AACtI,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,MAAM,KAAKC,KAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;AAC/D,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI;AAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK;AACpC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,QAAQ,OAAO,IAAI;AACnB,KAAK,CAAC;AACN;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,MAAM,KAAKC,KAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1F,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAKC,SAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1E,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,IAAI,EAAE,MAAM,KAAKC,UAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/G,IAAI,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,EAAE,MAAM,KAAKC,cAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;AAC1F,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc;AAClC;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAACC,UAAgB,CAAC,EAAE,CAAC,CAAC;AAC7D;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5D,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;AAClC,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAKC,UAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/C,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;AAChD;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACjD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;AACxC;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAW,KAAK;AACrC,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAQC,cAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;AACpD,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;AAC/C,QAAQ,GAAG,GAAG;AACd,YAAY,OAAOA,cAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,WAAW;AAC7D,SAAS;AACT,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK;AAC7B,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/B,YAAY,OAAOA,cAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD;AACA,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAQA,cAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAQ,OAAO,EAAE;AACjB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO;AAC7D,IAAI,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO;AACxD,IAAI,OAAO,IAAI;AACf,CAAC,CAAC;AACF;AACO,MAAM,UAAU,iBAAiB3F,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI4F,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI;AACpC,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,IAAI;AACxC,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,IAAI;AACxC;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,MAAY,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,SAAe,CAAC,GAAG,IAAI,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,WAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,SAAe,CAAC,GAAG,IAAI,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,UAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,UAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,OAAa,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACF,UAAgB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACG,UAAgB,CAAC,MAAM,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,UAAgB,CAAC,MAAM,CAAC,CAAC;AACrE;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAACC,KAAW,EAAE,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAACC,UAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAACC,YAAkB,EAAE,CAAC;AAC7D,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAACC,YAAkB,EAAE,CAAC;AAC7D,CAAC,CAAC;AACK,MAAM,SAAS,iBAAiBzG,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI4F,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACc,MAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,MAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACL,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACM,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,MAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,UAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAClF,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,MAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,QAAY,CAAC,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAQ,CAAC,MAAM,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAQ,CAAC,MAAM,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,QAAY,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC,CAAC;AACK,SAAS,MAAM,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAOC,OAAY,CAAC,SAAS,EAAE,MAAM,CAAC;AAC1C;AACO,MAAM,eAAe,iBAAiBpI,YAAiB,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjG,IAAIqI,gBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9B,CAAC,CAAC;AACK,MAAM,QAAQ,iBAAiBrI,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF;AACA,IAAIsI,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiBtI,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAIuI,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiBvI,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAIwI,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAeK,MAAM,MAAM,iBAAiBxI,YAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/E;AACA,IAAIyI,OAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AACK,SAAS,GAAG,CAAC,MAAM,EAAE;AAC5B,IAAI,OAAO9B,IAAS,CAAC,MAAM,EAAE,MAAM,CAAC;AACpC;AACO,MAAM,QAAQ,iBAAiB3G,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF;AACA,IAAI0I,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,SAAS,iBAAiB1I,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF;AACA,IAAI2I,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiB3I,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAI4I,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,QAAQ,iBAAiB5I,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF;AACA,IAAI6I,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiB7I,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAI8I,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,MAAM,iBAAiB9I,YAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/E;AACA,IAAI+I,OAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,QAAQ,iBAAiB/I,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF;AACA,IAAIgJ,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiBhJ,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAIiJ,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiBjJ,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAIkJ,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,SAAS,iBAAiBlJ,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAImJ,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,SAAS,iBAAiBnJ,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAIoJ,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,SAAS,iBAAiBpJ,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF;AACA,IAAIqJ,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,YAAY,iBAAiBrJ,YAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3F;AACA,IAAIsJ,aAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACtC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,OAAO,iBAAiBtJ,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF;AACA,IAAIuJ,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAIK,MAAM,MAAM,iBAAiBvJ,YAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/E;AACA,IAAIwJ,OAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,CAAC,CAAC;AAYK,MAAM,SAAS,iBAAiBxJ,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAIyJ,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,GAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACA,IAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,GAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACA,IAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,KAAG,CAAC,MAAM,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACA,KAAG,CAAC,MAAM,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACJ,GAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,GAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,IAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACE,WAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrF,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACA,WAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/E;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI;AAC5B,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG;AAC7B,IAAI,IAAI,CAAC,QAAQ;AACjB,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,IAAI;AACnH,IAAI,IAAI,CAAC,QAAQ;AACjB,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,IAAI;AACnH,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC;AAClG,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI;AACxB,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI;AACpC,CAAC,CAAC;AACK,SAASlK,QAAM,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAOmK,OAAY,CAAC,SAAS,EAAE,MAAM,CAAC;AAC1C;AACO,MAAM,eAAe,iBAAiBhK,YAAiB,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjG,IAAIiK,gBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,CAAC,CAAC;AACK,SAASH,KAAG,CAAC,MAAM,EAAE;AAC5B,IAAI,OAAOI,IAAS,CAAC,eAAe,EAAE,MAAM,CAAC;AAC7C;AAaO,MAAM,UAAU,iBAAiBlK,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAImK,WAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACK,SAAS,OAAO,CAAC,MAAM,EAAE;AAChC,IAAI,OAAOC,QAAa,CAAC,UAAU,EAAE,MAAM,CAAC;AAC5C;AAoDO,MAAM,OAAO,iBAAiBpK,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAIqK,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACF,SAAStK,OAAK,CAAC,MAAM,EAAE;AACvB,IAAI,OAAOuK,OAAU,CAAC,OAAO,EAAE,MAAM,CAAC;AACtC;AAEO,MAAM,MAAM,iBAAiBtK,YAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/E,IAAIuK,OAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACK,SAAS,GAAG,GAAG;AACtB,IAAI,OAAOC,IAAS,CAAC,MAAM,CAAC;AAC5B;AACO,MAAM,UAAU,iBAAiBxK,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAIyK,WAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACK,SAAS,OAAO,GAAG;AAC1B,IAAI,OAAOC,QAAa,CAAC,UAAU,CAAC;AACpC;AACO,MAAM,QAAQ,iBAAiB1K,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI2K,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACK,SAAS,KAAK,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAOC,MAAW,CAAC,QAAQ,EAAE,MAAM,CAAC;AACxC;AAqBO,MAAM,QAAQ,iBAAiB5K,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAI6K,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;AAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC5E,UAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACrF,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAACA,UAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,UAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACrF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,KAAK,CAACC,OAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO;AACpC,CAAC,CAAC;AACK,SAAS,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO2E,MAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AACjD;AAMO,MAAM,SAAS,iBAAiB9K,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI+K,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAItI,UAAe,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC;AACnD,IAAI,IAAI,CAAC,KAAK,GAAG,MAAMuI,OAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9D,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtF,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;AAClF;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;AAC5E,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;AAC3E,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAC5E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,KAAK;AAChC,QAAQ,OAAOC,QAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1C,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAKC,OAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AACnD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAKC,IAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,KAAKC,IAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AAC/C,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,KAAKC,OAAY,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,KAAKC,UAAa,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC;AACK,SAAS,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE;AACtC,IAAI,MAAM,GAAG,GAAG;AAChB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAYC,UAAe,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;AACxD,YAAY,OAAO,IAAI,CAAC,KAAK;AAC7B,SAAS;AACT,QAAQ,GAAGlI,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK;AACL,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC;AAC7B;AAaA;AACO,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC3C,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,IAAI,KAAK,GAAG;AACpB,YAAYkI,UAAe,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC;AACxD,YAAY,OAAO,IAAI,CAAC,KAAK;AAC7B,SAAS;AACT,QAAQ,QAAQ,EAAE,OAAO,EAAE;AAC3B,QAAQ,GAAGlI,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,MAAM,QAAQ,iBAAiBrD,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAIwL,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;AAC9B,CAAC,CAAC;AACK,SAAS,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,GAAGnI,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,MAAM,qBAAqB,iBAAiBrD,YAAiB,CAAC,uBAAuB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC7G,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5B,IAAIyL,sBAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC/C,CAAC,CAAC;AACK,SAAS,kBAAkB,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;AACnE;AACA,IAAI,OAAO,IAAI,qBAAqB,CAAC;AACrC,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,OAAO;AACf,QAAQ,aAAa;AACrB,QAAQ,GAAGpI,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AACO,MAAM,eAAe,iBAAiBrD,YAAiB,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjG,IAAI0L,gBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACK,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE;AAC1C,IAAI,OAAO,IAAI,eAAe,CAAC;AAC/B,QAAQ,IAAI,EAAE,cAAc;AAC5B,QAAQ,IAAI,EAAE,IAAI;AAClB,QAAQ,KAAK,EAAE,KAAK;AACpB,KAAK,CAAC;AACN;AAoBO,MAAM,SAAS,iBAAiB1L,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAI2L,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;AAC9B,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS;AAClC,CAAC,CAAC;AACK,SAAS,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AACnD,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,OAAO;AACf,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,GAAGtI,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAuCO,MAAM,OAAO,iBAAiBrD,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAI4L,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACvC,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAgB,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AACtD;AACA;AACA,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACjE;AACA,QAAQ,OAAO,IAAI,OAAO,CAAC;AAC3B,YAAY,GAAG,GAAG;AAClB,YAAY,MAAM,EAAE,EAAE;AACtB,YAAY,GAAGvI,eAAoB,CAAC,MAAM,CAAC;AAC3C,YAAY,OAAO,EAAE,UAAU;AAC/B,SAAS,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK;AACvC,QAAQ,MAAM,UAAU,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE;AAC7C,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACjC,gBAAgB,OAAO,UAAU,CAAC,KAAK,CAAC;AACxC;AACA;AACA,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACjE;AACA,QAAQ,OAAO,IAAI,OAAO,CAAC;AAC3B,YAAY,GAAG,GAAG;AAClB,YAAY,MAAM,EAAE,EAAE;AACtB,YAAY,GAAGA,eAAoB,CAAC,MAAM,CAAC;AAC3C,YAAY,OAAO,EAAE,UAAU;AAC/B,SAAS,CAAC;AACV,KAAK;AACL,CAAC,CAAC;AACF,SAAS2H,OAAK,CAAC,MAAM,EAAE,MAAM,EAAE;AAC/B,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;AAClG,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,OAAO;AACf,QAAQ,GAAG3H,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAgBO,MAAM,UAAU,iBAAiBrD,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAI6L,WAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,GAAG,GAAG;AACd,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,gBAAgB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC;AAC7G;AACA,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAChC,SAAS;AACT,KAAK,CAAC;AACN,CAAC,CAAC;AACK,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACtD,QAAQ,GAAGxI,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAWO,MAAM,YAAY,iBAAiBrD,YAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC3F,IAAI8L,aAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACtC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK;AACzC,QAAQ,OAAO,CAAC,QAAQ,GAAG,CAACC,OAAK,KAAK;AACtC,YAAY,IAAI,OAAOA,OAAK,KAAK,QAAQ,EAAE;AAC3C,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC3I,KAAU,CAAC2I,OAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC1E;AACA,iBAAiB;AACjB;AACA,gBAAgB,MAAM,MAAM,GAAGA,OAAK;AACpC,gBAAgB,IAAI,MAAM,CAAC,KAAK;AAChC,oBAAoB,MAAM,CAAC,QAAQ,GAAG,KAAK;AAC3C,gBAAgB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;AACvD,gBAAgB,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC9D,gBAAgB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACnD,gBAAgB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC3D,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC3I,KAAU,CAAC,MAAM,CAAC,CAAC;AACvD;AACA,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AAC5D,QAAQ,IAAI,MAAM,YAAY,OAAO,EAAE;AACvC,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC3C,gBAAgB,OAAO,CAAC,KAAK,GAAG,MAAM;AACtC,gBAAgB,OAAO,OAAO;AAC9B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,CAAC,KAAK,GAAG,MAAM;AAC9B,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC,CAAC;AACK,SAAS,SAAS,CAAC,EAAE,EAAE;AAC9B,IAAI,OAAO,IAAI,YAAY,CAAC;AAC5B,QAAQ,IAAI,EAAE,WAAW;AACzB,QAAQ,SAAS,EAAE,EAAE;AACrB,KAAK,CAAC;AACN;AACO,MAAM,WAAW,iBAAiBpD,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAIgM,YAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC/C,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,SAAS,EAAE;AACpC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,SAAS,EAAE,SAAS;AAC5B,KAAK,CAAC;AACN;AACO,MAAM,WAAW,iBAAiBhM,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAIiM,YAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC/C,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,SAAS,EAAE;AACpC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,SAAS,EAAE,SAAS;AAC5B,KAAK,CAAC;AACN;AAKO,MAAM,UAAU,iBAAiBjM,YAAiB,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACvF,IAAIkM,WAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC/C,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM;AACpC,CAAC,CAAC;AACK,SAASxG,UAAQ,CAAC,SAAS,EAAE,YAAY,EAAE;AAClD,IAAI,OAAO,IAAI,UAAU,CAAC;AAC1B,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,IAAI,YAAY,GAAG;AAC3B,YAAY,OAAO,OAAO,YAAY,KAAK,UAAU,GAAG,YAAY,EAAE,GAAG,YAAY;AACrF,SAAS;AACT,KAAK,CAAC;AACN;AACO,MAAM,WAAW,iBAAiB1F,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAImM,YAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC/C,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE;AAClD,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,IAAI,YAAY,GAAG;AAC3B,YAAY,OAAO,OAAO,YAAY,KAAK,UAAU,GAAG,YAAY,EAAE,GAAG,YAAY;AACrF,SAAS;AACT,KAAK,CAAC;AACN;AACO,MAAM,cAAc,iBAAiBnM,YAAiB,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AAC/F,IAAIoM,eAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACxC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC/C,CAAC,CAAC;AACK,SAAS,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE;AAC/C,IAAI,OAAO,IAAI,cAAc,CAAC;AAC9B,QAAQ,IAAI,EAAE,aAAa;AAC3B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,GAAG/I,eAAoB,CAAC,MAAM,CAAC;AACvC,KAAK,CAAC;AACN;AAYO,MAAM,QAAQ,iBAAiBrD,YAAiB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACnF,IAAIqM,SAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;AAC/C,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM;AAClC,CAAC,CAAC;AACF,SAAS,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE;AACvC,IAAI,OAAO,IAAI,QAAQ,CAAC;AACxB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,UAAU,GAAG,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,GAAG,MAAM,UAAU,CAAC;AACtF,KAAK,CAAC;AACN;AASO,MAAM,OAAO,iBAAiBrM,YAAiB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACjF,IAAIsM,QAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACjC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE;AACpB,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG;AACtB,CAAC,CAAC;AACK,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,IAAI,OAAO,IAAI,OAAO,CAAC;AACvB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,EAAE,EAAE,GAAG;AACf,QAAQ,GAAG,EAAE,GAAG;AAChB;AACA,KAAK,CAAC;AACN;AACO,MAAM,WAAW,iBAAiBtM,YAAiB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACzF,IAAIuM,YAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACK,SAAS,QAAQ,CAAC,SAAS,EAAE;AACpC,IAAI,OAAO,IAAI,WAAW,CAAC;AAC3B,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,SAAS,EAAE,SAAS;AAC5B,KAAK,CAAC;AACN;AAkCO,MAAM,SAAS,iBAAiBvM,YAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK;AACrF,IAAIwM,UAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3B,CAAC,CAAC;AACF;AACO,SAAS,KAAK,CAAC,EAAE,EAAE;AAC1B,IAAI,MAAM,EAAE,GAAG,IAAIC,SAAc,CAAC;AAClC,QAAQ,KAAK,EAAE,QAAQ;AACvB;AACA,KAAK,CAAC;AACN,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;AACtB,IAAI,OAAO,EAAE;AACb;AACO,SAAS,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;AACpC,IAAI,OAAOC,OAAY,CAAC,SAAS,EAAE,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC;AAC/D;AACO,SAAS,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE;AACzC,IAAI,OAAOC,OAAY,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC;AAC/C;AACA;AACO,SAAS,WAAW,CAAC,EAAE,EAAE;AAChC,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,KAAK;AAClC,QAAQ,OAAO,CAAC,QAAQ,GAAG,CAACZ,OAAK,KAAK;AACtC,YAAY,IAAI,OAAOA,OAAK,KAAK,QAAQ,EAAE;AAC3C,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC3I,KAAU,CAAC2I,OAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClF;AACA,iBAAiB;AACjB;AACA,gBAAgB,MAAM,MAAM,GAAGA,OAAK;AACpC,gBAAgB,IAAI,MAAM,CAAC,KAAK;AAChC,oBAAoB,MAAM,CAAC,QAAQ,GAAG,KAAK;AAC3C,gBAAgB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;AACvD,gBAAgB,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC9D,gBAAgB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;AACjD,gBAAgB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACzE,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC3I,KAAU,CAAC,MAAM,CAAC,CAAC;AACvD;AACA,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;AACzC,KAAK,CAAC;AACN,IAAI,OAAO,EAAE;AACb;AA4BA;AACA;AACO,SAAS,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;AACtC;;AC7+BA;AAEA;AACO,MAAM,YAAY,GAAG;AAC5B,IAUI,MAAM,EAAE,QAAQ;AACpB,CAAC;;ACVM,SAAS,MAAM,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAOwJ,cAAmB,CAACC,SAAiB,EAAE,MAAM,CAAC;AACzD;;ACNO,MAAM,uBAAuB,GAAG,YAAY;AAE5C,MAAM,2BAA2B,GAAG,CAAC,uBAAuB,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACrH,MAAM,qBAAqB,GAAG,sCAAsC;AAC3E;AACO,MAAM,eAAe,GAAG,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB,GAAGC,MAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;AAC5G;AACA;AACA;AACO,MAAM,mBAAmB,GAAGC,KAAO,CAAC,CAACC,MAAQ,EAAE,EAAEC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1E;AACA;AACA;AACO,MAAM,YAAY,GAAGD,MAAQ,EAAE;AACtC;AACA;AACA;AACwCE,WAAa,CAAC;AACtD;AACA;AACA;AACA;AACA,IAAI,GAAG,EAAEH,KAAO,CAAC,CAACE,QAAQ,EAAE,EAAEE,OAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;AACnD;AACA;AACA;AACA,IAAI,YAAY,EAAEF,QAAQ,EAAE,CAAC,QAAQ;AACrC,CAAC;AACM,MAAM,kBAAkB,GAAGG,MAAQ,CAAC;AAC3C,IAAI,GAAG,EAAEH,QAAQ,EAAE,CAAC,QAAQ;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,yBAAyB,GAAGG,MAAQ,CAAC;AAClD,IAAI,MAAM,EAAEJ,MAAQ;AACpB,CAAC,CAAC;AACF,MAAM,iBAAiB,GAAGE,WAAa,CAAC;AACxC;AACA;AACA;AACA,IAAI,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE;AACjD;AACA;AACA;AACA,IAAI,CAAC,qBAAqB,GAAG,yBAAyB,CAAC,QAAQ;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA,MAAM,uBAAuB,GAAGE,MAAQ,CAAC;AACzC;AACA;AACA;AACA,IAAI,KAAK,EAAE,iBAAiB,CAAC,QAAQ;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,EAAE,kBAAkB,CAAC,QAAQ;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,4BAA4B,GAAG,CAAC,KAAK,KAAK,gCAAgC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;AACzG,MAAM,aAAa,GAAGA,MAAQ,CAAC;AACtC,IAAI,MAAM,EAAEJ,MAAQ,EAAE;AACtB,IAAI,MAAM,EAAE,uBAAuB,CAAC,KAAK,EAAE,CAAC,QAAQ;AACpD,CAAC,CAAC;AACF,MAAM,yBAAyB,GAAGI,MAAQ,CAAC;AAC3C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAE,iBAAiB,CAAC,QAAQ;AACrC,CAAC,CAAC;AACK,MAAM,kBAAkB,GAAGA,MAAQ,CAAC;AAC3C,IAAI,MAAM,EAAEJ,MAAQ,EAAE;AACtB,IAAI,MAAM,EAAE,yBAAyB,CAAC,KAAK,EAAE,CAAC,QAAQ;AACtD,CAAC,CAAC;AACK,MAAM,YAAY,GAAGE,WAAa,CAAC;AAC1C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAE,iBAAiB,CAAC,QAAQ;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,eAAe,GAAGH,KAAO,CAAC,CAACC,MAAQ,EAAE,EAAEC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtE;AACA;AACA;AACO,MAAM,oBAAoB,GAAGI,MACzB,CAAC;AACZ,IAAI,OAAO,EAAEC,OAAS,CAAC,eAAe,CAAC;AACvC,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,GAAG,aAAa,CAAC;AACrB,CAAC;AACD,KAAK,MAAM,EAAE;AACN,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;AACxF;AACA;AACA;AACO,MAAM,yBAAyB,GAAGD,MAC9B,CAAC;AACZ,IAAI,OAAO,EAAEC,OAAS,CAAC,eAAe,CAAC;AACvC,IAAI,GAAG,kBAAkB,CAAC;AAC1B,CAAC;AACD,KAAK,MAAM,EAAE;AACN,MAAM,qBAAqB,GAAG,CAAC,KAAK,KAAK,yBAAyB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;AAClG;AACA;AACA;AACO,MAAM,2BAA2B,GAAGD,MAChC,CAAC;AACZ,IAAI,OAAO,EAAEC,OAAS,CAAC,eAAe,CAAC;AACvC,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,MAAM,EAAE;AACZ,CAAC;AACD,KAAK,MAAM,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,uBAAuB,GAAG,CAAC,KAAK,KAAK,2BAA2B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;AAOtG;AACA;AACA;AACO,IAAI,SAAS;AACpB,CAAC,UAAU,SAAS,EAAE;AACtB;AACA,IAAI,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,KAAM,CAAC,GAAG,kBAAkB;AAC1E,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,GAAG,gBAAgB;AACtE;AACA,IAAI,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GAAG,YAAY;AAC9D,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,GAAG,gBAAgB;AACtE,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,GAAG,gBAAgB;AACtE,IAAI,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,eAAe;AACpE,IAAI,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,GAAG,eAAe;AACpE;AACA,IAAI,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,GAAG,wBAAwB;AACtF,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,EAAE,CAAC,CAAC;AACjC;AACA;AACA;AACO,MAAM,0BAA0B,GAAGD,MAC/B,CAAC;AACZ,IAAI,OAAO,EAAEC,OAAS,CAAC,eAAe,CAAC;AACvC,IAAI,EAAE,EAAE,eAAe,CAAC,QAAQ,EAAE;AAClC,IAAI,KAAK,EAAEF,MAAQ,CAAC;AACpB;AACA;AACA;AACA,QAAQ,IAAI,EAAEH,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC9B;AACA;AACA;AACA,QAAQ,OAAO,EAAED,MAAQ,EAAE;AAC3B;AACA;AACA;AACA,QAAQ,IAAI,EAAEO,OAAS,EAAE,CAAC,QAAQ;AAClC,KAAK;AACL,CAAC;AACD,KAAK,MAAM,EAAE;AAKb;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,CAAC,KAAK,KAAK,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;AAK7F,MAAM,oBAAoB,GAAGR,KAAO,CAAC;AAC5C,IAAI,oBAAoB;AACxB,IAAI,yBAAyB;AAC7B,IAAI,2BAA2B;AAC/B,IAAI;AACJ,CAAC,CAAC;AACmCA,KAAO,CAAC,CAAC,2BAA2B,EAAE,0BAA0B,CAAC;AACtG;AACA;AACA;AACA;AACO,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,EAAE;AAC/C,MAAM,iCAAiC,GAAG,yBAAyB,CAAC,MAAM,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;AACzC;AACA;AACA;AACA,IAAI,MAAM,EAAEC,MAAQ,EAAE,CAAC,QAAQ;AAC/B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,2BAA2B,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACrE,IAAI,MAAM,EAAEM,OAAS,CAAC,yBAAyB,CAAC;AAChD,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,UAAU,GAAGF,MAAQ,CAAC;AACnC;AACA;AACA;AACA,IAAI,GAAG,EAAEJ,MAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,QAAQ,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAES,OAAM,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ;AAC7C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,WAAW,GAAGL,MAAQ,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEI,KAAO,CAAC,UAAU,CAAC,CAAC,QAAQ;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAGJ,MAAQ,CAAC;AAC3C;AACA,IAAI,IAAI,EAAEJ,MAAQ,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC9D,IAAI,GAAG,kBAAkB,CAAC,KAAK;AAC/B,IAAI,GAAG,WAAW,CAAC,KAAK;AACxB,IAAI,OAAO,EAAEA,MAAQ,EAAE;AACvB;AACA;AACA;AACA,IAAI,UAAU,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AACpC,CAAC,CAAC;AACF,MAAM,+BAA+B,GAAGU,YAAc,CAACN,MAAQ,CAAC;AAChE,IAAI,aAAa,EAAEO,OAAS,EAAE,CAAC,QAAQ;AACvC,CAAC,CAAC,EAAEC,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC;AACtC,MAAM,2BAA2B,GAAGM,UAAY,CAAC,KAAK,IAAI;AAC1D,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrE,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7C,YAAY,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;AAC/B;AACA;AACA,IAAI,OAAO,KAAK;AAChB,CAAC,EAAEH,YAAc,CAACN,MAAQ,CAAC;AAC3B,IAAI,IAAI,EAAE,+BAA+B,CAAC,QAAQ,EAAE;AACpD,IAAI,GAAG,EAAE,kBAAkB,CAAC,QAAQ;AACpC,CAAC,CAAC,EAAEQ,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD;AACA;AACA;AACO,MAAM,2BAA2B,GAAGL,WAAa,CAAC;AACzD;AACA;AACA;AACA,IAAI,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AACvC;AACA;AACA;AACA,IAAI,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AACzC;AACA;AACA;AACA,IAAI,QAAQ,EAAEY,WACM,CAAC;AACrB;AACA;AACA;AACA,QAAQ,QAAQ,EAAEC,WACM,CAAC;AACzB,YAAY,aAAa,EAAE,kBAAkB,CAAC,QAAQ;AACtD,SAAS;AACT,aAAa,QAAQ,EAAE;AACvB;AACA;AACA;AACA,QAAQ,WAAW,EAAEA,WACG,CAAC;AACzB,YAAY,MAAM,EAAE,kBAAkB,CAAC,QAAQ;AAC/C,SAAS;AACT,aAAa,QAAQ;AACrB,KAAK;AACL,SAAS,QAAQ;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,2BAA2B,GAAGb,WAAa,CAAC;AACzD;AACA;AACA;AACA,IAAI,IAAI,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AACvC;AACA;AACA;AACA,IAAI,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AACzC;AACA;AACA;AACA,IAAI,QAAQ,EAAEY,WACM,CAAC;AACrB;AACA;AACA;AACA,QAAQ,KAAK,EAAEC,WACS,CAAC;AACzB,YAAY,IAAI,EAAE,kBAAkB,CAAC,QAAQ;AAC7C,SAAS;AACT,aAAa,QAAQ;AACrB,KAAK;AACL,SAAS,QAAQ;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,wBAAwB,GAAGX,MAAQ,CAAC;AACjD;AACA;AACA;AACA,IAAI,YAAY,EAAEQ,MAAQ,CAACZ,MAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE;AACrE;AACA;AACA;AACA,IAAI,QAAQ,EAAEgB,MACC,CAAC;AAChB;AACA;AACA;AACA;AACA,QAAQ,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC9C;AACA;AACA;AACA,QAAQ,KAAK,EAAE,kBAAkB,CAAC,QAAQ;AAC1C,KAAK;AACL,SAAS,QAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,WAAW,EAAE,2BAA2B,CAAC,QAAQ,EAAE;AACvD;AACA;AACA;AACA,IAAI,KAAK,EAAEA,MACI,CAAC;AAChB;AACA;AACA;AACA,QAAQ,WAAW,EAAEL,OAAS,EAAE,CAAC,QAAQ;AACzC,KAAK;AACL,SAAS,QAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,KAAK,EAAE,2BAA2B,CAAC,QAAQ;AAC/C,CAAC,CAAC;AACK,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC5E;AACA;AACA;AACA,IAAI,eAAe,EAAEX,MAAQ,EAAE;AAC/B,IAAI,YAAY,EAAE,wBAAwB;AAC1C,IAAI,UAAU,EAAE;AAChB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC5D,IAAI,MAAM,EAAEM,OAAS,CAAC,YAAY,CAAC;AACnC,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AAEF;AACA;AACA;AACO,MAAM,wBAAwB,GAAGF,MAAQ,CAAC;AACjD;AACA;AACA;AACA,IAAI,YAAY,EAAEQ,MAAQ,CAACZ,MAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE;AACrE;AACA;AACA;AACA,IAAI,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC1C;AACA;AACA;AACA,IAAI,WAAW,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC9C;AACA;AACA;AACA,IAAI,OAAO,EAAEgB,MACE,CAAC;AAChB;AACA;AACA;AACA,QAAQ,WAAW,EAAEL,OAAS,EAAE,CAAC,QAAQ;AACzC,KAAK;AACL,SAAS,QAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,SAAS,EAAEK,MACA,CAAC;AAChB;AACA;AACA;AACA,QAAQ,SAAS,EAAEL,OAAS,EAAE,CAAC,QAAQ,EAAE;AACzC;AACA;AACA;AACA,QAAQ,WAAW,EAAEA,OAAS,EAAE,CAAC,QAAQ;AACzC,KAAK;AACL,SAAS,QAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,KAAK,EAAEK,MACI,CAAC;AAChB;AACA;AACA;AACA,QAAQ,WAAW,EAAEL,OAAS,EAAE,CAAC,QAAQ;AACzC,KAAK;AACL,SAAS,QAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,KAAK,EAAE,2BAA2B,CAAC,QAAQ;AAC/C,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,YAAY,CAAC,MAAM,CAAC;AAC1D;AACA;AACA;AACA,IAAI,eAAe,EAAEX,MAAQ,EAAE;AAC/B,IAAI,YAAY,EAAE,wBAAwB;AAC1C,IAAI,UAAU,EAAE,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,6BAA6B,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACvE,IAAI,MAAM,EAAEM,OAAS,CAAC,2BAA2B,CAAC;AAClD,IAAI,MAAM,EAAE,yBAAyB,CAAC,QAAQ;AAC9C,CAAC,CAAC;AACK,MAAM,yBAAyB,GAAG,CAAC,KAAK,KAAK,6BAA6B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO;AAC1G;AACA;AACA;AACA;AACO,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC;AACtD,IAAI,MAAM,EAAEA,OAAS,CAAC,MAAM,CAAC;AAC7B,IAAI,MAAM,EAAE,uBAAuB,CAAC,QAAQ;AAC5C,CAAC,CAAC;AACF;AACO,MAAM,cAAc,GAAGF,MAAQ,CAAC;AACvC;AACA;AACA;AACA,IAAI,QAAQ,EAAEH,QAAQ,EAAE;AACxB;AACA;AACA;AACA,IAAI,KAAK,EAAEgB,QAAU,CAAChB,QAAQ,EAAE,CAAC;AACjC;AACA;AACA;AACA,IAAI,OAAO,EAAEgB,QAAU,CAACjB,MAAQ,EAAE;AAClC,CAAC,CAAC;AACK,MAAM,gCAAgC,GAAGI,MAAQ,CAAC;AACzD,IAAI,GAAG,yBAAyB,CAAC,KAAK;AACtC,IAAI,GAAG,cAAc,CAAC,KAAK;AAC3B;AACA;AACA;AACA,IAAI,aAAa,EAAE;AACnB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,MAAM,0BAA0B,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACpE,IAAI,MAAM,EAAEE,OAAS,CAAC,wBAAwB,CAAC;AAC/C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACK,MAAM,4BAA4B,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC3E;AACA;AACA;AACA;AACA,IAAI,MAAM,EAAE,YAAY,CAAC,QAAQ;AACjC,CAAC,CAAC;AACF;AACO,MAAM,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3D,IAAI,MAAM,EAAE,4BAA4B,CAAC,QAAQ;AACjD,CAAC,CAAC;AACK,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAE,YAAY,CAAC,QAAQ;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,gBAAgB,GAAGG,OAAM,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACzG;AACA;AACA;AACA;AACO,MAAM,UAAU,GAAGL,MAAQ,CAAC;AACnC,IAAI,MAAM,EAAEJ,MAAQ,EAAE;AACtB,IAAI,MAAM,EAAE,gBAAgB;AAC5B;AACA;AACA;AACA;AACA,IAAI,GAAG,EAAED,KAAO,CAAC,CAACE,QAAQ,EAAE,EAAEE,OAAM,EAAE,CAAC,CAAC;AACxC;AACA;AACA;AACA,IAAI,SAAS,EAAEH,MAAQ,EAAE;AACzB;AACA;AACA;AACA,IAAI,aAAa,EAAEA,MAAQ,EAAE;AAC7B,IAAI,YAAY,EAAEiB,QAAU,CAAChB,QAAQ,EAAE,CAAC;AACxC;AACA;AACA;AACA,IAAI,aAAa,EAAEgB,QAAU,CAACjB,MAAQ,EAAE;AACxC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,YAAY,CAAC,MAAM,CAAC;AAC1D,IAAI,IAAI,EAAE;AACV,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kCAAkC,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7F;AACA;AACA;AACO,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACtE,IAAI,MAAM,EAAEM,OAAS,CAAC,4BAA4B,CAAC;AACnD,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC;AACzD,IAAI,MAAM,EAAEA,OAAS,CAAC,WAAW,CAAC;AAClC,IAAI,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC;AAC3C,QAAQ,MAAM,EAAEN,MAAQ;AACxB,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;AACjE;AACA;AACA;AACO,MAAM,2BAA2B,GAAG,aAAa,CAAC,MAAM,CAAC;AAChE,IAAI,MAAM,EAAEM,OAAS,CAAC,cAAc,CAAC;AACrC,IAAI,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC;AAC3C,QAAQ,MAAM,EAAEN,MAAQ;AACxB,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AAC0C,YAAY,CAAC,KAAK;AAC5D;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACpE,IAAI,MAAM,EAAEM,OAAS,CAAC,YAAY;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAClE,IAAI,KAAK,EAAEE,KAAO,CAAC,UAAU;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC5D,IAAI,MAAM,EAAEF,OAAS,CAAC,cAAc,CAAC;AACrC,IAAI,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC;AAC3C,QAAQ,MAAM,EAAEN,MAAQ;AACxB,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;AACpE;AACA;AACA;AACA;AACO,MAAM,sBAAsB,GAAGI,MAAQ,CAAC;AAC/C;AACA;AACA;AACA,IAAI,GAAG,EAAEJ,MAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,QAAQ,EAAEiB,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACpC;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACK,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACxE;AACA;AACA;AACA,IAAI,IAAI,EAAEP,MAAQ;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY,GAAGA,MAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI;AAC9C,IAAI,IAAI;AACR;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC;AACjB,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM;AACV,QAAQ,OAAO,KAAK;AACpB;AACA,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACjC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACxE;AACA;AACA;AACA,IAAI,IAAI,EAAE;AACV,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,UAAU,GAAGS,OAAM,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACvD;AACA;AACA;AACO,MAAM,iBAAiB,GAAGL,MAAQ,CAAC;AAC1C;AACA;AACA;AACA,IAAI,QAAQ,EAAEI,KAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;AAC5C;AACA;AACA;AACA,IAAI,QAAQ,EAAEP,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACjD;AACA;AACA;AACA,IAAI,YAAY,EAAEiB,QAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ;AAC3D,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,cAAc,GAAGd,MAAQ,CAAC;AACvC,IAAI,GAAG,kBAAkB,CAAC,KAAK;AAC/B,IAAI,GAAG,WAAW,CAAC,KAAK;AACxB;AACA;AACA;AACA,IAAI,GAAG,EAAEJ,MAAQ,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,EAAEiB,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACvC;AACA;AACA;AACA,IAAI,QAAQ,EAAEiB,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACpC;AACA;AACA;AACA,IAAI,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEiB,QAAU,CAACf,WAAa,CAAC,EAAE,CAAC;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAGE,MAAQ,CAAC;AAC/C,IAAI,GAAG,kBAAkB,CAAC,KAAK;AAC/B,IAAI,GAAG,WAAW,CAAC,KAAK;AACxB;AACA;AACA;AACA,IAAI,WAAW,EAAEJ,MAAQ,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,EAAEiB,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACvC;AACA;AACA;AACA,IAAI,QAAQ,EAAEiB,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACpC;AACA;AACA;AACA,IAAI,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEiB,QAAU,CAACf,WAAa,CAAC,EAAE,CAAC;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACxE,IAAI,MAAM,EAAEI,OAAS,CAAC,gBAAgB;AACtC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAAC;AACtE,IAAI,SAAS,EAAEE,KAAO,CAAC,cAAc;AACrC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kCAAkC,GAAG,sBAAsB,CAAC,MAAM,CAAC;AAChF,IAAI,MAAM,EAAEF,OAAS,CAAC,0BAA0B;AAChD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,iCAAiC,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAC9E,IAAI,iBAAiB,EAAEE,KAAO,CAAC,sBAAsB;AACrD,CAAC,CAAC;AACK,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC1E;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,EAAER,MAAQ;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,+BAA+B,GAAG,2BAA2B;AAC1E;AACA;AACA;AACO,MAAM,yBAAyB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC9D,IAAI,MAAM,EAAEM,OAAS,CAAC,gBAAgB,CAAC;AACvC,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,wBAAwB,GAAG,YAAY,CAAC,MAAM,CAAC;AAC5D,IAAI,QAAQ,EAAEE,KAAO,CAACT,KAAO,CAAC,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;AACvF,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qCAAqC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC/E,IAAI,MAAM,EAAEO,OAAS,CAAC,sCAAsC,CAAC;AAC7D,IAAI,MAAM,EAAE,yBAAyB,CAAC,QAAQ;AAC9C,CAAC,CAAC;AACK,MAAM,4BAA4B,GAAG,2BAA2B;AACvE;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3D,IAAI,MAAM,EAAEA,OAAS,CAAC,qBAAqB,CAAC;AAC5C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACK,MAAM,8BAA8B,GAAG,2BAA2B;AACzE;AACA;AACA;AACO,MAAM,wBAAwB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC7D,IAAI,MAAM,EAAEA,OAAS,CAAC,uBAAuB,CAAC;AAC9C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,uCAAuC,GAAG,yBAAyB,CAAC,MAAM,CAAC;AACxF;AACA;AACA;AACA,IAAI,GAAG,EAAEN,MAAQ;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,iCAAiC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC3E,IAAI,MAAM,EAAEM,OAAS,CAAC,iCAAiC,CAAC;AACxD,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAGF,MAAQ,CAAC;AAC7C;AACA;AACA;AACA,IAAI,IAAI,EAAEJ,MAAQ,EAAE;AACpB;AACA;AACA;AACA,IAAI,WAAW,EAAEiB,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACvC;AACA;AACA;AACA,IAAI,QAAQ,EAAEiB,QAAU,CAACN,OAAS,EAAE;AACpC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,YAAY,GAAGP,MAAQ,CAAC;AACrC,IAAI,GAAG,kBAAkB,CAAC,KAAK;AAC/B,IAAI,GAAG,WAAW,CAAC,KAAK;AACxB;AACA;AACA;AACA,IAAI,WAAW,EAAEa,QAAU,CAACjB,MAAQ,EAAE,CAAC;AACvC;AACA;AACA;AACA,IAAI,SAAS,EAAEiB,QAAU,CAACT,KAAO,CAAC,oBAAoB,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAES,QAAU,CAACf,WAAa,CAAC,EAAE,CAAC;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACtE,IAAI,MAAM,EAAEI,OAAS,CAAC,cAAc;AACpC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,MAAM,CAAC;AACpE,IAAI,OAAO,EAAEE,KAAO,CAAC,YAAY;AACjC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,4BAA4B,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC3E;AACA;AACA;AACA,IAAI,IAAI,EAAER,MAAQ,EAAE;AACpB;AACA;AACA;AACA,IAAI,SAAS,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEA,MAAQ,EAAE,CAAC,CAAC,QAAQ;AACxD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3D,IAAI,MAAM,EAAEM,OAAS,CAAC,aAAa,CAAC;AACpC,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,iBAAiB,GAAGF,MAAQ,CAAC;AAC1C,IAAI,IAAI,EAAEE,OAAS,CAAC,MAAM,CAAC;AAC3B;AACA;AACA;AACA,IAAI,IAAI,EAAEN,MAAQ,EAAE;AACpB;AACA;AACA;AACA,IAAI,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAGH,MAAQ,CAAC;AAC3C,IAAI,IAAI,EAAEE,OAAS,CAAC,OAAO,CAAC;AAC5B;AACA;AACA;AACA,IAAI,IAAI,EAAE,YAAY;AACtB;AACA;AACA;AACA,IAAI,QAAQ,EAAEN,MAAQ,EAAE;AACxB;AACA;AACA;AACA,IAAI,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAGH,MAAQ,CAAC;AAC3C,IAAI,IAAI,EAAEE,OAAS,CAAC,OAAO,CAAC;AAC5B;AACA;AACA;AACA,IAAI,IAAI,EAAE,YAAY;AACtB;AACA;AACA;AACA,IAAI,QAAQ,EAAEN,MAAQ,EAAE;AACxB;AACA;AACA;AACA,IAAI,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,oBAAoB,GAAGH,MAAQ,CAAC;AAC7C,IAAI,IAAI,EAAEE,OAAS,CAAC,UAAU,CAAC;AAC/B;AACA;AACA;AACA;AACA,IAAI,IAAI,EAAEN,MAAQ,EAAE;AACpB;AACA;AACA;AACA;AACA,IAAI,EAAE,EAAEA,MAAQ,EAAE;AAClB;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC;AAC5C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEK,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAGH,MAAQ,CAAC;AAC/C,IAAI,IAAI,EAAEE,OAAS,CAAC,UAAU,CAAC;AAC/B,IAAI,QAAQ,EAAEP,KAAO,CAAC,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;AAC/E;AACA;AACA;AACA,IAAI,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEa,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;AACxD,IAAI,IAAI,EAAED,OAAS,CAAC,eAAe;AACnC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAGP,KAAO,CAAC;AAC1C,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,kBAAkB;AACtB,IAAI,kBAAkB;AACtB,IAAI;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,mBAAmB,GAAGK,MAAQ,CAAC;AAC5C,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE;AACb,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC;AACzD;AACA;AACA;AACA,IAAI,WAAW,EAAEJ,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,QAAQ,EAAEQ,KAAO,CAAC,mBAAmB;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,mCAAmC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC7E,IAAI,MAAM,EAAEF,OAAS,CAAC,oCAAoC,CAAC;AAC3D,IAAI,MAAM,EAAE,yBAAyB,CAAC,QAAQ;AAC9C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,qBAAqB,GAAGF,MAAQ,CAAC;AAC9C;AACA;AACA;AACA,IAAI,KAAK,EAAEJ,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,EAAEW,OAAS,EAAE,CAAC,QAAQ,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,EAAEA,OAAS,EAAE,CAAC,QAAQ,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,EAAEA,OAAS,EAAE,CAAC,QAAQ,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,EAAEA,OAAS,EAAE,CAAC,QAAQ;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,mBAAmB,GAAGP,MAAQ,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,EAAEK,OAAM,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ;AACvE,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,UAAU,GAAGL,MAAQ,CAAC;AACnC,IAAI,GAAG,kBAAkB,CAAC,KAAK;AAC/B,IAAI,GAAG,WAAW,CAAC,KAAK;AACxB;AACA;AACA;AACA,IAAI,WAAW,EAAEJ,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC;AACA;AACA;AACA;AACA,IAAI,WAAW,EAAEgB,MACF,CAAC;AAChB,QAAQ,IAAI,EAAEV,OAAS,CAAC,QAAQ,CAAC;AACjC,QAAQ,UAAU,EAAEM,MAAQ,CAACZ,MAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE;AACvE,QAAQ,QAAQ,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ;AAC9C,KAAK;AACL,SAAS,QAAQ,CAACO,OAAS,EAAE,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,EAAES,MACH,CAAC;AAChB,QAAQ,IAAI,EAAEV,OAAS,CAAC,QAAQ,CAAC;AACjC,QAAQ,UAAU,EAAEM,MAAQ,CAACZ,MAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE;AACvE,QAAQ,QAAQ,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ;AAC9C,KAAK;AACL,SAAS,QAAQ,CAACO,OAAS,EAAE;AAC7B,SAAS,QAAQ,EAAE;AACnB;AACA;AACA;AACA,IAAI,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE;AACjD;AACA;AACA;AACA,IAAI,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE;AAC7C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEK,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAAC;AACpE,IAAI,MAAM,EAAED,OAAS,CAAC,YAAY;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC;AAClE,IAAI,KAAK,EAAEE,KAAO,CAAC,UAAU;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,EAAEA,KAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AACpD;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,EAAEI,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,EAAEI,OAAS,EAAE,CAAC,QAAQ;AACjC,CAAC,CAAC;AACF;AACA;AACA;AACiD,oBAAoB,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;AAC7F,IAAI,UAAU,EAAEJ,OAAS;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,2BAA2B,GAAG,gCAAgC,CAAC,MAAM,CAAC;AACnF;AACA;AACA;AACA,IAAI,IAAI,EAAEP,MAAQ,EAAE;AACpB;AACA;AACA;AACA,IAAI,SAAS,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACzD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC1D,IAAI,MAAM,EAAED,OAAS,CAAC,YAAY,CAAC;AACnC,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,iCAAiC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC3E,IAAI,MAAM,EAAEA,OAAS,CAAC,kCAAkC,CAAC;AACzD,IAAI,MAAM,EAAE,yBAAyB,CAAC,QAAQ;AAC9C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,4BAA4B,GAAGF,MAAQ,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,EAAEO,OAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAEV,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG;AAC1D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAGQ,OAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC3H;AACA;AACA;AACO,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC1E;AACA;AACA;AACA,IAAI,KAAK,EAAE;AACX,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC1D,IAAI,MAAM,EAAEH,OAAS,CAAC,kBAAkB,CAAC;AACzC,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sCAAsC,GAAG,yBAAyB,CAAC,MAAM,CAAC;AACvF;AACA;AACA;AACA,IAAI,KAAK,EAAE,kBAAkB;AAC7B;AACA;AACA;AACA,IAAI,MAAM,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACjC;AACA;AACA;AACA,IAAI,IAAI,EAAEO,OAAS;AACnB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC1E,IAAI,MAAM,EAAED,OAAS,CAAC,uBAAuB,CAAC;AAC9C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,eAAe,GAAGF,MAAQ,CAAC;AACxC;AACA;AACA;AACA,IAAI,IAAI,EAAEJ,MAAQ,EAAE,CAAC,QAAQ;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAGI,MAAQ,CAAC;AAC/C;AACA;AACA;AACA,IAAI,KAAK,EAAEI,KAAO,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;AAC9C;AACA;AACA;AACA,IAAI,YAAY,EAAEP,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACrD;AACA;AACA;AACA,IAAI,aAAa,EAAEA,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACtD;AACA;AACA;AACA,IAAI,oBAAoB,EAAEA,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ;AAC3D,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,gBAAgB,GAAGG,MAAQ,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,EAAEK,OAAM,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,uBAAuB,GAAGL,MAAQ,CAAC;AAChD,IAAI,IAAI,EAAEE,OAAS,CAAC,aAAa,CAAC;AAClC,IAAI,SAAS,EAAEN,MAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;AAC5F,IAAI,OAAO,EAAEQ,KAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AACpD,IAAI,iBAAiB,EAAEJ,MAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;AACtD,IAAI,OAAO,EAAEO,OAAS,EAAE,CAAC,QAAQ,EAAE;AACnC;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEC,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,qBAAqB,GAAGY,kBAAoB,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAC9H;AACA;AACA;AACA;AACO,MAAM,iCAAiC,GAAGA,kBAAoB,CAAC,MAAM,EAAE;AAC9E,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AACxB,IAAI;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAGf,MAAQ,CAAC;AAC9C,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAEL,KAAO,CAAC,CAAC,iCAAiC,EAAES,KAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;AACrG;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEI,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,gCAAgC,CAAC,MAAM,CAAC;AACxF,IAAI,QAAQ,EAAEC,KAAO,CAAC,qBAAqB,CAAC;AAC5C;AACA;AACA;AACA,IAAI,gBAAgB,EAAE,sBAAsB,CAAC,QAAQ,EAAE;AACvD;AACA;AACA;AACA,IAAI,YAAY,EAAER,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,EAAES,OAAM,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC3E,IAAI,WAAW,EAAER,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,EAAEA,QAAQ,EAAE,CAAC,GAAG,EAAE;AAC/B,IAAI,aAAa,EAAEO,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACjD;AACA;AACA;AACA,IAAI,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE;AAC3C;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEQ,KAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAE,gBAAgB,CAAC,QAAQ;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,0BAA0B,GAAG,aAAa,CAAC,MAAM,CAAC;AAC/D,IAAI,MAAM,EAAEF,OAAS,CAAC,wBAAwB,CAAC;AAC/C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,MAAM,yBAAyB,GAAG,YAAY,CAAC,MAAM,CAAC;AAC7D;AACA;AACA;AACA,IAAI,KAAK,EAAEN,MAAQ,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAEiB,QAAU,CAACR,OAAM,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAACT,MAAQ,EAAE,CAAC,CAAC;AAC3F,IAAI,IAAI,EAAE,UAAU;AACpB;AACA;AACA;AACA,IAAI,OAAO,EAAE;AACb,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,kCAAkC,GAAG,YAAY,CAAC,MAAM,CAAC;AACtE;AACA;AACA;AACA,IAAI,KAAK,EAAEA,MAAQ,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,EAAEiB,QAAU,CAACR,OAAM,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAACT,MAAQ,EAAE,CAAC,CAAC;AACtG,IAAI,IAAI,EAAE,UAAU;AACpB;AACA;AACA;AACA,IAAI,OAAO,EAAED,KAAO,CAAC,CAAC,iCAAiC,EAAES,KAAO,CAAC,iCAAiC,CAAC,CAAC;AACpG,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAGJ,MAAQ,CAAC;AAC5C,IAAI,IAAI,EAAEE,OAAS,CAAC,SAAS,CAAC;AAC9B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,OAAO,EAAEW,OAAS,EAAE,CAAC,QAAQ;AACjC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAGP,MAAQ,CAAC;AAC3C,IAAI,IAAI,EAAEE,OAAS,CAAC,QAAQ,CAAC;AAC7B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,SAAS,EAAEC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACpC,IAAI,SAAS,EAAEA,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACpC,IAAI,MAAM,EAAEQ,OAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpE,IAAI,OAAO,EAAET,MAAQ,EAAE,CAAC,QAAQ;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAGI,MAAQ,CAAC;AAC3C,IAAI,IAAI,EAAEK,OAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACvC,IAAI,KAAK,EAAET,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,OAAO,EAAEC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAI,OAAO,EAAEA,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAClC,IAAI,OAAO,EAAEA,QAAQ,EAAE,CAAC,QAAQ;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,oCAAoC,GAAGG,MAAQ,CAAC;AAC7D,IAAI,IAAI,EAAEE,OAAS,CAAC,QAAQ,CAAC;AAC7B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,IAAI,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC;AAC7B,IAAI,OAAO,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kCAAkC,GAAGI,MAAQ,CAAC;AAC3D,IAAI,IAAI,EAAEE,OAAS,CAAC,QAAQ,CAAC;AAC7B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,KAAK,EAAEQ,KAAO,CAACJ,MAAQ,CAAC;AAC5B,QAAQ,KAAK,EAAEJ,MAAQ,EAAE;AACzB,QAAQ,KAAK,EAAEA,MAAQ;AACvB,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,4BAA4B,GAAGI,MAAQ,CAAC;AACrD,IAAI,IAAI,EAAEE,OAAS,CAAC,QAAQ,CAAC;AAC7B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,IAAI,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC;AAC7B,IAAI,SAAS,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC7C,IAAI,OAAO,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAChC,CAAC,CAAC;AACF;AACO,MAAM,4BAA4B,GAAGD,KAAO,CAAC,CAAC,oCAAoC,EAAE,kCAAkC,CAAC,CAAC;AAC/H;AACA;AACA;AACO,MAAM,mCAAmC,GAAGK,MAAQ,CAAC;AAC5D,IAAI,IAAI,EAAEE,OAAS,CAAC,OAAO,CAAC;AAC5B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,QAAQ,EAAEC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAI,QAAQ,EAAEA,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAI,KAAK,EAAEG,MAAQ,CAAC;AACpB,QAAQ,IAAI,EAAEE,OAAS,CAAC,QAAQ,CAAC;AACjC,QAAQ,IAAI,EAAEE,KAAO,CAACR,MAAQ,EAAE;AAChC,KAAK,CAAC;AACN,IAAI,OAAO,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,iCAAiC,GAAGI,MAAQ,CAAC;AAC1D,IAAI,IAAI,EAAEE,OAAS,CAAC,OAAO,CAAC;AAC5B,IAAI,KAAK,EAAEN,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,QAAQ,EAAEC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAI,QAAQ,EAAEA,QAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAI,KAAK,EAAEG,MAAQ,CAAC;AACpB,QAAQ,KAAK,EAAEI,KAAO,CAACJ,MAAQ,CAAC;AAChC,YAAY,KAAK,EAAEJ,MAAQ,EAAE;AAC7B,YAAY,KAAK,EAAEA,MAAQ;AAC3B,SAAS,CAAC;AACV,KAAK,CAAC;AACN,IAAI,OAAO,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ;AACzC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,2BAA2B,GAAGD,KAAO,CAAC,CAAC,mCAAmC,EAAE,iCAAiC,CAAC,CAAC;AAC5H;AACA;AACA;AACO,MAAM,gBAAgB,GAAGA,KAAO,CAAC,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,2BAA2B,CAAC,CAAC;AAClI;AACA;AACA;AACO,MAAM,+BAA+B,GAAGA,KAAO,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AACvI;AACA;AACA;AACO,MAAM,6BAA6B,GAAG,gCAAgC,CAAC,MAAM,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,EAAEO,OAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;AACtC;AACA;AACA;AACA,IAAI,OAAO,EAAEN,MAAQ,EAAE;AACvB;AACA;AACA;AACA;AACA,IAAI,eAAe,EAAEI,MAAQ,CAAC;AAC9B,QAAQ,IAAI,EAAEE,OAAS,CAAC,QAAQ,CAAC;AACjC,QAAQ,UAAU,EAAEM,MAAQ,CAACZ,MAAQ,EAAE,EAAE,+BAA+B,CAAC;AACzE,QAAQ,QAAQ,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ;AAC9C,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,4BAA4B,GAAG,gCAAgC,CAAC,MAAM,CAAC;AACpF;AACA;AACA;AACA,IAAI,IAAI,EAAEM,OAAS,CAAC,KAAK,CAAC;AAC1B;AACA;AACA;AACA,IAAI,OAAO,EAAEN,MAAQ,EAAE;AACvB;AACA;AACA;AACA;AACA,IAAI,aAAa,EAAEA,MAAQ,EAAE;AAC7B;AACA;AACA;AACA,IAAI,GAAG,EAAEA,MAAQ,EAAE,CAAC,GAAG;AACvB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,yBAAyB,GAAGD,KAAO,CAAC,CAAC,6BAA6B,EAAE,4BAA4B,CAAC,CAAC;AAC/G;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;AACxD,IAAI,MAAM,EAAEO,OAAS,CAAC,oBAAoB,CAAC;AAC3C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,MAAM,2CAA2C,GAAG,yBAAyB,CAAC,MAAM,CAAC;AAC5F;AACA;AACA;AACA,IAAI,aAAa,EAAEN,MAAQ;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,MAAM,qCAAqC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC/E,IAAI,MAAM,EAAEM,OAAS,CAAC,oCAAoC,CAAC;AAC3D,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,EAAEG,OAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,EAAEI,UAAY,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC,EAAED,MAAQ,CAACZ,MAAQ,EAAE,EAAED,KAAO,CAAC,CAACC,MAAQ,EAAE,EAAEC,QAAQ,EAAE,EAAEU,OAAS,EAAE,EAAEH,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACvK,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,+BAA+B,GAAGI,MAAQ,CAAC;AACxD,IAAI,IAAI,EAAEE,OAAS,CAAC,cAAc,CAAC;AACnC;AACA;AACA;AACA,IAAI,GAAG,EAAEN,MAAQ;AACjB,CAAC,CAAC;AAKF;AACA;AACA;AACO,MAAM,qBAAqB,GAAGI,MAAQ,CAAC;AAC9C,IAAI,IAAI,EAAEE,OAAS,CAAC,YAAY,CAAC;AACjC;AACA;AACA;AACA,IAAI,IAAI,EAAEN,MAAQ;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC;AAC1E,IAAI,GAAG,EAAED,KAAO,CAAC,CAAC,qBAAqB,EAAE,+BAA+B,CAAC,CAAC;AAC1E;AACA;AACA;AACA,IAAI,QAAQ,EAAEK,MAAQ,CAAC;AACvB;AACA;AACA;AACA,QAAQ,IAAI,EAAEJ,MAAQ,EAAE;AACxB;AACA;AACA;AACA,QAAQ,KAAK,EAAEA,MAAQ;AACvB,KAAK,CAAC;AACN,IAAI,OAAO,EAAEgB,MACE,CAAC;AAChB;AACA;AACA;AACA,QAAQ,SAAS,EAAEJ,MAAQ,CAACZ,MAAQ,EAAE,EAAEA,MAAQ,EAAE,CAAC,CAAC,QAAQ;AAC5D,KAAK;AACL,SAAS,QAAQ;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC1D,IAAI,MAAM,EAAEM,OAAS,CAAC,qBAAqB,CAAC;AAC5C,IAAI,MAAM,EAAE;AACZ,CAAC,CAAC;AAaF;AACA;AACA;AACO,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,CAAC;AACxD,IAAI,UAAU,EAAEJ,WAAa,CAAC;AAC9B;AACA;AACA;AACA,QAAQ,MAAM,EAAEM,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C;AACA;AACA;AACA,QAAQ,KAAK,EAAEiB,QAAU,CAAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC;AAC3C;AACA;AACA;AACA,QAAQ,OAAO,EAAEgB,QAAU,CAACN,OAAS,EAAE;AACvC,KAAK;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,UAAU,GAAGP,MAAQ,CAAC;AACnC;AACA;AACA;AACA,IAAI,GAAG,EAAEJ,MAAQ,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;AACzC;AACA;AACA;AACA,IAAI,IAAI,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAC/B;AACA;AACA;AACA;AACA,IAAI,KAAK,EAAEY,MAAQ,CAACZ,MAAQ,EAAE,EAAEO,OAAS,EAAE,CAAC,CAAC,QAAQ;AACrD,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,sBAAsB,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3D,IAAI,MAAM,EAAED,OAAS,CAAC,YAAY,CAAC;AACnC,IAAI,MAAM,EAAE,uBAAuB,CAAC,QAAQ;AAC5C,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC;AACzD,IAAI,KAAK,EAAEE,KAAO,CAAC,UAAU;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,kCAAkC,GAAG,kBAAkB,CAAC,MAAM,CAAC;AAC5E,IAAI,MAAM,EAAEF,OAAS,CAAC,kCAAkC,CAAC;AACzD,IAAI,MAAM,EAAE,yBAAyB,CAAC,QAAQ;AAC9C,CAAC,CAAC;AACF;AACmCP,KAAO,CAAC;AAC3C,IAAI,iBAAiB;AACrB,IAAI,uBAAuB;AAC3B,IAAI,qBAAqB;AACzB,IAAI,qBAAqB;AACzB,IAAI,sBAAsB;AAC1B,IAAI,wBAAwB;AAC5B,IAAI,0BAA0B;AAC9B,IAAI,kCAAkC;AACtC,IAAI,yBAAyB;AAC7B,IAAI,sBAAsB;AAC1B,IAAI,wBAAwB;AAC5B,IAAI,qBAAqB;AACzB,IAAI,sBAAsB;AAC1B,IAAI,oBAAoB;AACxB,IAAI,2BAA2B;AAC/B,IAAI,sBAAsB;AAC1B,IAAI;AACJ,CAAC;AACuCA,KAAO,CAAC;AAChD,IAAI,2BAA2B;AAC/B,IAAI,0BAA0B;AAC9B,IAAI,6BAA6B;AACjC,IAAI,kCAAkC;AACtC,IAAI;AACJ,CAAC;AACiCA,KAAO,CAAC;AAC1C,IAAI,iBAAiB;AACrB,IAAI,yBAAyB;AAC7B,IAAI,kCAAkC;AACtC,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;AACzB,IAAI,mBAAmB;AACvB,IAAI,qBAAqB;AACzB,IAAI;AACJ,CAAC;AACD;AACmCA,KAAO,CAAC;AAC3C,IAAI,iBAAiB;AACrB,IAAI,0BAA0B;AAC9B,IAAI,mBAAmB;AACvB,IAAI,sBAAsB;AAC1B,IAAI,oBAAoB;AACxB,IAAI,2BAA2B;AAC/B,IAAI,sBAAsB;AAC1B,IAAI;AACJ,CAAC;AACuCA,KAAO,CAAC;AAChD,IAAI,2BAA2B;AAC/B,IAAI,0BAA0B;AAC9B,IAAI,gCAAgC;AACpC,IAAI,iCAAiC;AACrC,IAAI,qCAAqC;AACzC,IAAI,iCAAiC;AACrC,IAAI,mCAAmC;AACvC,IAAI,4BAA4B;AAChC,IAAI;AACJ,CAAC;AACiCA,KAAO,CAAC;AAC1C,IAAI,iBAAiB;AACrB,IAAI,sBAAsB;AAC1B,IAAI,oBAAoB;AACxB,IAAI,qBAAqB;AACzB,IAAI,uBAAuB;AAC3B,IAAI,yBAAyB;AAC7B,IAAI,iCAAiC;AACrC,IAAI,wBAAwB;AAC5B,IAAI,oBAAoB;AACxB,IAAI,qBAAqB;AACzB,IAAI,mBAAmB;AACvB,IAAI,qBAAqB;AACzB,IAAI;AACJ,CAAC;AACM,MAAM,QAAQ,SAAS,KAAK,CAAC;AACpC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AACrC,QAAQ,KAAK,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,UAAU;AAC9B;AACA;AACA;AACA;AACA,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1C;AACA,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC,sBAAsB,IAAI,IAAI,EAAE;AAC/D,YAAY,MAAM,SAAS,GAAG,IAAI;AAClC,YAAY,IAAI,SAAS,CAAC,YAAY,EAAE;AACxC,gBAAgB,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;AACvF;AACA;AACA;AACA,QAAQ,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,2BAA2B,SAAS,QAAQ,CAAC;AAC1D,IAAI,WAAW,CAAC,YAAY,EAAE,OAAO,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE;AACzG,QAAQ,KAAK,CAAC,SAAS,CAAC,sBAAsB,EAAE,OAAO,EAAE;AACzD,YAAY,YAAY,EAAE;AAC1B,SAAS,CAAC;AACV;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE,YAAY,IAAI,EAAE;AAC5C;AACA;;AClgEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,CAAC,MAAM,EAAE;AACnC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW;AAClF;;ACuLsB,IAAI,GAAG,CAAC,8DAA8D;;ACrM5F;AACA;AACA;AACA;AACA;AA2BO,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACzC,IAAI,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;AACxC,IAAI,MAAM,YAAY,GAAG,KAAK,EAAE,MAAM;AACtC,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;AAC7D;AACA,IAAI,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC;AAC/C,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACjE;AACA,IAAI,OAAO,KAAK;AAChB;AACO,SAAS,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE;AAC9C,IAAI,MAAM,MAAM,GAAG3N,WAAS,CAAC,MAAM,EAAE,IAAI,CAAC;AAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACzB,QAAQ,MAAM,MAAM,CAAC,KAAK;AAC1B;AACA,IAAI,OAAO,MAAM,CAAC,IAAI;AACtB;;AC7CA;AACA;AACA;AACO,MAAM,4BAA4B,GAAG,KAAK;AACjD;AACA;AACA;AACA;AACO,MAAM,QAAQ,CAAC;AACtB,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC;AAClC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACzC,QAAQ,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,EAAE;AACxD,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAE;AAC9C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,IAAI,CAAC,8BAA8B,GAAG,IAAI,GAAG,EAAE;AACvD;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAE;AAC5C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,YAAY,IAAI;AACjF,YAAY,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AACxC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EAAE,YAAY,IAAI;AAChF,YAAY,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;AAC1C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;AAChD;AACA,QAAQ,QAAQ,KAAK,EAAE,CAAC,CAAC;AACzB;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,EAAE,SAAS;AAC7C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,EAAE,gBAAgB;AAC3D,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK;AACnF,gBAAgB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AAClG,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,yCAAyC,CAAC;AAC1G;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,oBAAoB,GAAG;AACvB,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK;AAC1F,gBAAgB,MAAM,gBAAgB,GAAG,YAAY;AACrD,oBAAoB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AACxD;AACA,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAChD,wBAAwB,IAAI,aAAa;AACzC,wBAAwB,QAAQ,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG;AAChH;AACA,4BAA4B,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;AACrG,gCAAgC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO;AACrE,gCAAgC,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE;AAC5D;AACA,gCAAgC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AACtF,gCAAgC,IAAI,QAAQ,EAAE;AAC9C;AACA,oCAAoC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AAC5E;AACA,oCAAoC,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE;AAC3E,wCAAwC,QAAQ,CAAC,OAAO,CAAC;AACzD;AACA,yCAAyC;AACzC;AACA,wCAAwC,MAAM,YAAY,GAAG,OAAO;AACpE,wCAAwC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;AAChJ,wCAAwC,QAAQ,CAAC,KAAK,CAAC;AACvD;AACA;AACA,qCAAqC;AACrC;AACA,oCAAoC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;AAChH,oCAAoC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACvH;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,4BAA4B,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AACrH;AACA;AACA;AACA,oBAAoB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AACvF,oBAAoB,IAAI,CAAC,IAAI,EAAE;AAC/B,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AAChG;AACA;AACA,oBAAoB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAClD;AACA,wBAAwB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;AAC3E;AACA,wBAAwB,OAAO,MAAM,gBAAgB,EAAE;AACvD;AACA;AACA,oBAAoB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACjD,wBAAwB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AACnG,wBAAwB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACpD,wBAAwB,OAAO;AAC/B,4BAA4B,GAAG,MAAM;AACrC,4BAA4B,KAAK,EAAE;AACnC,gCAAgC,GAAG,MAAM,CAAC,KAAK;AAC/C,gCAAgC,CAAC,qBAAqB,GAAG;AACzD,oCAAoC,MAAM,EAAE;AAC5C;AACA;AACA,yBAAyB;AACzB;AACA,oBAAoB,OAAO,MAAM,gBAAgB,EAAE;AACnD,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,gBAAgB,EAAE;AAC/C,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK;AACrF,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AAC1H;AACA,oBAAoB,OAAO;AAC3B,wBAAwB,KAAK;AAC7B,wBAAwB,UAAU;AAClC,wBAAwB,KAAK,EAAE;AAC/B,qBAAqB;AACrB;AACA,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClJ;AACA,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,OAAO,EAAE,KAAK,KAAK;AACtF,gBAAgB,IAAI;AACpB;AACA,oBAAoB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AACtG,oBAAoB,IAAI,CAAC,IAAI,EAAE;AAC/B,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/G;AACA;AACA,oBAAoB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACjD,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5H;AACA,oBAAoB,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,CAAC,SAAS,CAAC;AACnJ,oBAAoB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/D,oBAAoB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;AAC/G,oBAAoB,IAAI,CAAC,aAAa,EAAE;AACxC;AACA,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,mCAAmC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClI;AACA,oBAAoB,OAAO;AAC3B,wBAAwB,KAAK,EAAE,EAAE;AACjC,wBAAwB,GAAG;AAC3B,qBAAqB;AACrB;AACA,gBAAgB,OAAO,KAAK,EAAE;AAC9B;AACA,oBAAoB,IAAI,KAAK,YAAY,QAAQ,EAAE;AACnD,wBAAwB,MAAM,KAAK;AACnC;AACA,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,uBAAuB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpJ;AACA,aAAa,CAAC;AACd;AACA;AACA,IAAI,MAAM,SAAS,CAAC,YAAY,EAAE;AAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE;AAC5C,YAAY;AACZ;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;AAClG,QAAQ,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;AACrD;AACA,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,sBAAsB,GAAG,KAAK,EAAE;AAClG,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE;AACzC,YAAY,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;AACrD,YAAY,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACjC,YAAY,OAAO;AACnB,YAAY,eAAe;AAC3B,YAAY,sBAAsB;AAClC,YAAY;AACZ,SAAS,CAAC;AACV;AACA,IAAI,aAAa,CAAC,SAAS,EAAE;AAC7B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY,OAAO,KAAK;AACxB,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;AACxD,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1E,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/C,YAAY,MAAM,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,gCAAgC,EAAE;AACjG,gBAAgB,eAAe,EAAE,IAAI,CAAC,eAAe;AACrD,gBAAgB;AAChB,aAAa,CAAC;AACd;AACA,QAAQ,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,QAAQ,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;AACjE,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,eAAe,CAAC,SAAS,EAAE;AAC/B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AACrD,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AACxC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE;AAC7B,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS;AACnC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM;AACxC,YAAY,QAAQ,IAAI;AACxB,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK;AAC7C,YAAY,QAAQ,GAAG,KAAK,CAAC;AAC7B,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS;AACrD,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK;AACxD,YAAY,UAAU,GAAG,OAAO,EAAE,KAAK,CAAC;AACxC,YAAY,IAAI,uBAAuB,CAAC,OAAO,CAAC,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE;AACrF,gBAAgB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACzC;AACA,iBAAiB,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;AAChD,gBAAgB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;AAC/C;AACA,iBAAiB,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACrD,gBAAgB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AAC7C;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F;AACA,SAAS;AACT,QAAQ,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACrC;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB;AACvD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AACtC,QAAQ,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;AACxC,QAAQ,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE;AACnD,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;AACzF,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS;AACnC,QAAQ,IAAI,CAAC,OAAO,IAAI;AACxB,QAAQ,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE;AACzD,YAAY,OAAO,CAAC,KAAK,CAAC;AAC1B;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAC7B;AACA,IAAI,eAAe,CAAC,YAAY,EAAE;AAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,2BAA2B;AAC/G;AACA,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;AACnC,YAAY;AACZ;AACA;AACA,QAAQ,OAAO,CAAC,OAAO;AACvB,aAAa,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC;AAC7C,aAAa,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG;AACA,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;AAC/B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,sBAAsB;AAChG;AACA,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU;AACjD;AACA,QAAQ,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,qBAAqB,CAAC,EAAE,MAAM;AACpF,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;AACnC,YAAY,MAAM,aAAa,GAAG;AAClC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,EAAE,EAAE,OAAO,CAAC,EAAE;AAC9B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,IAAI,EAAE,SAAS,CAAC,cAAc;AAClD,oBAAoB,OAAO,EAAE;AAC7B;AACA,aAAa;AACb;AACA,YAAY,IAAI,aAAa,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACzD,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;AACxD,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,OAAO,EAAE,aAAa;AAC1C,oBAAoB,SAAS,EAAE,IAAI,CAAC,GAAG;AACvC,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvI;AACA,iBAAiB;AACjB,gBAAgB;AAChB,sBAAsB,IAAI,CAAC,aAAa;AACxC,qBAAqB,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G;AACA,YAAY;AACZ;AACA,QAAQ,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE;AACrD,QAAQ,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,eAAe,CAAC;AAC7E,QAAQ,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,SAAS;AACjH,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,CAAC,GAAG,SAAS;AACpH,QAAQ,MAAM,SAAS,GAAG;AAC1B,YAAY,MAAM,EAAE,eAAe,CAAC,MAAM;AAC1C,YAAY,SAAS,EAAE,iBAAiB,EAAE,SAAS;AACnD,YAAY,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK;AACxC,YAAY,gBAAgB,EAAE,OAAO,YAAY,KAAK;AACtD;AACA,gBAAgB,MAAM,mBAAmB,GAAG,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,EAAE;AAC5E,gBAAgB,IAAI,aAAa,EAAE;AACnC,oBAAoB,mBAAmB,CAAC,WAAW,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE;AAC/E;AACA,gBAAgB,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAC1E,aAAa;AACb,YAAY,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,OAAO,KAAK;AAC7D;AACA,gBAAgB,MAAM,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,EAAE;AACnF,gBAAgB,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AAClE,oBAAoB,cAAc,CAAC,WAAW,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE;AAC1E;AACA;AACA;AACA,gBAAgB,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,IAAI,aAAa;AAC3F,gBAAgB,IAAI,eAAe,IAAI,SAAS,EAAE;AAClD,oBAAoB,MAAM,SAAS,CAAC,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,CAAC;AACvF;AACA,gBAAgB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC;AAC1E,aAAa;AACb,YAAY,QAAQ,EAAE,KAAK,EAAE,QAAQ;AACrC,YAAY,SAAS,EAAE,OAAO,CAAC,EAAE;AACjC,YAAY,WAAW,EAAE,KAAK,EAAE,WAAW;AAC3C,YAAY,MAAM,EAAE,aAAa;AACjC,YAAY,SAAS,EAAE,SAAS;AAChC,YAAY,gBAAgB,EAAE,kBAAkB,EAAE,GAAG;AACrD,YAAY,cAAc,EAAE,KAAK,EAAE,cAAc;AACjD,YAAY,wBAAwB,EAAE,KAAK,EAAE;AAC7C,SAAS;AACT;AACA,QAAQ,OAAO,CAAC,OAAO;AACvB,aAAa,IAAI,CAAC,MAAM;AACxB;AACA,YAAY,IAAI,kBAAkB,EAAE;AACpC;AACA,gBAAgB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC;AAChE;AACA,SAAS;AACT,aAAa,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;AACnD,aAAa,IAAI,CAAC,OAAO,MAAM,KAAK;AACpC,YAAY,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AAChD;AACA,gBAAgB;AAChB;AACA,YAAY,MAAM,QAAQ,GAAG;AAC7B,gBAAgB,MAAM;AACtB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,EAAE,EAAE,OAAO,CAAC;AAC5B,aAAa;AACb;AACA,YAAY,IAAI,aAAa,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACzD,gBAAgB,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;AAC9D,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,OAAO,EAAE,QAAQ;AACrC,oBAAoB,SAAS,EAAE,IAAI,CAAC,GAAG;AACvC,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAChD;AACA,iBAAiB;AACjB,gBAAgB,MAAM,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC;AACvD;AACA,SAAS,EAAE,OAAO,KAAK,KAAK;AAC5B,YAAY,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;AAChD;AACA,gBAAgB;AAChB;AACA,YAAY,MAAM,aAAa,GAAG;AAClC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,EAAE,EAAE,OAAO,CAAC,EAAE;AAC9B,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,aAAa;AACvG,oBAAoB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,gBAAgB;AAC9D,oBAAoB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AAC9E;AACA,aAAa;AACb;AACA,YAAY,IAAI,aAAa,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACzD,gBAAgB,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;AAC9D,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,OAAO,EAAE,aAAa;AAC1C,oBAAoB,SAAS,EAAE,IAAI,CAAC,GAAG;AACvC,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,CAAC;AAChD;AACA,iBAAiB;AACjB,gBAAgB,MAAM,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC;AAC5D;AACA,SAAS;AACT,aAAa,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACzF,aAAa,OAAO,CAAC,MAAM;AAC3B,YAAY,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;AACnE,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM;AAChE,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7D,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,uDAAuD,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9H,YAAY;AACZ;AACA,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AACrE,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;AAC5D,QAAQ,IAAI,WAAW,IAAI,eAAe,IAAI,WAAW,CAAC,sBAAsB,EAAE;AAClF,YAAY,IAAI;AAChB,gBAAgB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AAC7C;AACA,YAAY,OAAO,KAAK,EAAE;AAC1B;AACA,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,gBAAgB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AAC/C,gBAAgB,eAAe,CAAC,KAAK,CAAC;AACtC,gBAAgB;AAChB;AACA;AACA,QAAQ,OAAO,CAAC,MAAM,CAAC;AACvB;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7C;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9D,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AACpD,YAAY,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE;AACnD,gBAAgB,QAAQ,CAAC,QAAQ,CAAC;AAClC;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAC5G,gBAAgB,QAAQ,CAAC,KAAK,CAAC;AAC/B;AACA,YAAY;AACZ;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7D,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;AACnC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,+CAA+C,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAClH,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AAChD,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACvC;AACA,QAAQ,IAAI,cAAc,GAAG,KAAK;AAClC,QAAQ,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;AACzG,YAAY,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AAChE,gBAAgB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACxC,gBAAgB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AACrD,oBAAoB,cAAc,GAAG,IAAI;AACzC,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;AACxE;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,YAAY,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AACpD;AACA,QAAQ,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE;AAC/C,YAAY,OAAO,CAAC,QAAQ,CAAC;AAC7B;AACA,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9G,YAAY,OAAO,CAAC,KAAK,CAAC;AAC1B;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,MAAM,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;AACzD,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE;AACtC;AACA,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,IAAI;AAChB,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC;AACjF,gBAAgB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;AAChD;AACA,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,MAAM;AACtB,oBAAoB,IAAI,EAAE,OAAO;AACjC,oBAAoB,KAAK,EAAE,KAAK,YAAY,QAAQ,GAAG,KAAK,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;AAClH,iBAAiB;AACjB;AACA,YAAY;AACZ;AACA;AACA;AACA,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC;AAC7F;AACA,YAAY,IAAI,YAAY,CAAC,IAAI,EAAE;AACnC,gBAAgB,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM;AACjD,gBAAgB,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;AACtE;AACA,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,qCAAqC,CAAC;AAClG;AACA;AACA,YAAY,OAAO,IAAI,EAAE;AACzB;AACA,gBAAgB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;AACpE,gBAAgB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;AAClD;AACA,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC7C,oBAAoB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AACrD;AACA,wBAAwB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC;AAClG,wBAAwB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;AACxD;AACA,yBAAyB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AACvD,wBAAwB,MAAM;AAC9B,4BAA4B,IAAI,EAAE,OAAO;AACzC,4BAA4B,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;AAChG,yBAAyB;AACzB;AACA,yBAAyB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AAC1D,wBAAwB,MAAM;AAC9B,4BAA4B,IAAI,EAAE,OAAO;AACzC,4BAA4B,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;AACvG,yBAAyB;AACzB;AACA,oBAAoB;AACpB;AACA;AACA;AACA,gBAAgB,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,EAAE;AACtD,oBAAoB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC;AAC9F,oBAAoB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;AACpD,oBAAoB;AACpB;AACA;AACA,gBAAgB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,uBAAuB,IAAI,IAAI;AACxG,gBAAgB,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC/E;AACA,gBAAgB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE;AACjD;AACA;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM;AAClB,gBAAgB,IAAI,EAAE,OAAO;AAC7B,gBAAgB,KAAK,EAAE,KAAK,YAAY,QAAQ,GAAG,KAAK,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;AAC9G,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;AAC5C,QAAQ,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE;AACzG;AACA,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AAC3C,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClC,gBAAgB,WAAW,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AACvD,gBAAgB;AAChB;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,EAAE;AACnE,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC;AAClE;AACA,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;AACjE;AACA;AACA,gBAAgB,OAAO,CAAC,EAAE;AAC1B,oBAAoB,WAAW,CAAC,CAAC,CAAC;AAClC,oBAAoB;AACpB;AACA;AACA,YAAY,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE;AAC7C,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACtD,YAAY,MAAM,cAAc,GAAG;AACnC,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,EAAE,EAAE;AACpB,aAAa;AACb,YAAY,IAAI,OAAO,EAAE,UAAU,EAAE;AACrC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC;AACzE,gBAAgB,cAAc,CAAC,MAAM,GAAG;AACxC,oBAAoB,GAAG,OAAO,CAAC,MAAM;AACrC,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AACxD,wBAAwB,aAAa,EAAE;AACvC;AACA,iBAAiB;AACjB;AACA;AACA,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,cAAc,CAAC,MAAM,GAAG;AACxC,oBAAoB,GAAG,cAAc,CAAC,MAAM;AAC5C,oBAAoB,IAAI,EAAE;AAC1B,iBAAiB;AACjB;AACA;AACA,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,cAAc,CAAC,MAAM,GAAG;AACxC,oBAAoB,GAAG,cAAc,CAAC,MAAM;AAC5C,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,cAAc,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAC/D,wBAAwB,CAAC,qBAAqB,GAAG;AACjD;AACA,iBAAiB;AACjB;AACA,YAAY,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK;AACvC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AACxD,gBAAgB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AAC/C,gBAAgB,IAAI,CAAC;AACrB,sBAAsB,IAAI,CAAC;AAC3B,oBAAoB,OAAO,EAAE,KAAK;AAClC,oBAAoB,MAAM,EAAE,yBAAyB;AACrD,oBAAoB,MAAM,EAAE;AAC5B,wBAAwB,SAAS,EAAE,SAAS;AAC5C,wBAAwB,MAAM,EAAE,MAAM,CAAC,MAAM;AAC7C;AACA,iBAAiB,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE;AAC3E,qBAAqB,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG;AACA,gBAAgB,MAAM,KAAK,GAAG,MAAM,YAAY,QAAQ,GAAG,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1H,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,aAAa;AACb,YAAY,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,IAAI;AAC9D,gBAAgB,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9C,oBAAoB;AACpB;AACA,gBAAgB,IAAI,QAAQ,YAAY,KAAK,EAAE;AAC/C,oBAAoB,OAAO,MAAM,CAAC,QAAQ,CAAC;AAC3C;AACA,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,WAAW,GAAGA,WAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;AAChF,oBAAoB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC9C;AACA,wBAAwB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;AACjD;AACA,yBAAyB;AACzB,wBAAwB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;AACjD;AACA;AACA,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,MAAM,CAAC,KAAK,CAAC;AACjC;AACA,aAAa,CAAC;AACd,YAAY,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM;AAC7D,gBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AAC/C,aAAa,CAAC;AACd,YAAY,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,4BAA4B;AAC5E,YAAY,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/H,YAAY,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,IAAI,KAAK,CAAC;AACtI;AACA,YAAY,MAAM,aAAa,GAAG,WAAW,EAAE,MAAM;AACrD,YAAY,IAAI,aAAa,EAAE;AAC/B;AACA,gBAAgB,MAAM,gBAAgB,GAAG,CAAC,QAAQ,KAAK;AACvD,oBAAoB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AACzE,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,OAAO,CAAC,QAAQ,CAAC;AACzC;AACA,yBAAyB;AACzB;AACA,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,oDAAoD,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AACpH;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;AACvE,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;AACxD,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,OAAO,EAAE,cAAc;AAC3C,oBAAoB,SAAS,EAAE,IAAI,CAAC,GAAG;AACvC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;AAClC,oBAAoB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACnD,oBAAoB,MAAM,CAAC,KAAK,CAAC;AACjC,iBAAiB,CAAC;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;AAC9H,oBAAoB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACnD,oBAAoB,MAAM,CAAC,KAAK,CAAC;AACjC,iBAAiB,CAAC;AAClB;AACA,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACnC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE;AACvD;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACtC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,sBAAsB,EAAE,OAAO,CAAC;AAChG;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE;AAC9C,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAY,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AAC5C;AACA,QAAQ,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,MAAM,CAAC;AAC9D;AACA,QAAQ,MAAM,aAAa,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM;AAC1D,QAAQ,IAAI,aAAa,EAAE;AAC3B;AACA,YAAY,MAAM,mBAAmB,GAAG;AACxC,gBAAgB,GAAG,YAAY;AAC/B,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,GAAG,YAAY,CAAC,MAAM;AAC1C,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,YAAY,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAC7D,wBAAwB,CAAC,qBAAqB,GAAG,OAAO,CAAC;AACzD;AACA;AACA,aAAa;AACb,YAAY,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;AAC1D,gBAAgB,IAAI,EAAE,cAAc;AACpC,gBAAgB,OAAO,EAAE,mBAAmB;AAC5C,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG;AACnC,aAAa,CAAC;AACd;AACA;AACA,YAAY;AACZ;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,4BAA4B,IAAI,EAAE;AAClF;AACA;AACA,QAAQ,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,gBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW;AACzJ,QAAQ,IAAI,WAAW,EAAE;AACzB;AACA,YAAY,IAAI,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9E,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;AACxE;AACA;AACA,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AACzC;AACA,gBAAgB,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;AAC/E;AACA,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACtC,oBAAoB;AACpB;AACA,gBAAgB,IAAI,mBAAmB,GAAG;AAC1C,oBAAoB,GAAG,YAAY;AACnC,oBAAoB,OAAO,EAAE;AAC7B,iBAAiB;AACjB;AACA,gBAAgB,IAAI,OAAO,EAAE,WAAW,EAAE;AAC1C,oBAAoB,mBAAmB,GAAG;AAC1C,wBAAwB,GAAG,mBAAmB;AAC9C,wBAAwB,MAAM,EAAE;AAChC,4BAA4B,GAAG,mBAAmB,CAAC,MAAM;AACzD,4BAA4B,KAAK,EAAE;AACnC,gCAAgC,IAAI,mBAAmB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAC5E,gCAAgC,CAAC,qBAAqB,GAAG,OAAO,CAAC;AACjE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gBAAgB,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxG,aAAa,CAAC;AACd;AACA,YAAY;AACZ;AACA,QAAQ,IAAI,mBAAmB,GAAG;AAClC,YAAY,GAAG,YAAY;AAC3B,YAAY,OAAO,EAAE;AACrB,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,EAAE,WAAW,EAAE;AAClC,YAAY,mBAAmB,GAAG;AAClC,gBAAgB,GAAG,mBAAmB;AACtC,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,GAAG,mBAAmB,CAAC,MAAM;AACjD,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB,IAAI,mBAAmB,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AACpE,wBAAwB,CAAC,qBAAqB,GAAG,OAAO,CAAC;AACzD;AACA;AACA,aAAa;AACb;AACA,QAAQ,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE;AAC9C,QAAQ,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,CAAC;AACtD,QAAQ,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC;AACnD,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK;AAC9D,YAAY,MAAM,MAAM,GAAG,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC;AAClE,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1D,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5C;AACA;AACA;AACA;AACA,IAAI,0BAA0B,CAAC,MAAM,EAAE;AACvC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC/C,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,0CAA0C,CAAC,CAAC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,EAAE;AACxD,QAAQ,MAAM,MAAM,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;AAC3D,QAAQ,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,IAAI;AAC/D,YAAY,MAAM,MAAM,GAAG,eAAe,CAAC,kBAAkB,EAAE,YAAY,CAAC;AAC5E,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACnD,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,yBAAyB,CAAC,MAAM,EAAE;AACtC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,2BAA2B,CAAC,MAAM,EAAE;AACxC,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;AAClE,QAAQ,IAAI,aAAa,KAAK,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC;AACxD,YAAY,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;AAC1D;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACzD,YAAY,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC;AAC7G;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB;AAC5D,QAAQ,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7C,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC;AACvF,YAAY,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5C,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACrF;AACA,oBAAoB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE;AACxD,oBAAoB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1E,oBAAoB,IAAI,QAAQ,EAAE;AAClC,wBAAwB,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,6BAA6B,CAAC,CAAC;AACtG,wBAAwB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC;AAChE;AACA,yBAAyB;AACzB;AACA,wBAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC7C;AACA,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,uBAAuB,IAAI,IAAI;AACrE,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;AAC/D,YAAY,IAAI,IAAI,EAAE,YAAY,EAAE;AACpC,gBAAgB,QAAQ,GAAG,IAAI,CAAC,YAAY;AAC5C;AACA;AACA,QAAQ,MAAM;AACd;AACA;AACA,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,IAAI,MAAM,CAAC,OAAO,EAAE;AAChC,gBAAgB,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;AACnF,gBAAgB;AAChB;AACA;AACA,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC3D;AACA,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM;AACnD,gBAAgB,YAAY,CAAC,SAAS,CAAC;AACvC,gBAAgB,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;AACnF,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE;AACzC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;AACzC,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,OAAO,UAAU,KAAK;AAC9C,gBAAgB,IAAI,CAAC,OAAO,EAAE;AAC9B,oBAAoB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;AAC1D;AACA,gBAAgB,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;AAC1E,oBAAoB,MAAM,EAAE,OAAO,CAAC,MAAM;AAC1C,oBAAoB,MAAM,EAAE,OAAO,CAAC;AACpC,iBAAiB,EAAE,SAAS,CAAC;AAC7B,aAAa;AACb,YAAY,OAAO,EAAE,OAAO,MAAM,KAAK;AACvC,gBAAgB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AACvE,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,yCAAyC,CAAC;AAC1G;AACA,gBAAgB,OAAO,IAAI;AAC3B,aAAa;AACb,YAAY,eAAe,EAAE,OAAO,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK;AAC/D,gBAAgB,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;AAClF;AACA,gBAAgB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AACvE,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,CAAC;AAC5E,wBAAwB,MAAM,EAAE,4BAA4B;AAC5D,wBAAwB,MAAM,EAAE;AAChC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACzD,oBAAoB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACjD,wBAAwB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC;AAChE;AACA;AACA;AACA,aAAa;AACb,YAAY,aAAa,EAAE,MAAM,IAAI;AACrC,gBAAgB,OAAO,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AACjE,aAAa;AACb,YAAY,gBAAgB,EAAE,OAAO,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK;AACvE;AACA,gBAAgB,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AACvE,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,yCAAyC,CAAC,CAAC;AAC3H;AACA;AACA,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC7C,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,oBAAoB,EAAE,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,oFAAoF,CAAC,CAAC;AACzO;AACA,gBAAgB,MAAM,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;AAC1F;AACA,gBAAgB,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AAC9E,gBAAgB,IAAI,WAAW,EAAE;AACjC,oBAAoB,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,CAAC;AAC5E,wBAAwB,MAAM,EAAE,4BAA4B;AAC5D,wBAAwB,MAAM,EAAE;AAChC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACzD,oBAAoB,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACxD,wBAAwB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC;AAChE;AACA;AACA;AACA,aAAa;AACb,YAAY,SAAS,EAAE,MAAM,IAAI;AACjC,gBAAgB,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;AAC7D;AACA,SAAS;AACT;AACA;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/E;AACO,SAAS,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE;AACpD,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE;AAC9B,IAAI,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AAClC,QAAQ,MAAM,CAAC,GAAG,GAAG;AACrB,QAAQ,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,QAAQ,KAAK,SAAS;AAClC,YAAY;AACZ,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;AACnC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;AACjE,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,EAAE;AACrD;AACA,aAAa;AACb,YAAY,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ;AAChC;AACA;AACA,IAAI,OAAO,MAAM;AACjB;;;;;;;;;;;;;;;;;;;;;;EC3jCA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,UAAA,GAAqB,OAA2B,CAAA,gBAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAAwB,CAAA,aAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,oBAAoB,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,GAAA,GAAc,OAAY,CAAA,CAAA,GAAA,OAAA,CAAA,GAAA,GAAc,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,MAAM;AACnR;AACA,EAAA,MAAM,WAAW,CAAC;AAClB;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC,EAAA,OAAA,CAAA,UAAA,GAAqB,uBAAuB;EAC5C,MAAM,IAAI,SAAS,WAAW,CAAC;MAC3B,WAAW,CAAC,CAAC,EAAE;AACnB,UAAQ,KAAK,EAAE;UACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,cAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE,UAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,IAAI,CAAC,GAAG;AACvB;AACA,MAAI,QAAQ,GAAG;AACf,UAAQ,OAAO,KAAK;AACpB;MACI,IAAI,KAAK,GAAG;UACR,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAChC;AACA;AACA,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;EACnB,MAAM,KAAK,SAAS,WAAW,CAAC;MAC5B,WAAW,CAAC,IAAI,EAAE;AACtB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;AAC9D;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,IAAI,CAAC,GAAG;AACvB;AACA,MAAI,QAAQ,GAAG;AACf,UAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;AAClC,cAAY,OAAO,KAAK;UAChB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,UAAQ,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,IAAI;AAC3C;MACI,IAAI,GAAG,GAAG;AACd,UAAQ,IAAI,EAAE;AACd,UAAQ,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5H;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,IAAI,EAAE;AACd,UAAQ,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;cACxG,IAAI,CAAC,YAAY,IAAI;AACjC,kBAAgB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD,cAAY,OAAO,KAAK;WACf,EAAE,EAAE,CAAC,CAAC;AACf;AACA;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB,EAAA,OAAA,CAAA,GAAA,GAAc,IAAI,KAAK,CAAC,EAAE,CAAC;AAC3B,EAAA,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;MACtB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,CAAC;AACb,MAAI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;UACpB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;UACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B;AACA,MAAI,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;AAC1B;AACA,EAAA,OAAA,CAAA,CAAA,GAAY,CAAC;AACb,EAAA,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;AAC3B,EAAA,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;MACxB,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;MACrC,IAAI,CAAC,GAAG,CAAC;AACb,MAAI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,UAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UACf,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,UAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD;MACI,QAAQ,CAAC,IAAI,CAAC;AAClB,MAAI,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;AAC1B;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;AACjB,EAAA,SAAS,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;MAC3B,IAAI,GAAG,YAAY,KAAK;UACpB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;WACvB,IAAI,GAAG,YAAY,IAAI;AAChC,UAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB;UACQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;EAC/B,SAAS,QAAQ,CAAC,IAAI,EAAE;MACpB,IAAI,CAAC,GAAG,CAAC;MACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,UAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC9B,cAAY,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,cAAY,IAAI,GAAG,KAAK,SAAS,EAAE;kBACnB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;kBAC1B;AAChB;AACA,cAAY,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AAC3B;AACA,UAAQ,CAAC,EAAE;AACX;AACA;AACA,EAAA,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;MAC1B,IAAI,CAAC,KAAK,IAAI;AAClB,UAAQ,OAAO,CAAC;MACZ,IAAI,CAAC,KAAK,IAAI;AAClB,UAAQ,OAAO,CAAC;AAChB,MAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC9B,UAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;cAC5C;AACZ,UAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ;AAChC,cAAY,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,UAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;AACxB,cAAY,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;UACtC;AACR;AACA,MAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC;AACpE,UAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/B;AACJ;AACA,EAAA,SAAS,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE;MACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;EACA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,MAAI,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK;YACxD;AACV,YAAU,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3D;EACA,SAAS,SAAS,CAAC,CAAC,EAAE;MAClB,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;EAC7B,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,MAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3B,WAAS,OAAO,CAAC,SAAS,EAAE,SAAS;AACrC,WAAS,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;AACtC;AACA,EAAA,OAAA,CAAA,aAAA,GAAwB,aAAa;EACrC,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,MAAI,OAAO,OAAO,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACvG;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC;EACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,MAAI,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;UACxD,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClC;MACI,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC1F;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;EAC3C,SAAS,UAAU,CAAC,EAAE,EAAE;MACpB,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnC;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;;;;;;;;;;;;;EC1JA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,UAAA,GAAqB,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,cAAA,GAAyB,MAAM;EAChH,MAAM,MAAM,GAAGzD,aAAiB,EAAA;EAChC,MAAM,UAAU,SAAS,KAAK,CAAC;MAC3B,WAAW,CAAC,IAAI,EAAE;UACd,KAAK,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACxD,UAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC/B;AACA;AACA,EAAA,IAAI,cAAc;EAClB,CAAC,UAAU,cAAc,EAAE;MACvB,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACzD,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;GAChE,EAAE,cAAc,KAAK,OAAA,CAAA,cAAA,GAAyB,cAAc,GAAG,EAAE,CAAC,CAAC;EACpE,OAAmB,CAAA,QAAA,GAAA;MACf,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;MAC/B,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;MAC3B,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;GAC9B;AACD,EAAA,MAAM,KAAK,CAAC;MACR,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;AAC3C,UAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,UAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ;AACjC,UAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B;MACI,MAAM,CAAC,YAAY,EAAE;AACzB,UAAQ,OAAO,YAAY,YAAY,MAAM,CAAC,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3F;MACI,IAAI,CAAC,MAAM,EAAE;AACjB,UAAQ,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD;MACI,QAAQ,CAAC,MAAM,EAAE;AACrB,UAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;UACzD,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACvC;MACI,UAAU,CAAC,MAAM,EAAE;UACf,IAAI,EAAE,EAAE,EAAE;UACV,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;cACvL,MAAM,IAAI,KAAK,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACvF;AACA,UAAQ,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;AAC1D;AACA;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB,EAAA,MAAM,cAAc,SAAS,MAAM,CAAC,IAAI,CAAC;AACzC,MAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;UACzB,KAAK,CAAC,OAAO,CAAC;AACtB,UAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;MACI,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;AAC7C,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;UAClB,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACpF;AACA;AACA,EAAA,OAAA,CAAA,cAAA,GAAyB,cAAc;EACvC,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;EAC/B,MAAM,UAAU,SAAS,KAAK,CAAC;MAC3B,WAAW,CAAC,IAAI,EAAE;UACd,KAAK,CAAC,IAAI,CAAC;AACnB,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;AAChC,UAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE;AACnE;AACA,MAAI,GAAG,GAAG;UACF,OAAO,IAAI,CAAC,MAAM;AAC1B;MACI,IAAI,CAAC,MAAM,EAAE;AACjB,UAAQ,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChE;AACA,MAAI,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE;AAC/B,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;AACnC,cAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;UAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC9C,UAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;UACvB,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG;UAC5E,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;UAC7B,IAAI,EAAE,EAAE;cACJ,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1C,cAAY,IAAI,KAAK;AACrB,kBAAgB,OAAO,KAAK;AAC5B;eACa;cACD,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE;AACjD;AACA,UAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC9B,UAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACnE,UAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;AAClC,UAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG;AAChC,UAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE;UACvB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;UAC/B,IAAI,CAAC,EAAE;cACH;AACZ,UAAQ,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/B;MACI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;UACxC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACpD,cAAY,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;kBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACvE,cAAY,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAChE,WAAS,CAAC;AACV;MACI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;UAClD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACpD,cAAY,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;kBACxB,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACvE,cAAY,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;AAClC,WAAS,EAAE,UAAU,EAAE,OAAO,CAAC;AAC/B;MACI,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/D,UAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG;AAC7B,UAAQ,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;AACrC,cAAY,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;cACzB,IAAI,CAAC,EAAE;kBACH;AAChB,cAAY,MAAM,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AAClF,cAAY,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACjC,kBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;sBACjB;kBACJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;AACzD,kBAAgB,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;kBACvB,IAAI,CAAC,EAAE;AACvB,sBAAoB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;AAC7F,sBAAoB,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvF;AACA,uBAAqB,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG;sBAC5E,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE;uBACqB;AACrB,sBAAoB,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC;AAC9C;kBACgB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;AAC3D,eAAa,CAAC;AACd;AACA,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;;;;;;;;;;;EC7IA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,EAAA,GAAa,cAAc,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,OAAA,GAAkB,OAAoB,CAAA,SAAA,GAAA,OAAA,CAAA,QAAA,GAAmB,yBAAyB,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAe,CAAA,IAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,oBAAoB,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,GAAA,GAAc,oBAAoB,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,CAAA,GAAY,MAAM;EAChT,MAAM,MAAM,GAAGA,aAAiB,EAAA;EAChC,MAAM,OAAO,GAAGD,cAAkB,EAAA;EAClC,IAAI,MAAM,GAAGC,aAAiB,EAAA;EAC9B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAChG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACpG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EAChH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACpG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;EACpH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EAChH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EAClH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACtG,IAAI,OAAO,GAAGD,cAAkB,EAAA;EAChC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;EACzG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EACnH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;EAC3H,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;EAC/G,OAAoB,CAAA,SAAA,GAAA;MAChB,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;MACzB,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC3B,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;MACzB,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC3B,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;MAC3B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;MAC5B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;MAC1B,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC1B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC3B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;GAC7B;AACD,EAAA,MAAM,IAAI,CAAC;AACX,MAAI,aAAa,GAAG;AACpB,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;AACtC,UAAQ,OAAO,IAAI;AACnB;AACA;EACA,MAAM,GAAG,SAAS,IAAI,CAAC;AACvB,MAAI,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACpC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB;AACA,MAAI,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AACxB,UAAQ,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;AACjE,UAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,UAAQ,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACpD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;cACrB;UACJ,IAAI,IAAI,CAAC,GAAG;AACpB,cAAY,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC/D,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC3E;AACA;EACA,MAAM,MAAM,SAAS,IAAI,CAAC;AAC1B,MAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;AACvC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,UAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACnB,UAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AAChD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;cAC5E;AACZ,UAAQ,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC3D,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;UACR,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;UAC1E,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5C;AACA;EACA,MAAM,QAAQ,SAAS,MAAM,CAAC;MAC1B,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;AAC3C,UAAQ,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC;AACpC,UAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1D;AACA;EACA,MAAM,KAAK,SAAS,IAAI,CAAC;MACrB,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,UAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC;AACA;EACA,MAAM,KAAK,SAAS,IAAI,CAAC;MACrB,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,UAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACnB,UAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;UAChD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC;AACA;EACA,MAAM,KAAK,SAAS,IAAI,CAAC;MACrB,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1C;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;AAC/B;AACA;EACA,MAAM,OAAO,SAAS,IAAI,CAAC;MACvB,WAAW,CAAC,IAAI,EAAE;AACtB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACnC;AACA,MAAI,aAAa,GAAG;UACZ,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;AAChD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACpC,UAAQ,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC;AAC7D,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,IAAI,YAAY,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;AAC7E;AACA;EACA,MAAM,UAAU,SAAS,IAAI,CAAC;AAC9B,MAAI,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE;AAC5B,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;MACI,MAAM,CAAC,IAAI,EAAE;UACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACxE;AACA,MAAI,aAAa,GAAG;AACpB,UAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,UAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;UACpB,OAAO,CAAC,EAAE,EAAE;cACR,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE;AAC9C,cAAY,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;kBAChB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,mBAAiB,IAAI,CAAC;AACtB,kBAAgB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B;AACA,kBAAgB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC;UACQ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS;AAClD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACpC,UAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,UAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;UACpB,OAAO,CAAC,EAAE,EAAE;AACpB;AACA,cAAY,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;cAClB,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;kBACjC;AAChB,cAAY,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;AACzC,cAAY,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B;UACQ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS;AAClD;MACI,IAAI,KAAK,GAAG;UACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAC5E;AACA;EACA,MAAM,SAAS,SAAS,UAAU,CAAC;MAC/B,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE;AACjE;AACA;EACA,MAAM,IAAI,SAAS,UAAU,CAAC;AAC9B;EACA,MAAM,IAAI,SAAS,SAAS,CAAC;AAC7B;EACA,IAAI,CAAC,IAAI,GAAG,MAAM;EAClB,MAAM,EAAE,SAAS,SAAS,CAAC;AAC3B,MAAI,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE;UAC1B,KAAK,CAAC,KAAK,CAAC;AACpB,UAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;UACvD,IAAI,IAAI,CAAC,IAAI;cACT,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACpD,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,GAAG;UACZ,KAAK,CAAC,aAAa,EAAE;AAC7B,UAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;UAC3B,IAAI,IAAI,KAAK,IAAI;AACzB,cAAY,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9B,UAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;UACjB,IAAI,CAAC,EAAE;AACf,cAAY,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE;AACxC,cAAY,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE;UACQ,IAAI,CAAC,EAAE;cACH,IAAI,IAAI,KAAK,KAAK;kBACd,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;AACpD,cAAY,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AACjC,kBAAgB,OAAO,IAAI;cACf,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACrE;UACQ,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAChD,cAAY,OAAO,SAAS;AAC5B,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACpC,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;AAC5G,UAAQ,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;cACrD;AACZ,UAAQ,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;AACvE,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AACjC,UAAQ,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;UACnC,IAAI,IAAI,CAAC,IAAI;cACT,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,UAAQ,OAAO,KAAK;AACpB;AACA;EACA,EAAE,CAAC,IAAI,GAAG,IAAI;EACd,MAAM,GAAG,SAAS,SAAS,CAAC;AAC5B;EACA,GAAG,CAAC,IAAI,GAAG,KAAK;EAChB,MAAM,OAAO,SAAS,GAAG,CAAC;MACtB,WAAW,CAAC,SAAS,EAAE;AAC3B,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5D;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;cACtC;AACZ,UAAQ,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;AACvE,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1D;AACA;EACA,MAAM,QAAQ,SAAS,GAAG,CAAC;MACvB,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACzC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;UAC9D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI;AACvC,UAAQ,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/F;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;UAClD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3C;AACA;EACA,MAAM,OAAO,SAAS,GAAG,CAAC;MACtB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/C,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACrG;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;cACtC;AACZ,UAAQ,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;AACrE,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzD;AACA;EACA,MAAM,IAAI,SAAS,SAAS,CAAC;AAC7B,MAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AACnC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;MACI,MAAM,CAAC,IAAI,EAAE;UACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,EAAE;UACzC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAClF;AACA;EACA,IAAI,CAAC,IAAI,GAAG,MAAM;EAClB,MAAM,MAAM,SAAS,UAAU,CAAC;MAC5B,MAAM,CAAC,IAAI,EAAE;UACT,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C;AACA;EACA,MAAM,CAAC,IAAI,GAAG,QAAQ;EACtB,MAAM,GAAG,SAAS,SAAS,CAAC;MACxB,MAAM,CAAC,IAAI,EAAE;UACT,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;UACrC,IAAI,IAAI,CAAC,KAAK;cACV,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;UACnC,IAAI,IAAI,CAAC,OAAO;cACZ,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,GAAG;UACZ,IAAI,EAAE,EAAE,EAAE;UACV,KAAK,CAAC,aAAa,EAAE;UACrB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;UACzE,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;AACnF,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,EAAE,EAAE,EAAE;AAClB,UAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;UACrC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;UACzF,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;AACnG,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;UACzB,IAAI,IAAI,CAAC,KAAK;cACV,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;UACrC,IAAI,IAAI,CAAC,OAAO;cACZ,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,UAAQ,OAAO,KAAK;AACpB;AACA;EACA,MAAM,KAAK,SAAS,SAAS,CAAC;MAC1B,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1D;AACA;EACA,KAAK,CAAC,IAAI,GAAG,OAAO;EACpB,MAAM,OAAO,SAAS,SAAS,CAAC;MAC5B,MAAM,CAAC,IAAI,EAAE;UACT,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C;AACA;EACA,OAAO,CAAC,IAAI,GAAG,SAAS;AACxB,EAAA,MAAM,OAAO,CAAC;AACd,MAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE;AACrC,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,UAAQ,IAAI,CAAC,UAAU,GAAG,EAAE;AAC5B,UAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,EAAE;AAC3D,UAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ;AACjC,UAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;UACrD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAClC;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C;AACA;MACI,IAAI,CAAC,MAAM,EAAE;UACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC;AACA;MACI,SAAS,CAAC,MAAM,EAAE;UACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1C;AACA;AACA,MAAI,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE;AACpC,UAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;UACtD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACvF,UAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;UAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;AACxD;AACA;AACA;MACI,SAAS,CAAC,SAAS,EAAE;AACzB,UAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;AAChE;AACA,MAAI,SAAS,GAAG;UACR,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;MACI,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;UACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AACrD,UAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ;cAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;AAC3C,UAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACnD,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;AACxC,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;AAC9E;AACA;AACA,MAAI,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;AACtC,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;AAC5E;AACA;AACA,MAAI,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;AACtC,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;AAC5E;AACA;AACA,MAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;AAClC,UAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AAChE;AACA;AACA,MAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AAClB,UAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5E;AACA;MACI,IAAI,CAAC,CAAC,EAAE;AACZ,UAAQ,IAAI,OAAO,CAAC,IAAI,UAAU;AAClC,cAAY,CAAC,EAAE;AACf,eAAa,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG;cACrB,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,MAAM,CAAC,GAAG,SAAS,EAAE;AACzB,UAAQ,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;UAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE;AAC9C,cAAY,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAC/B,kBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,cAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;cACd,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAChD,kBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;kBACd,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD;AACA;AACA,UAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,UAAQ,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC;AACA;AACA,MAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE;UAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1C,UAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE;AAClC,cAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AAC7D;eACa,IAAI,QAAQ,EAAE;cACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AACvC;eACa,IAAI,QAAQ,EAAE;AAC3B,cAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE;AACA,UAAQ,OAAO,IAAI;AACnB;AACA;MACI,MAAM,CAAC,SAAS,EAAE;UACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AAChD;AACA;AACA,MAAI,IAAI,GAAG;UACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;AACzC;AACA;AACA,MAAI,KAAK,GAAG;UACJ,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC;AAC3C;AACA,MAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACxB,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,OAAO;cACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AACvC,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;AACzD;AACA;AACA,MAAI,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;UAC7G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;UAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF;AACA;AACA,MAAI,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;UACrE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AACrD,UAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAC3B,cAAY,MAAM,GAAG,GAAG,QAAQ,YAAY,MAAM,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;cACnF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK;kBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;kBAC5C,OAAO,CAAC,IAAI,CAAC;AAC7B,eAAa,CAAC;AACd;UACQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACzF;AACA;AACA;MACI,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/G,UAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;cACzB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACzF;UACQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;UAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF;AACA;AACA,MAAI,MAAM,GAAG;AACb,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC;AACA;MACI,KAAK,CAAC,KAAK,EAAE;UACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA;MACI,KAAK,CAAC,KAAK,EAAE;UACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA;MACI,MAAM,CAAC,KAAK,EAAE;AAClB,UAAQ,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE;AACjC,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,UAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AACnC,cAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACzC;AACA;AACA,MAAI,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;AACzC,UAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW;AACtC,cAAY,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAC3E,UAAQ,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE;AAC9B,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;UAClB,IAAI,SAAS,EAAE;cACX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,cAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;cAC9C,SAAS,CAAC,KAAK,CAAC;AAC5B;UACQ,IAAI,WAAW,EAAE;cACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE;AACzD,cAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC;UACQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;AACjD;AACA;MACI,KAAK,CAAC,KAAK,EAAE;UACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA;AACA,MAAI,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE;UACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAClD,UAAQ,IAAI,IAAI;cACJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC/C,UAAQ,OAAO,IAAI;AACnB;AACA;MACI,QAAQ,CAAC,SAAS,EAAE;UAChB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;UACnC,IAAI,GAAG,KAAK,SAAS;AAC7B,cAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;UAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;AAChD,UAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE;AAC/E,cAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AAClG;AACA,UAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;AAChC,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnD,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpD,UAAQ,IAAI,QAAQ;cACR,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;AACzC,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,OAAO,GAAG;AACd,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC;AACA,MAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE;AACpB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,cAAY,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACtC,cAAY,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AACvE;AACA;MACI,SAAS,CAAC,IAAI,EAAE;UACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,UAAQ,OAAO,IAAI;AACnB;MACI,UAAU,CAAC,IAAI,EAAE;UACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,UAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B;AACA,MAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;AAC1B,UAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;UACxB,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;AACxD,cAAY,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAC7B,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5F;MACI,SAAS,CAAC,IAAI,EAAE;AACpB,UAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;AAChC,UAAQ,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE;AAChC,cAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;UACQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI;AACtC,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B;MACI,IAAI,SAAS,GAAG;AACpB,UAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM;UACtB,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC;AACA,MAAI,IAAI,SAAS,CAAC,IAAI,EAAE;AACxB,UAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM;UACtB,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;AAChC;AACA;AACA,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO;AACzB,EAAA,SAAS,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;AAC/B,MAAI,KAAK,MAAM,CAAC,IAAI,IAAI;AACxB,UAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,MAAI,OAAO,KAAK;AAChB;AACA,EAAA,SAAS,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;AACnC,MAAI,OAAO,IAAI,YAAY,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;AACnF;AACA,EAAA,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9C,MAAI,IAAI,IAAI,YAAY,MAAM,CAAC,IAAI;AACnC,UAAQ,OAAO,WAAW,CAAC,IAAI,CAAC;AAChC,MAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC1B,UAAQ,OAAO,IAAI;AACnB,MAAI,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;AAC7D,UAAQ,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI;AACpC,cAAY,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AAC9B,UAAQ,IAAI,CAAC,YAAY,MAAM,CAAC,KAAK;cACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACnC;AACA,cAAY,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,UAAQ,OAAO,KAAK;OACf,EAAE,EAAE,CAAC,CAAC;AACX,MAAI,SAAS,WAAW,CAAC,CAAC,EAAE;UACpB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,UAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,cAAY,OAAO,CAAC;AACpB,UAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,UAAQ,OAAO,CAAC;AAChB;AACA,MAAI,SAAS,WAAW,CAAC,CAAC,EAAE;AAC5B,UAAQ,QAAQ,CAAC,YAAY,MAAM,CAAC,KAAK;AACzC,cAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AAClH;AACA;AACA,EAAA,SAAS,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AACpC,MAAI,KAAK,MAAM,CAAC,IAAI,IAAI;AACxB,UAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD;EACA,SAAS,GAAG,CAAC,CAAC,EAAE;AAChB,MAAI,OAAO,OAAO,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;EACjB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;AAC9C;AACA,EAAA,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE;AACtB,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC/B;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;EACjB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5C;AACA,EAAA,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE;AACrB,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9B;AACA,EAAA,OAAA,CAAA,EAAA,GAAa,EAAE;EACf,SAAS,OAAO,CAAC,EAAE,EAAE;MACjB,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9G;EACA,SAAS,GAAG,CAAC,CAAC,EAAE;MACZ,OAAO,CAAC,YAAY,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE;AACA;;;;;;;;;;;;ACvrBA,CAAA,MAAM,CAAC,cAAc,CAACc,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,MAAA,CAAA,eAAuB,GAAGA,MAAoB,CAAA,YAAA,GAAGA,MAAY,CAAA,IAAA,GAAGA,cAAe,GAAGA,MAAA,CAAA,YAAoB,GAAGA,MAAA,CAAA,oBAA4B,GAAGA,MAAsB,CAAA,cAAA,GAAGA,MAAgB,CAAA,QAAA,GAAGA,0BAA2B,GAAGA,MAAA,CAAA,iBAAyB,GAAGA,MAAA,CAAA,cAAsB,GAAGA,MAAwB,CAAA,gBAAA,GAAGA,MAAsB,CAAA,cAAA,GAAGA,2BAA4B,GAAGA,MAAA,CAAA,cAAsB,GAAGA,MAAA,CAAA,iBAAyB,GAAGA,MAAyB,CAAA,iBAAA,GAAGA,MAAc,CAAA,MAAA,GAAG,MAAM;CAClc,MAAM,SAAS,GAAGb,gBAAoB,EAAA;CACtC,MAAM,MAAM,GAAGD,aAAyB,EAAA;AACxC;CACA,SAAS,MAAM,CAAC,GAAG,EAAE;KACjB,MAAM,IAAI,GAAG,EAAE;AACnB,KAAI,KAAK,MAAM,IAAI,IAAI,GAAG;AAC1B,SAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AACzB,KAAI,OAAO,IAAI;AACf;AACA,CAAAc,MAAA,CAAA,MAAc,GAAG,MAAM;AACvB,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;AACvC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;AAClC,SAAQ,OAAO,MAAM;KACjB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;AACxC,SAAQ,OAAO,IAAI;AACnB,KAAI,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC;AACjC,KAAI,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrD;AACA,CAAAA,MAAA,CAAA,iBAAyB,GAAG,iBAAiB;CAC7C,SAAS,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;AACnD,KAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,YAAY;SAClB;AACR,KAAI,IAAI,OAAO,MAAM,KAAK,SAAS;SAC3B;AACR,KAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;AACrC,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACX,eAAe,CAAC,EAAE,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D;AACA;AACA,CAAAA,MAAA,CAAA,iBAAyB,GAAG,iBAAiB;AAC7C,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;SAC1B,OAAO,CAAC,MAAM;AACtB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM;AAC5B,SAAQ,IAAI,KAAK,CAAC,GAAG,CAAC;AACtB,aAAY,OAAO,IAAI;AACvB,KAAI,OAAO,KAAK;AAChB;AACA,CAAAA,MAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC7C,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;SAC1B,OAAO,CAAC,MAAM;AACtB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM;SACpB,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C,aAAY,OAAO,IAAI;AACvB,KAAI,OAAO,KAAK;AAChB;AACA,CAAAA,MAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KAC1E,IAAI,CAAC,KAAK,EAAE;SACR,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AACnE,aAAY,OAAO,MAAM;AACzB,SAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ;AACrC,aAAY,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/C;KACI,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG;AACA,CAAAA,MAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,KAAI,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvD;AACA,CAAAA,MAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,KAAI,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACrD;AACA,CAAAA,MAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,KAAI,IAAI,OAAO,GAAG,IAAI,QAAQ;AAC9B,SAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,KAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACvD;AACA,CAAAA,MAAA,CAAA,iBAAyB,GAAG,iBAAiB;CAC7C,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,KAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACtD;AACA,CAAAA,MAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE;AACzB,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAC3B,SAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;aACd,CAAC,CAAC,CAAC,CAAC;AAChB;UACS;SACD,CAAC,CAAC,EAAE,CAAC;AACb;AACA;AACA,CAAAA,MAAA,CAAA,QAAgB,GAAG,QAAQ;CAC3B,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE;KACjF,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK;AACtC,SAAQ,MAAM,GAAG,GAAG,EAAE,KAAK;eACb;eACA,EAAE,YAAY,SAAS,CAAC;oBACnB,IAAI,YAAY,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;mBAC5F,IAAI,YAAY,SAAS,CAAC;wBACrB,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI;AACvD,uBAAsB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;SACnC,OAAO,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG;MACtG;AACL;AACA,CAAAA,MAAA,CAAA,cAAsB,GAAG;KACrB,KAAK,EAAE,kBAAkB,CAAC;AAC9B,SAAQ,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM;AAChH,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChM,UAAS,CAAC;SACF,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM;AACxF,aAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,iBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;AACpC;kBACiB;AACjB,iBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC9D,iBAAgB,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC;AAC3C;AACA,UAAS,CAAC;SACF,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;SACtE,YAAY,EAAE,oBAAoB;AAC1C,MAAK,CAAC;KACF,KAAK,EAAE,kBAAkB,CAAC;AAC9B,SAAQ,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/M,SAAQ,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SAC5K,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC9E,SAAQ,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AAC7D,MAAK,CAAC;EACL;AACD,CAAA,SAAS,oBAAoB,CAAC,GAAG,EAAE,EAAE,EAAE;KACnC,IAAI,EAAE,KAAK,IAAI;SACX,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACrC,KAAI,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACrD,IAAI,EAAE,KAAK,SAAS;AACxB,SAAQ,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;AACpC,KAAI,OAAO,KAAK;AAChB;AACA,CAAAA,MAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;AACtC,KAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjH;AACA,CAAAA,MAAA,CAAA,YAAoB,GAAG,YAAY;CACnC,MAAM,QAAQ,GAAG,EAAE;AACnB,CAAA,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;AACzB,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;SAC1B,GAAG,EAAE,CAAC;SACN,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/E,MAAK,CAAC;AACN;AACA,CAAAA,MAAA,CAAA,OAAe,GAAG,OAAO;AACzB,CAAA,IAAI,IAAI;CACR,CAAC,UAAU,IAAI,EAAE;KACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;KAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;EAChC,EAAE,IAAI,KAAKA,MAAA,CAAA,IAAY,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;AACtC,CAAA,SAAS,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE;AAChE;AACA,KAAI,IAAI,QAAQ,YAAY,SAAS,CAAC,IAAI,EAAE;AAC5C,SAAQ,MAAM,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC,GAAG;AAClD,SAAQ,OAAO;eACD;AACd,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3D,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO;eAC/C;mBACI,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACrD,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,0CAA0C,CAAC,CAAC;AACjG;KACI,OAAO,gBAAgB,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACjH;AACA,CAAAA,MAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;KAC3D,IAAI,CAAC,IAAI;SACL;AACR,KAAI,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAC3B,IAAI,IAAI,KAAK,IAAI;AACrB,SAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC;KACxB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B;AACA,CAAAA,MAAA,CAAA,eAAuB,GAAG,eAAe;AACzC;;;;;;;;;;;AChLA,CAAA,MAAM,CAAC,cAAc,CAAC4R,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGzS,gBAAoB,EAAA;AACtC,CAAA,MAAM,KAAK,GAAG;AACd;KACI,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC;KACI,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;KAChD,UAAU,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;KAC5C,kBAAkB,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC;KAC5D,QAAQ,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;KACxC,cAAc,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACxD;KACI,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;KACtC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpC,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC;KACI,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KAChC,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC;KACI,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KAChC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;KACtC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;KACtC,QAAQ,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;EAC3C;AACD,CAAAyS,OAAA,CAAA,OAAe,GAAG,KAAK;AACvB;;;;;;;;;;EC1BA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,YAAA,GAAuB,2BAA2B,OAA2B,CAAA,gBAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAA4B,CAAA,iBAAA,GAAA,OAAA,CAAA,YAAA,GAAuB,MAAM;EAC5J,MAAM,SAAS,GAAGzS,gBAAoB,EAAA;EACtC,MAAM,MAAM,GAAGD,aAAiB,EAAA;EAChC,MAAM,OAAO,GAAGE,cAAkB,EAAA;EAClC,OAAuB,CAAA,YAAA,GAAA;MACnB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,oBAAoB,CAAC;GAC3F;EACD,OAA4B,CAAA,iBAAA,GAAA;MACxB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK;AAC1C,YAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,QAAQ;AAChF,YAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC;GACrE;AACD,EAAA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE;AACvF,MAAI,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;MAClB,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE;MAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;AAC1D,MAAI,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,IAAI,aAAa,IAAI,SAAS,CAAC,EAAE;AACvH,UAAQ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;AAC7B;WACS;AACT,UAAQ,YAAY,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD;AACA;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;EACjC,SAAS,gBAAgB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE;AACzE,MAAI,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;MAClB,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE;MAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;AAC1D,MAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;AACzB,MAAI,IAAI,EAAE,aAAa,IAAI,SAAS,CAAC,EAAE;UAC/B,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACjD;AACA;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;AAC3C,EAAA,SAAS,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE;MACtC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AACjD,MAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/N;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;AAC3C,EAAA,SAAS,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;AAC3E;MACI,IAAI,SAAS,KAAK,SAAS;AAC/B,UAAQ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;MAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,MAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;UACxD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;UACnE,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACpM,UAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7G,UAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,cAAY,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;AACrE,cAAY,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAC5D;AACA,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;AACnC,EAAA,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE;MAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AACxC,MAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;MAClM,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5D;AACA,EAAA,SAAS,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE;MAC5B,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE;AAC/C,MAAI,IAAI,SAAS,CAAC,MAAM,EAAE;UAClB,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE;WACS;AACT,UAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACnE,UAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACzB;AACA;AACA,EAAA,MAAM,CAAC,GAAG;MACN,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;MACtC,UAAU,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;MAC5C,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;MACpC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;MAChD,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;MACtC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;MACpC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;GACnD;AACD,EAAA,SAAS,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;AACjD,MAAI,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,EAAE;MAC/B,IAAI,YAAY,KAAK,KAAK;UACtB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MAChC,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;AAC9C;EACA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE;AAClD,MAAI,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG;MACvB,MAAM,SAAS,GAAG;AACtB,UAAQ,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC;AACzC,UAAQ,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;OACnC;AACL,MAAI,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC1C,MAAI,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACnC;EACA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;MACxD,MAAM,QAAQ,GAAG;YACX,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpG,YAAU,SAAS;MACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC3G;AACA,EAAA,SAAS,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE;MACvF,IAAI,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;MAC7F,IAAI,UAAU,EAAE;AACpB,UAAQ,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzG;AACA,MAAI,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC;AAClC;EACA,SAAS,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE;MAC1D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,GAAG;MAC9C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE;AAC/D,MAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,MAAM,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjI,MAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;UACf,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,OAAO,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC1F;AACA,MAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,UAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChJ;AACA,MAAI,IAAI,YAAY;UACZ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACtD;AACA;;;;;;;;;;ACzHA,CAAA,MAAM,CAAC,cAAc,CAACyS,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,YAAA,CAAA,iBAAyB,GAAGA,YAAA,CAAA,oBAA4B,GAAG,MAAM;CACjE,MAAM,QAAQ,GAAG1S,eAAoB,EAAA;CACrC,MAAM,SAAS,GAAGD,gBAAqB,EAAA;CACvC,MAAM,OAAO,GAAGE,cAAmB,EAAA;AACnC,CAAA,MAAM,SAAS,GAAG;KACd,OAAO,EAAE,yBAAyB;EACrC;CACD,SAAS,oBAAoB,CAAC,EAAE,EAAE;KAC9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE;AAC5C,KAAI,IAAI,MAAM,KAAK,KAAK,EAAE;AAC1B,SAAQ,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC;AACnC;UACS,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;SAC1D,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACxC;UACS;AACT,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACnE,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB;AACA;AACA,CAAAyS,YAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE;AACtC,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;AAC9B,KAAI,IAAI,MAAM,KAAK,KAAK,EAAE;SAClB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACtB,gBAAgB,CAAC,EAAE,CAAC;AAC5B;UACS;SACD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7B;AACA;AACA,CAAAA,YAAA,CAAA,iBAAyB,GAAG,iBAAiB;AAC7C,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE;AACjD,KAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AAC5B;KACI,MAAM,GAAG,GAAG;AAChB,SAAQ,GAAG;SACH,OAAO,EAAE,cAAc;AAC/B,SAAQ,IAAI;SACJ,MAAM,EAAE,KAAK;SACb,UAAU,EAAE,KAAK;SACjB,WAAW,EAAE,KAAK;SAClB,MAAM,EAAE,EAAE;AAClB,SAAQ,EAAE;MACL;AACL,KAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC;AAC3E;AACA;;;;;;;;;;;;;AChDA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,OAAA,CAAA,QAAgB,GAAGA,OAAA,CAAA,UAAkB,GAAG,MAAM;AAC9C,CAAA,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AACxF,CAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;CACrC,SAAS,UAAU,CAAC,CAAC,EAAE;KACnB,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD;AACA,CAAAA,OAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B,CAAA,SAAS,QAAQ,GAAG;KAChB,MAAM,MAAM,GAAG;SACX,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;SACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;SACrC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;SACnC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;MACxC;AACL,KAAI,OAAO;AACX,SAAQ,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SAC9D,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACzF,SAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACnB,GAAG,EAAE,EAAE;SACP,QAAQ,EAAE,EAAE;MACf;AACL;AACA,CAAAA,OAAA,CAAA,QAAgB,GAAG,QAAQ;AAC3B;;;;;;;;;;;ACxBA,CAAA,MAAM,CAAC,cAAc,CAACC,eAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,eAAA,CAAA,aAAqB,GAAGA,eAAsB,CAAA,cAAA,GAAGA,eAA6B,CAAA,qBAAA,GAAG,MAAM;CACvF,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE;KACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC,KAAI,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;AACnE;AACA,CAAAA,eAAA,CAAA,qBAA6B,GAAG,qBAAqB;AACrD,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClE;AACA,CAAAA,eAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,KAAI,IAAI,EAAE;KACN,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;AAC9C,UAAS,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;AAC5H;AACA,CAAAA,eAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;ACjBA,CAAA,MAAM,CAAC,cAAc,CAACC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,UAAA,CAAA,eAAuB,GAAGA,UAAA,CAAA,cAAsB,GAAGA,UAAA,CAAA,aAAqB,GAAGA,UAA8B,CAAA,sBAAA,GAAGA,UAAoB,CAAA,YAAA,GAAGA,UAAsB,CAAA,cAAA,GAAGA,UAAgB,CAAA,QAAA,GAAG,MAAM;CACrL,MAAM,OAAO,GAAG7S,cAAmB,EAAA;CACnC,MAAM,eAAe,GAAGD,sBAA0B,EAAA;CAClD,MAAM,QAAQ,GAAGE,eAAoB,EAAA;CACrC,MAAM,SAAS,GAAGC,gBAAqB,EAAA;CACvC,MAAM,MAAM,GAAGM,aAAkB,EAAA;AACjC,CAAA,IAAI,QAAQ;CACZ,CAAC,UAAU,QAAQ,EAAE;KACjB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;KAC7C,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;EAC5C,EAAE,QAAQ,KAAKqS,UAAA,CAAA,QAAgB,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC;CAClD,SAAS,cAAc,CAAC,MAAM,EAAE;KAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;KACvC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;KACtC,IAAI,OAAO,EAAE;AACjB,SAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;AACrC,aAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE;UACS;SACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC5D,aAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE;AACA,SAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;AACpC,aAAY,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B;AACA,KAAI,OAAO,KAAK;AAChB;AACA,CAAAA,UAAA,CAAA,cAAsB,GAAG,cAAc;AACvC;CACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,KAAI,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;KACrD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;AACvC,SAAQ,OAAO,KAAK;AACpB,KAAI,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E;AACA,CAAAA,UAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,sBAAsB,CAAC,EAAE,EAAE,KAAK,EAAE;KACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;AAC3D,KAAI,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;SAC/B,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,qBAAqB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9G,IAAI,UAAU,EAAE;AACpB,SAAQ,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC;AACzF,SAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;aACpB,IAAI,QAAQ,CAAC,MAAM;AAC/B,iBAAgB,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC/C;iBACgB,eAAe,CAAC,EAAE,CAAC;AACnC,UAAS,CAAC;AACV;AACA,KAAI,OAAO,UAAU;AACrB;AACA,CAAAA,UAAA,CAAA,sBAA8B,GAAG,sBAAsB;AACvD,CAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAA,SAAS,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE;AAC3C,KAAI,OAAO;WACD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC;AAC5F,WAAU,EAAE;AACZ;AACA,CAAA,SAAS,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;KACrC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,KAAI,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACpE,KAAI,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;SAC9B,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM;AAClH,cAAa,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACvD,cAAa,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;cAClD,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAClG;AACA,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;AACvD,KAAI,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;AAC9B,SAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,EAAE;aACrE,kBAAkB,CAAC,CAAC,CAAC;AACjC;AACA;KACI,GAAG,CAAC,IAAI,EAAE;KACV,eAAe,CAAC,EAAE,CAAC;KACnB,GAAG,CAAC,KAAK,EAAE;AACf,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM;AAC9D,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;AACjC,SAAQ,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC;AACrC,MAAK,CAAC;AACN,KAAI,SAAS,kBAAkB,CAAC,CAAC,EAAE;AACnC,SAAQ,QAAQ,CAAC;AACjB,aAAY,KAAK,QAAQ;iBACT;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC;AAClG,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;AAC/D,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC3C;AAChB,aAAY,KAAK,QAAQ;iBACT;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC;AACjF,kBAAkB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7E,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjD;AAChB,aAAY,KAAK,SAAS;iBACV;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAClF,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;AAChG,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjD;AAChB,aAAY,KAAK,SAAS;iBACV;sBACK,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;AACvG,sBAAqB,MAAM,CAAC,OAAO,EAAE,KAAK;AAC1C,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;AAClF,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;iBAC1B;AAChB,aAAY,KAAK,MAAM;iBACP,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACnG,iBAAgB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;iBACzB;AAChB,aAAY,KAAK,OAAO;iBACR;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AACrF,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;AAC/D,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE;AACA;AACA;CACA,SAAS,gBAAgB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE;AACzE;AACA,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3I;AACA,CAAA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE;AAC/E,KAAI,MAAM,EAAE,GAAG,OAAO,KAAK,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG;AAC9F,KAAI,IAAI,IAAI;AACZ,KAAI,QAAQ,QAAQ;AACpB,SAAQ,KAAK,MAAM;AACnB,aAAY,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AACxD,SAAQ,KAAK,OAAO;AACpB,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;aAChD;AACZ,SAAQ,KAAK,QAAQ;aACT,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC,CAAC;aAC1F;AACZ,SAAQ,KAAK,SAAS;aACV,IAAI,GAAG,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACpE;AACZ,SAAQ,KAAK,QAAQ;aACT,IAAI,GAAG,OAAO,EAAE;aAChB;SACJ;aACI,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtE;AACA,KAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;KACrE,SAAS,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE;SACpC,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;AAC1J;AACA;AACA,CAAAA,UAAA,CAAA,aAAqB,GAAG,aAAa;CACrC,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;AAC9D,KAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,SAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;AACrE;AACA,KAAI,IAAI,IAAI;KACR,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACrC,SAAQ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;SAC5D,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACrE,OAAO,KAAK,CAAC,IAAI;SACjB,OAAO,KAAK,CAAC,KAAK;SAClB,OAAO,KAAK,CAAC,MAAM;AAC3B;UACS;AACT,SAAQ,IAAI,GAAG,SAAS,CAAC,GAAG;AAC5B;KACI,IAAI,KAAK,CAAC,MAAM;SACZ,OAAO,KAAK,CAAC,OAAO;AAC5B,KAAI,KAAK,MAAM,CAAC,IAAI,KAAK;SACjB,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACpF,KAAI,OAAO,IAAI;AACf;AACA,CAAAA,UAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,MAAM,SAAS,GAAG;AAClB,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChD,KAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,OAAO,MAAM,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;EACpJ;CACD,SAAS,eAAe,CAAC,EAAE,EAAE;AAC7B,KAAI,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC;KACnC,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC;AAC7C;AACA,CAAAA,UAAA,CAAA,eAAuB,GAAG,eAAe;CACzC,SAAS,mBAAmB,CAAC,EAAE,EAAE;KAC7B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AACpC,KAAI,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;AACrE,KAAI,OAAO;AACX,SAAQ,GAAG;SACH,OAAO,EAAE,MAAM;AACvB,SAAQ,IAAI;AACZ,SAAQ,MAAM,EAAE,MAAM,CAAC,IAAI;AAC3B,SAAQ,UAAU;SACV,WAAW,EAAE,UAAU;SACvB,YAAY,EAAE,MAAM;SACpB,MAAM,EAAE,EAAE;AAClB,SAAQ,EAAE;MACL;AACL;AACA;;;;;;;;;;;ACzMA,CAAA,MAAM,CAAC,cAAc,CAACC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAsBA,UAAA,CAAA,cAAA,GAAG,MAAM;CAC/B,MAAM,SAAS,GAAG9S,gBAAqB,EAAA;CACvC,MAAM,MAAM,GAAGD,aAAkB,EAAA;AACjC,CAAA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;KAC5B,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;AAC3C,KAAI,IAAI,EAAE,KAAK,QAAQ,IAAI,UAAU,EAAE;AACvC,SAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AACtC,aAAY,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC3D;AACA;UACS,IAAI,EAAE,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,SAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACpE;AACA;AACA,CAAA+S,UAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;KAC3C,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAC7C,IAAI,YAAY,KAAK,SAAS;SAC1B;KACJ,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;KAC/E,IAAI,aAAa,EAAE;AACvB,SAAQ,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,CAAC;SACvE;AACR;AACA,KAAI,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC;AACjE,KAAI,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;SAC9B,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC;AACnG;AACA;AACA;AACA,KAAI,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAClG;AACA;;;;;;;;;;;;;ACjCA,CAAA,MAAM,CAAC,cAAc,CAACC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAqBA,MAAA,CAAA,aAAA,GAAGA,MAAqB,CAAA,aAAA,GAAGA,MAAkB,CAAA,UAAA,GAAGA,MAAwB,CAAA,gBAAA,GAAGA,MAAwB,CAAA,gBAAA,GAAGA,MAA2B,CAAA,mBAAA,GAAGA,MAAwB,CAAA,gBAAA,GAAGA,qBAAsB,GAAGA,MAAA,CAAA,aAAqB,GAAGA,MAAA,CAAA,WAAmB,GAAGA,MAAA,CAAA,iBAAyB,GAAGA,MAAA,CAAA,gBAAwB,GAAGA,MAAA,CAAA,sBAA8B,GAAG,MAAM;CACzV,MAAM,SAAS,GAAG/S,gBAA6B,EAAA;CAC/C,MAAM,MAAM,GAAGD,aAA0B,EAAA;CACzC,MAAM,OAAO,GAAGE,cAA2B,EAAA;CAC3C,MAAM,MAAM,GAAGF,aAA0B,EAAA;AACzC,CAAA,SAAS,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE;KACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AACjC,KAAI,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM;SACnE,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;SACpE,GAAG,CAAC,KAAK,EAAE;AACnB,MAAK,CAAC;AACN;AACA,CAAAgT,MAAA,CAAA,sBAA8B,GAAG,sBAAsB;AACvD,CAAA,SAAS,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;KACxE,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7K;AACA,CAAAA,MAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE;KACrC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;KACjD,GAAG,CAAC,KAAK,EAAE;AACf;AACA,CAAAA,MAAA,CAAA,iBAAyB,GAAG,iBAAiB;CAC7C,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;AAClC;AACA,SAAQ,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;SACpC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC;AAChE,MAAK,CAAC;AACN;AACA,CAAAA,MAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxC,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5E;AACA,CAAAA,MAAA,CAAA,aAAqB,GAAG,aAAa;CACrC,SAAS,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE;KACxD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,cAAc,CAAC;KAC5F,OAAO,aAAa,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AACrG;AACA,CAAAA,MAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE;KAC1D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,cAAc,CAAC;AAChG,KAAI,OAAO,aAAa,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AACjH;AACA,CAAAA,MAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,mBAAmB,CAAC,SAAS,EAAE;KACpC,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,GAAG,EAAE;AACnF;AACA,CAAAA,MAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE;KACrC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG;AACA,CAAAA,MAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;AACjI,KAAI,MAAM,aAAa,GAAG,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;KACjH,MAAM,MAAM,GAAG;SACX,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;SACjG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;SAC3C,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AACnE,SAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;MACvD;AACL,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU;AAC1B,SAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;KACjF,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;KAC1E,OAAO,OAAO,KAAK,SAAS,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjI;AACA,CAAAA,MAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAC/C,CAAA,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE;KAChD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AAC3C,KAAI,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI;KAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACjC,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;AACrC,SAAQ,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE;SAClB,GAAG,EAAE,EAAE;AACf,SAAQ,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,YAAY,GAAG,SAAS,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACjI,MAAK,CAAC;AACN;AACA,CAAAA,MAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,aAAa,CAAC,GAAG,EAAE;KACxB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;KACtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,KAAI,IAAI,EAAE,CAAC,SAAS,EAAE;SACd,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;SACvC,aAAa,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxD,SAAQ,OAAO,QAAQ;AACvB;AACA,KAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;AACxB,KAAI,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpC,KAAI,OAAO,KAAK;AAChB,KAAI,SAAS,aAAa,CAAC,QAAQ,EAAE;SAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvE,SAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK;aAC7B,GAAG,CAAC,SAAS,CAAC;AAC1B,iBAAgB,OAAO;iBACP,QAAQ,EAAE,CAAC;AAC3B,iBAAgB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;cAChC,EAAE,KAAK,CAAC;AACrB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;AACvD,UAAS,CAAC;AACV;AACA;AACA,CAAAA,MAAA,CAAA,aAAqB,GAAG,aAAa;CACrC,SAAS,aAAa,CAAC,GAAG,EAAE;KACxB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;AAC5C;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAC9B,SAAQ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;KAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;KAChF,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;SACnC;KACJ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;KACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,KAAI,GAAG,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAChD,SAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;AACrC,aAAY,OAAO;aACP,UAAU,EAAE,CAAC;aACb,aAAa,EAAE,IAAI;UACtB,EAAE,QAAQ,CAAC;SACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAChE;AACA;SACQ,IAAI,CAAC,MAAM;AACnB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7C,MAAK,CAAC,CAAC;AACP,KAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/D;AACA,CAAAA,MAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;ACjIA,CAAA,MAAM,CAAC,cAAc,CAACC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAA4BA,SAAA,CAAA,oBAAA,GAAGA,yBAAuB,GAAGA,SAAA,CAAA,eAAuB,GAAGA,SAAwB,CAAA,gBAAA,GAAG,MAAM;CACpH,MAAM,SAAS,GAAGhT,gBAAqB,EAAA;CACvC,MAAM,OAAO,GAAGD,cAAmB,EAAA;CACnC,MAAM,MAAM,GAAGE,aAAkC,EAAA;CACjD,MAAM,QAAQ,GAAGC,eAAoB,EAAA;AACrC,CAAA,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,KAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC1D,KAAI,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;KACrE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;AAC3D,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK;SAChC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC;KAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC/B,GAAG,CAAC,SAAS,CAAC;SACV,MAAM,EAAE,WAAW;AAC3B,SAAQ,UAAU,EAAE,SAAS,CAAC,GAAG;AACjC,SAAQ,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC/C,YAAY,EAAE,SAAS;SACvB,aAAa,EAAE,IAAI;MACtB,EAAE,KAAK,CAAC;AACb,KAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1C;AACA,CAAA8S,SAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;AACnC,KAAI,IAAI,EAAE;AACV,KAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,GAAG;AACjE,KAAI,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9B,KAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ;KAC3G,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;KACtD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAClC,KAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC;KACtC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;KAC/D,SAAS,eAAe,GAAG;AAC/B,SAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,aAAY,WAAW,EAAE;aACb,IAAI,GAAG,CAAC,SAAS;iBACb,UAAU,CAAC,GAAG,CAAC;AAC/B,aAAY,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACzC;cACa;aACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE;aAC7D,IAAI,GAAG,CAAC,SAAS;iBACb,UAAU,CAAC,GAAG,CAAC;aACnB,UAAU,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACpD;AACA;KACI,SAAS,aAAa,GAAG;SACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;AAClD,SAAQ,GAAG,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3O,SAAQ,OAAO,QAAQ;AACvB;KACI,SAAS,YAAY,GAAG;AAC5B,SAAQ,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;AACrE,SAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;AACtC,SAAQ,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;AAClC,SAAQ,OAAO,YAAY;AAC3B;KACI,SAAS,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE;AACzF,SAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI;AACzF,SAAQ,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC;AAClF,SAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;AAC5I;AACA,KAAI,SAAS,UAAU,CAAC,MAAM,EAAE;AAChC,SAAQ,IAAI,EAAE;AACd,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC;AACnG;AACA;AACA,CAAAA,SAAA,CAAA,eAAuB,GAAG,eAAe;CACzC,SAAS,UAAU,CAAC,GAAG,EAAE;KACrB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AACjC,KAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH;AACA,CAAA,SAAS,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE;AAC5B,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;AACvB,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;SACpD;AACR,cAAa,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;cAC7I,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACzF,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;AACvC,MAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACzB;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;KAC3C,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM;AACtC,SAAQ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AACvD;AACA,CAAA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;KACtC,IAAI,MAAM,KAAK,SAAS;SACpB,MAAM,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACjE,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,MAAM,IAAI,UAAU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7I;CACA,SAAS,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK,EAAE;AACrE;AACA,KAAI,QAAQ,CAAC,UAAU,CAAC,MAAM;SACtB,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;AACvC,eAAc,KAAK,CAAC,OAAO,CAAC,MAAM;AAClC,eAAc,EAAE,KAAK;AACrB,mBAAkB,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;AAC9E,mBAAkB,OAAO,MAAM,IAAI,EAAE,KAAK,cAAc,IAAI,OAAO,MAAM,IAAI,WAAW,CAAC,CAAC;AAC1F;AACA,CAAAA,SAAA,CAAA,eAAuB,GAAG,eAAe;AACzC,CAAA,SAAS,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;AACnF;KACI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;AAC/F,SAAQ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACnD;AACA,KAAI,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY;AACjC,KAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE;AAC5H,SAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,wCAAwC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChG;AACA,KAAI,IAAI,GAAG,CAAC,cAAc,EAAE;SACpB,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACjD,IAAI,CAAC,KAAK,EAAE;AACpB,aAAY,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,4BAA4B,EAAE,aAAa,CAAC,GAAG,CAAC;iBAC5E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AAC1D,aAAY,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;AAC7C,iBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACtC;AACA,iBAAgB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC;AACpC;AACA;AACA;AACA,CAAAA,SAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD;;;;;;;;;;;AC1HA,CAAA,MAAM,CAAC,cAAc,CAACC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,WAAA,CAAA,mBAA2B,GAAGA,WAA2B,CAAA,mBAAA,GAAGA,WAAoB,CAAA,YAAA,GAAG,MAAM;CACzF,MAAM,SAAS,GAAGjT,gBAAqB,EAAA;CACvC,MAAM,MAAM,GAAGD,aAAkB,EAAA;AACjC,CAAA,SAAS,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE;KAChG,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AACvD,SAAQ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AAC/E;AACA,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;SACvB,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SAC9B,OAAO,UAAU,KAAK;eAChB;iBACE,MAAM,EAAE,GAAG;iBACX,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACrG,iBAAgB,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/D;eACc;AACd,iBAAgB,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;AACvC,iBAAgB,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;iBAC9H,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;cAC5F;AACb;AACA,KAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,SAAQ,IAAI,UAAU,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE;AACnG,aAAY,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;AAC1G;AACA,SAAQ,OAAO;AACf,aAAY,MAAM;AAClB,aAAY,UAAU;AACtB,aAAY,YAAY;AACxB,aAAY,aAAa;UAChB;AACT;AACA,KAAI,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AAClE;AACA,CAAAkT,WAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,mBAAmB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;KAC3G,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;AACtD,SAAQ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAC9E;AACA,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACtB,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;SACxB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE;AACnD,SAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;SAC5G,gBAAgB,CAAC,QAAQ,CAAC;AAClC,SAAQ,SAAS,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnI,SAAQ,SAAS,CAAC,kBAAkB,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;SAC7D,SAAS,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,kBAAkB,CAAC;AAC9E;AACA,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;SACpB,MAAM,QAAQ,GAAG,IAAI,YAAY,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACrF,gBAAgB,CAAC,QAAQ,CAAC;SAC1B,IAAI,YAAY,KAAK,SAAS;AACtC,aAAY,SAAS,CAAC,YAAY,GAAG,YAAY;AACjD;AACA;AACA,KAAI,IAAI,SAAS;AACjB,SAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,KAAI,SAAS,gBAAgB,CAAC,SAAS,EAAE;AACzC,SAAQ,SAAS,CAAC,IAAI,GAAG,SAAS;SAC1B,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC9C,SAAQ,SAAS,CAAC,SAAS,GAAG,EAAE;AAChC,SAAQ,EAAE,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AACxC,SAAQ,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI;SAC9B,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC1D;AACA;AACA,CAAAA,WAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,mBAAmB,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;KAC/G,IAAI,aAAa,KAAK,SAAS;AACnC,SAAQ,SAAS,CAAC,aAAa,GAAG,aAAa;KAC3C,IAAI,YAAY,KAAK,SAAS;AAClC,SAAQ,SAAS,CAAC,YAAY,GAAG,YAAY;KACzC,IAAI,SAAS,KAAK,SAAS;AAC/B,SAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,KAAI,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAClD,KAAI,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AACxC;AACA,CAAAA,WAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD;;;;;;;;;;;;;AC9EA;;;;AAIA,CAAA,aAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,GAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;;AAE1B,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;KAC1D,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK;;AAErD,KAAI,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI;AACvB,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1B,OAAM,MAAM,GAAG,CAAC,CAAC,MAAM;OACjB,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK;OACpC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAChC,SAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;AAC5C,OAAM,OAAO,IAAI;AACjB;;;;KAII,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;KACjF,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;KAC9E,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;;AAEtF,KAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,KAAI,MAAM,GAAG,IAAI,CAAC,MAAM;AACxB,KAAI,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK;;KAElD,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;AAC9B,OAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;;KAErE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;AACjC,OAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEvB,OAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK;AAC9C;;AAEA,KAAI,OAAO,IAAI;AACf;;AAEA;AACA,GAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;EACtB;;;;;;;;;;;;CC3CD,IAAI,QAAQ,GAAGC,oBAAA,CAAA,OAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D;AACA,GAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;KAC7B,EAAE,GAAG,IAAI;KACT,IAAI,GAAG,EAAE;AACb;;AAEA,GAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE;AACpB,GAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,EAAE;GAClE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE;;AAErC,GAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;EAC/C;;;CAGD,QAAQ,CAAC,QAAQ,GAAG;GAClB,eAAe,EAAE,IAAI;GACrB,KAAK,EAAE,IAAI;GACX,QAAQ,EAAE,IAAI;GACd,oBAAoB,EAAE,IAAI;GAC1B,aAAa,EAAE,IAAI;GACnB,GAAG,EAAE,IAAI;GACT,EAAE,EAAE,IAAI;GACR,IAAI,EAAE,IAAI;AACZ,GAAE,IAAI,EAAE;EACP;;CAED,QAAQ,CAAC,aAAa,GAAG;GACvB,KAAK,EAAE,IAAI;GACX,KAAK,EAAE,IAAI;GACX,KAAK,EAAE,IAAI;AACb,GAAE,KAAK,EAAE;EACR;;CAED,QAAQ,CAAC,aAAa,GAAG;GACvB,KAAK,EAAE,IAAI;GACX,WAAW,EAAE,IAAI;GACjB,UAAU,EAAE,IAAI;GAChB,iBAAiB,EAAE,IAAI;AACzB,GAAE,YAAY,EAAE;EACf;;CAED,QAAQ,CAAC,YAAY,GAAG;GACtB,OAAO,EAAE,IAAI;GACb,IAAI,EAAE,IAAI;GACV,KAAK,EAAE,IAAI;GACX,QAAQ,EAAE,IAAI;GACd,OAAO,EAAE,IAAI;GACb,OAAO,EAAE,IAAI;GACb,gBAAgB,EAAE,IAAI;GACtB,gBAAgB,EAAE,IAAI;GACtB,UAAU,EAAE,IAAI;GAChB,SAAS,EAAE,IAAI;GACf,SAAS,EAAE,IAAI;GACf,OAAO,EAAE,IAAI;GACb,MAAM,EAAE,IAAI;GACZ,QAAQ,EAAE,IAAI;GACd,QAAQ,EAAE,IAAI;GACd,WAAW,EAAE,IAAI;GACjB,aAAa,EAAE,IAAI;AACrB,GAAE,aAAa,EAAE;EAChB;;;CAGD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;AACvH,GAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrE,KAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;AAC1F,KAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,OAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC3B,OAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9B,SAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC3C,WAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,aAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAClH;AACA,QAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAChD,SAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC3C,WAAU,KAAK,IAAI,IAAI,IAAI,GAAG;AAC9B,aAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;AAC1I;QACO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;SACxF,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC;AAC9F;AACA;AACA,KAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;AAC3F;AACA;;;CAGA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACrD;;;;;;;;;AC3FA,CAAA,MAAM,CAAC,cAAc,CAACC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,SAAA,CAAA,aAAqB,GAAGA,SAAA,CAAA,UAAkB,GAAGA,SAAA,CAAA,WAAmB,GAAGA,SAAA,CAAA,YAAoB,GAAGA,SAAA,CAAA,WAAmB,GAAGA,SAAA,CAAA,SAAiB,GAAG,MAAM;CAC1I,MAAM,MAAM,GAAGnT,aAAiB,EAAA;CAChC,MAAM,KAAK,GAAGD,oBAA0B,EAAA;CACxC,MAAM,QAAQ,GAAGE,2BAA+B,EAAA;AAChD;AACA,CAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;AAC/B,KAAI,MAAM;AACV,KAAI,QAAQ;AACZ,KAAI,SAAS;AACb,KAAI,WAAW;AACf,KAAI,WAAW;AACf,KAAI,eAAe;AACnB,KAAI,eAAe;AACnB,KAAI,UAAU;AACd,KAAI,UAAU;AACd,KAAI,SAAS;AACb,KAAI,SAAS;AACb,KAAI,aAAa;AACjB,KAAI,YAAY;AAChB,KAAI,UAAU;AACd,KAAI,MAAM;AACV,KAAI,OAAO;AACX,EAAC,CAAC;AACF,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE;AACzC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;AAClC,SAAQ,OAAO,IAAI;KACf,IAAI,KAAK,KAAK,IAAI;AACtB,SAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC1B,IAAI,CAAC,KAAK;AACd,SAAQ,OAAO,KAAK;AACpB,KAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK;AACrC;AACA,CAAAkT,SAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B,CAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;AAC7B,KAAI,MAAM;AACV,KAAI,eAAe;AACnB,KAAI,kBAAkB;AACtB,KAAI,aAAa;AACjB,KAAI,gBAAgB;AACpB,EAAC,CAAC;CACF,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,SAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC,aAAY,OAAO,IAAI;AACvB,SAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAClD,aAAY,OAAO,IAAI;SACf,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC;AACjD,aAAY,OAAO,IAAI;AACvB;AACA,KAAI,OAAO,KAAK;AAChB;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;KACvB,IAAI,KAAK,GAAG,CAAC;AACjB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;SACtB,IAAI,GAAG,KAAK,MAAM;AAC1B,aAAY,OAAO,QAAQ;AAC3B,SAAQ,KAAK,EAAE;AACf,SAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;aACvB;SACJ,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;aAChC,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACjF;SACQ,IAAI,KAAK,KAAK,QAAQ;AAC9B,aAAY,OAAO,QAAQ;AAC3B;AACA,KAAI,OAAO,KAAK;AAChB;CACA,SAAS,WAAW,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE;KAC/C,IAAI,SAAS,KAAK,KAAK;AAC3B,SAAQ,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;KACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAChC,KAAI,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC;AACA,CAAAA,SAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,SAAS,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE;KAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;KACxC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACzC;AACA,CAAAA,SAAA,CAAA,YAAoB,GAAG,YAAY;CACnC,MAAM,mBAAmB,GAAG,OAAO;CACnC,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,KAAI,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE;AACxD;AACA,CAAAA,SAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,SAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;AAC1C,KAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;KACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACvC;AACA,CAAAA,SAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,MAAM,MAAM,GAAG,uBAAuB;AACtC,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;AACvC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;AAClC,SAAQ,OAAO,EAAE;KACb,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI;KAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACzD,KAAI,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;KAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;KACzD,MAAM,SAAS,GAAG,EAAE;AACxB,KAAI,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AAChC,KAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,KAAK;SACpE,IAAI,aAAa,KAAK,SAAS;aAC3B;AACZ,SAAQ,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO;AAC7C,SAAQ,IAAI,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;AAChD,SAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ;AAC5C,aAAY,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SAClD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;SACjC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;AAChD,SAAQ,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW;AACtC,SAAQ,SAAS,MAAM,CAAC,GAAG,EAAE;AAC7B;aACY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO;AAC1D,aAAY,GAAG,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7E,aAAY,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACnC,iBAAgB,MAAM,QAAQ,CAAC,GAAG,CAAC;AACnC,aAAY,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;aACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,aAAY,IAAI,OAAO,QAAQ,IAAI,QAAQ;AAC3C,iBAAgB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9C,aAAY,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;iBAC7B,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3D;AACA,kBAAiB,IAAI,GAAG,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE;AACpD,iBAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;qBAChB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAC9D,qBAAoB,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG;AACxC;sBACqB;AACrB,qBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC7C;AACA;AACA,aAAY,OAAO,GAAG;AACtB;AACA,SAAQ,SAAS,SAAS,CAAC,MAAM,EAAE;AACnC,aAAY,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AAC3C,iBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;qBACpB,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjE,iBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C;AACA;AACA,MAAK,CAAC;AACN,KAAI,OAAO,SAAS;KAChB,SAAS,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;SACvC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACpD,aAAY,MAAM,QAAQ,CAAC,GAAG,CAAC;AAC/B;AACA,KAAI,SAAS,QAAQ,CAAC,GAAG,EAAE;SACnB,OAAO,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAC/E;AACA;AACA,CAAAA,SAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;ACzJA,CAAA,MAAM,CAAC,cAAc,CAACC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,UAAA,CAAA,OAAe,GAAGA,UAAkB,CAAA,UAAA,GAAGA,UAA4B,CAAA,oBAAA,GAAG,MAAM;CAC5E,MAAM,YAAY,GAAGpT,mBAAuB,EAAA;CAC5C,MAAM,UAAU,GAAGD,iBAAqB,EAAA;CACxC,MAAM,eAAe,GAAGE,sBAA0B,EAAA;CAClD,MAAM,UAAU,GAAGF,iBAAqB,EAAA;CACxC,MAAM,UAAU,GAAGG,iBAAqB,EAAA;CACxC,MAAM,SAAS,GAAGM,gBAAoB,EAAA;CACtC,MAAM,WAAW,GAAGC,kBAAsB,EAAA;CAC1C,MAAM,SAAS,GAAGN,gBAAqB,EAAA;CACvC,MAAM,OAAO,GAAGO,cAAmB,EAAA;CACnC,MAAM,SAAS,GAAGM,gBAAqB,EAAA;CACvC,MAAM,MAAM,GAAGL,aAAkB,EAAA;CACjC,MAAM,QAAQ,GAAGC,eAAoB,EAAA;AACrC;CACA,SAAS,oBAAoB,CAAC,EAAE,EAAE;AAClC,KAAI,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;SACjB,aAAa,CAAC,EAAE,CAAC;AACzB,SAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE;aACvB,gBAAgB,CAAC,EAAE,CAAC;aACpB;AACZ;AACA;AACA,KAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC1E;AACA,CAAAwS,UAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,gBAAgB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE;AAChF,KAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,SAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM;aAClH,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,aAAY,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3C,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,UAAS,CAAC;AACV;UACS;SACD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChL;AACA;CACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,KAAI,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9R;AACA,CAAA,SAAS,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE;KACrC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;AACzC,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3H,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACvH,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvI,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC3G,IAAI,IAAI,CAAC,UAAU;AAC3B,aAAY,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AACnI,MAAK,EAAE,MAAM;SACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC5D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SACjE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACjF,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SACvD,IAAI,IAAI,CAAC,UAAU;aACf,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,MAAK,CAAC;AACN;CACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;KAC1B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACpC,KAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM;AAC/B,SAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;aAChC,cAAc,CAAC,EAAE,CAAC;SACtB,cAAc,CAAC,EAAE,CAAC;SAClB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;SAClC,IAAI,IAAI,CAAC,WAAW;aAChB,cAAc,CAAC,EAAE,CAAC;SACtB,eAAe,CAAC,EAAE,CAAC;SACnB,aAAa,CAAC,EAAE,CAAC;AACzB,MAAK,CAAC;KACF;AACJ;CACA,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B;AACA,KAAI,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;KAChC,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;KACnF,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;KACjJ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACrJ;AACA,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,KAAI,MAAM,KAAK,GAAG,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpE,KAAI,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG;AAC1H;AACA;AACA,CAAA,SAAS,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;AAClC,KAAI,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;SACjB,aAAa,CAAC,EAAE,CAAC;AACzB,SAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE;AACnC,aAAY,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC;aAC3B;AACZ;AACA;KACI,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;AAC7C,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;SAC1B,OAAO,CAAC,MAAM;AACtB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM;SACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/B,aAAY,OAAO,IAAI;AACvB,KAAI,OAAO,KAAK;AAChB;CACA,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,KAAI,OAAO,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS;AACxC;AACA,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE;KACjC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AACpC,KAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;SAChC,cAAc,CAAC,EAAE,CAAC;KACtB,aAAa,CAAC,EAAE,CAAC;KACjB,gBAAgB,CAAC,EAAE,CAAC;AACxB,KAAI,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAChE,KAAI,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC;AAClC;KACI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF;CACA,SAAS,aAAa,CAAC,EAAE,EAAE;KACvB,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;KACjC,oBAAoB,CAAC,EAAE,CAAC;AAC5B;AACA,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE;AACxC,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG;SACX,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;AACvD,KAAI,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC;AAC3D,KAAI,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,sBAAsB,EAAE,EAAE,EAAE,KAAK,CAAC;KACtE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;AACvD;CACA,SAAS,oBAAoB,CAAC,EAAE,EAAE;KAC9B,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAChD,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3G,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,0CAA0C,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AACvF;AACA;CACA,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B,KAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/B,KAAI,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;SACvE,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,uCAAuC,CAAC;AAChF;AACA;CACA,SAAS,aAAa,CAAC,EAAE,EAAE;AAC3B,KAAI,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7C,KAAI,IAAI,KAAK;SACL,EAAE,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACpF;CACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;AAC9B,KAAI,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;AAChD,SAAQ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;AACtD;AACA,CAAA,SAAS,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;AACzE,KAAI,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ;AAC/B,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;SACxB,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,UAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;AACjD,SAAQ,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC;AACzE,SAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AACxE,SAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrH;AACA;CACA,SAAS,aAAa,CAAC,EAAE,EAAE;AAC3B,KAAI,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE;AACtE,KAAI,IAAI,SAAS,CAAC,MAAM,EAAE;AAC1B;AACA,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClM;UACS;SACD,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAC9E,IAAI,IAAI,CAAC,WAAW;aAChB,eAAe,CAAC,EAAE,CAAC;SACvB,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtE;AACA;CACA,SAAS,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;AAC3D,KAAI,IAAI,KAAK,YAAY,SAAS,CAAC,IAAI;AACvC,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;AAChE,KAAI,IAAI,KAAK,YAAY,SAAS,CAAC,IAAI;AACvC,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;AAChE;CACA,SAAS,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE;AAC1D,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3D,KAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;KACtB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;SACjG,GAAG,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SACpE;AACR;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,GAAG;AACjB,SAAQ,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC;AACnC,KAAI,GAAG,CAAC,KAAK,CAAC,MAAM;AACpB,SAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK;aAC3B,aAAa,CAAC,KAAK,CAAC;AAChC,SAAQ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,MAAK,CAAC;AACN,KAAI,SAAS,aAAa,CAAC,KAAK,EAAE;AAClC,SAAQ,IAAI,CAAC,IAAI,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC;aACnD;AACZ,SAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;aACZ,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACvF,aAAY,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC;AACtC,aAAY,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE;iBAC7D,GAAG,CAAC,IAAI,EAAE;iBACV,IAAI,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;AACnD;aACY,GAAG,CAAC,KAAK,EAAE;AACvB;cACa;AACb,aAAY,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC;AACtC;AACA;SACQ,IAAI,CAAC,SAAS;aACV,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;AACtF;AACA;AACA,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE;AACpC,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,GAAG,EAAE;AACtD,KAAI,IAAI,WAAW;AACnB,SAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AACtD,KAAI,GAAG,CAAC,KAAK,CAAC,MAAM;AACpB,SAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AACxC,aAAY,IAAI,IAAI,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AAClE,iBAAgB,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC;AAC1E;AACA;AACA,MAAK,CAAC;AACN;AACA,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE;AACrC,KAAI,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;SACzC;AACR,KAAI,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC;AAChC,KAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe;AAChC,SAAQ,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC;AACrC,KAAI,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;AACvC;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE;AACtC,KAAI,IAAI,CAAC,KAAK,CAAC,MAAM;SACb;AACR,KAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9B,SAAQ,EAAE,CAAC,SAAS,GAAG,KAAK;SACpB;AACR;AACA,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACjB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;aAChC,gBAAgB,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,0BAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG;AACA,MAAK,CAAC;AACN,KAAI,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC;AAChC;AACA,CAAA,SAAS,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE;KAChC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;AACpE,SAAQ,gBAAgB,CAAC,EAAE,EAAE,iDAAiD,CAAC;AAC/E;AACA;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE;KAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;AACnC,KAAI,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;AACjC,SAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;AACnC,SAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,eAAe,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;AAC5F,aAAY,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU;aAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;iBAC5D,gBAAgB,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACjG;AACA;AACA;AACA;AACA,CAAA,SAAS,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AACxC,KAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnF;AACA,CAAA,SAAS,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7B,KAAI,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvE;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;KACtC,MAAM,EAAE,GAAG,EAAE;AACjB,KAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClC,SAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;AACtC,aAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;cACT,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ;AAChE,aAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9B;AACA,KAAI,EAAE,CAAC,SAAS,GAAG,EAAE;AACrB;AACA,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE;KAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa;KACzD,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;AAC9C,KAAI,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7D;AACA,CAAA,MAAM,UAAU,CAAC;AACjB,KAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;AAClC,SAAQ,IAAI,SAAS,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC;AAC7D,SAAQ,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG;AACzB,SAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS;AACrC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;SACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SAChC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;SAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3F,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;AACxC,SAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM;AACrC,SAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,SAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,SAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;aACZ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E;cACa;AACb,aAAY,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aAClC,IAAI,CAAC,IAAI,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE;iBAClF,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA;AACA,SAAQ,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;AACpE,aAAY,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1E;AACA;AACA,KAAI,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE;AACjD,SAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC;AACjF;AACA,KAAI,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE;AACrD,SAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;AAC9B,SAAQ,IAAI,UAAU;AACtB,aAAY,UAAU,EAAE;AACxB;aACY,IAAI,CAAC,KAAK,EAAE;SAChB,IAAI,aAAa,EAAE;AAC3B,aAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAC3B,aAAY,aAAa,EAAE;aACf,IAAI,IAAI,CAAC,SAAS;AAC9B,iBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChC;cACa;aACD,IAAI,IAAI,CAAC,SAAS;AAC9B,iBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChC;AACA,iBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAC/B;AACA;AACA,KAAI,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;AAChC,SAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC;AAC7E;KACI,IAAI,CAAC,SAAS,EAAE;AACpB,SAAQ,IAAI,SAAS,KAAK,SAAS,EAAE;aACzB,IAAI,CAAC,KAAK,EAAE;AACxB,aAAY,IAAI,CAAC,IAAI,CAAC,SAAS;iBACf,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;aACvB;AACZ;AACA,SAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;SACtB,IAAI,CAAC,KAAK,EAAE;SACZ,IAAI,IAAI,CAAC,SAAS;AAC1B,aAAY,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAC5B;AACA,aAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAC3B;KACI,SAAS,CAAC,SAAS,EAAE;AACzB,SAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;AACvB,aAAY,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,SAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;AACnC,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,mBAAmB,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3H;AACA,KAAI,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE;SACnC,IAAI,WAAW,EAAE;AACzB,aAAY,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACvC,aAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;AAC3C,aAAY,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;aAClB;AACZ;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;AACvC;AACA,KAAI,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE;SAEvB,CAAC,MAAM,GAAG,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;AACrG;AACA,KAAI,UAAU,GAAG;AACjB,SAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,iBAAiB,CAAC;AAC1F;AACA,KAAI,KAAK,GAAG;AACZ,SAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;AACxC,aAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AACtE,SAAQ,IAAI,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;AAChE;KACI,EAAE,CAAC,IAAI,EAAE;AACb,SAAQ,IAAI,CAAC,IAAI,CAAC,SAAS;AAC3B,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7B;AACA,KAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAC3B,SAAQ,IAAI,MAAM;aACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3C;AACA,aAAY,IAAI,CAAC,MAAM,GAAG,GAAG;AAC7B;KACI,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE;AAC7D,SAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC7B,aAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC;AAC9C,aAAY,SAAS,EAAE;AACvB,UAAS,CAAC;AACV;AACA,KAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE;AAClE,SAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;aACX;SACJ,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;SACjD,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7F,SAAQ,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG;AACnC,aAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;SAC3B,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE;aACzC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;aAC/B,IAAI,CAAC,UAAU,EAAE;AAC7B,aAAY,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG;AACvC,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACxC;SACQ,GAAG,CAAC,IAAI,EAAE;AAClB;AACA,KAAI,YAAY,GAAG;AACnB,SAAQ,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI;AAC7D,SAAQ,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC;SAChE,SAAS,cAAc,GAAG;AAClC,aAAY,IAAI,UAAU,CAAC,MAAM,EAAE;AACnC;AACA,iBAAgB,IAAI,EAAE,UAAU,YAAY,SAAS,CAAC,IAAI,CAAC;AAC3D,qBAAoB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AAC/D,iBAAgB,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC;AAChF,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7I;aACY,OAAO,SAAS,CAAC,GAAG;AAChC;SACQ,SAAS,kBAAkB,GAAG;AACtC,aAAY,IAAI,GAAG,CAAC,cAAc,EAAE;AACpC,iBAAgB,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;AACvG,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9E;aACY,OAAO,SAAS,CAAC,GAAG;AAChC;AACA;AACA,KAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3B,SAAQ,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AACtE,SAAQ,IAAI,WAAW,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;SAC9D,IAAI,WAAW,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC;AAC7D,SAAQ,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AAC5F,SAAQ,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC;AACzC,SAAQ,OAAO,WAAW;AAC1B;AACA,KAAI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;AACtC,SAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;aACpB;AACZ,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;aACpD,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1F;AACA,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;aACpD,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1F;AACA;AACA,KAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE;AAC1C,SAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;AAChC,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAC7E,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/E,aAAY,OAAO,IAAI;AACvB;AACA;AACA;AACA,CAAAA,UAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC7C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC;AAChD,KAAI,IAAI,MAAM,IAAI,GAAG,EAAE;AACvB,SAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC/B;UACS,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE;SAChC,IAAI,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD;AACA,UAAS,IAAI,OAAO,IAAI,GAAG,EAAE;SACrB,IAAI,SAAS,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC;AACjD;UACS,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE;SAClC,IAAI,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD;AACA;CACA,MAAM,YAAY,GAAG,qBAAqB;CAC1C,MAAM,qBAAqB,GAAG,kCAAkC;CAChE,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;AAC/D,KAAI,IAAI,WAAW;AACnB,KAAI,IAAI,IAAI;KACR,IAAI,KAAK,KAAK,EAAE;AACpB,SAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ;AACvC,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1B,SAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;aACzB,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;SACrD,WAAW,GAAG,KAAK;AAC3B,SAAQ,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ;AACvC;UACS;SACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;SACjD,IAAI,CAAC,OAAO;aACR,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,SAAQ,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,SAAQ,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;AAChC,SAAQ,IAAI,WAAW,KAAK,GAAG,EAAE;aACrB,IAAI,EAAE,IAAI,SAAS;iBACf,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC/D,aAAY,OAAO,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;AAC9C;SACQ,IAAI,EAAE,GAAG,SAAS;aACd,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,SAAQ,IAAI,GAAG,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;SAChC,IAAI,CAAC,WAAW;AACxB,aAAY,OAAO,IAAI;AACvB;KACI,IAAI,IAAI,GAAG,IAAI;KACf,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,KAAI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;SAC5B,IAAI,OAAO,EAAE;AACrB,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpH,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD;AACA;AACA,KAAI,OAAO,IAAI;AACf,KAAI,SAAS,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE;AACvC,SAAQ,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;AAC5F;AACA;AACA,CAAAA,UAAA,CAAA,OAAe,GAAG,OAAO;AACzB;;;;;;;;;;;ACtgBA,CAAA,MAAM,CAAC,cAAc,CAACC,kBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,eAAe,SAAS,KAAK,CAAC;KAChC,WAAW,CAAC,MAAM,EAAE;SAChB,KAAK,CAAC,mBAAmB,CAAC;AAClC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;SACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;AACzC;AACA;AACA,CAAAA,kBAAA,CAAA,OAAe,GAAG,eAAe;AACjC;;;;;;;;;;;ACTA,CAAA,MAAM,CAAC,cAAc,CAACC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGtT,gBAAoB,EAAA;CACtC,MAAM,eAAe,SAAS,KAAK,CAAC;KAChC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5C,SAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACxE,SAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;SAClE,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9G;AACA;AACA,CAAAsT,WAAA,CAAA,OAAe,GAAG,eAAe;AACjC;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAACC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAqBA,SAAA,CAAA,aAAA,GAAGA,SAA0B,CAAA,kBAAA,GAAGA,SAAkB,CAAA,UAAA,GAAGA,uBAAqB,GAAGA,SAAA,CAAA,SAAiB,GAAG,MAAM;CAC5H,MAAM,SAAS,GAAGvT,gBAAoB,EAAA;CACtC,MAAM,kBAAkB,GAAGD,yBAAsC,EAAA;CACjE,MAAM,OAAO,GAAGE,cAAkB,EAAA;CAClC,MAAM,SAAS,GAAGC,gBAAoB,EAAA;CACtC,MAAM,MAAM,GAAGM,aAAiB,EAAA;CAChC,MAAM,UAAU,GAAGC,iBAAqB,EAAA;AACxC,CAAA,MAAM,SAAS,CAAC;KACZ,WAAW,CAAC,GAAG,EAAE;AACrB,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,SAAQ,IAAI,CAAC,cAAc,GAAG,EAAE;AAChC,SAAQ,IAAI,MAAM;AAClB,SAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,IAAI,QAAQ;AACzC,aAAY,MAAM,GAAG,GAAG,CAAC,MAAM;AAC/B,SAAQ,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AAChC,SAAQ,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;SAC5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI;SAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;AAClL,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;AACxC,SAAQ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS;AACtC,SAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AAC5B,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM;AACnF,SAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB;AACA;AACA,CAAA8S,SAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B;AACA;AACA;CACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B;KACI,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnD,KAAI,IAAI,IAAI;AACZ,SAAQ,OAAO,IAAI;KACf,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClF,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;AACzC,KAAI,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI;AACvC,KAAI,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAChF,KAAI,IAAI,gBAAgB;AACxB,KAAI,IAAI,GAAG,CAAC,MAAM,EAAE;AACpB,SAAQ,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE;AACnD,aAAY,GAAG,EAAE,kBAAkB,CAAC,OAAO;aAC/B,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,oDAAoD,CAAC;AACzF,UAAS,CAAC;AACV;KACI,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;AAClD,KAAI,GAAG,CAAC,YAAY,GAAG,YAAY;KAC/B,MAAM,SAAS,GAAG;AACtB,SAAQ,GAAG;AACX,SAAQ,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;AACtC,SAAQ,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;AAClC,SAAQ,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;AAC9C,SAAQ,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB;SACtD,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACzC,SAAQ,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;SAC5B,SAAS,EAAE,CAAC;SACZ,SAAS,EAAE,EAAE;AACrB,SAAQ,iBAAiB,EAAE,IAAI,GAAG,EAAE;AACpC,SAAQ,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK;AACzE,eAAc,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC;AAC3E,eAAc,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAClC,SAAQ,YAAY;SACZ,eAAe,EAAE,gBAAgB;AACzC,SAAQ,MAAM,EAAE,GAAG,CAAC,MAAM;SAClB,SAAS,EAAE,GAAG;AACtB,SAAQ,MAAM;AACd,SAAQ,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM;AACpC,SAAQ,UAAU,EAAE,SAAS,CAAC,GAAG;AACjC,SAAQ,aAAa,EAAE,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;SAC3D,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACxC,SAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,IAAI,EAAE,IAAI;MACb;AACL,KAAI,IAAI,UAAU;AAClB,KAAI,IAAI;AACR,SAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;SAC3B,CAAC,CAAC,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC;SAC/C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7C;AACA,SAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE;AAC3C,SAAQ,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACpF;AACA,SAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AAClC,aAAY,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AAChE;SACQ,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AAC5G,SAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC7D,SAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACzD,SAAQ,QAAQ,CAAC,MAAM,GAAG,IAAI;AAC9B,SAAQ,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACpC,SAAQ,QAAQ,CAAC,SAAS,GAAG,GAAG;SACxB,IAAI,GAAG,CAAC,MAAM;AACtB,aAAY,QAAQ,CAAC,MAAM,GAAG,IAAI;SAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AAC5C,aAAY,QAAQ,CAAC,MAAM,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE;AACtF;AACA,SAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnC,aAAY,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS;aAClC,QAAQ,CAAC,SAAS,GAAG;iBACjB,KAAK,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,KAAK;iBAC1D,KAAK,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,KAAK;AAC1E,iBAAgB,YAAY,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI;AAC7D,iBAAgB,YAAY,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI;cAChD;aACD,IAAI,QAAQ,CAAC,MAAM;AAC/B,iBAAgB,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;AACxF;AACA,SAAQ,GAAG,CAAC,QAAQ,GAAG,QAAQ;AAC/B,SAAQ,OAAO,GAAG;AAClB;KACI,OAAO,CAAC,EAAE;SACN,OAAO,GAAG,CAAC,QAAQ;SACnB,OAAO,GAAG,CAAC,YAAY;AAC/B,SAAQ,IAAI,UAAU;aACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC;AACnF;AACA,SAAQ,MAAM,CAAC;AACf;aACY;AACZ,SAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC;AACA;AACA,CAAAA,SAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAA,SAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AACvC,KAAI,IAAI,EAAE;AACV,KAAI,GAAG,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC;KACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,KAAI,IAAI,SAAS;AACjB,SAAQ,OAAO,SAAS;AACxB,KAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC5C,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;SACpB,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1F,SAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AACtC,SAAQ,IAAI,MAAM;AAClB,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE;KACI,IAAI,IAAI,KAAK,SAAS;SAClB;AACR,KAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7D;AACA,CAAAA,SAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,KAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;SAC1D,OAAO,GAAG,CAAC,MAAM;AACzB,KAAI,OAAO,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D;AACA;CACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC,KAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AAC1C,SAAQ,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC;AACtC,aAAY,OAAO,GAAG;AACtB;AACA;AACA,CAAAA,SAAA,CAAA,kBAA0B,GAAG,kBAAkB;AAC/C,CAAA,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;KAC3B,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;AACpF;AACA;AACA;CACA,SAAS,OAAO,CAAC,IAAI;CACrB,GAAG;GACD;AACF,KAAI,IAAI,GAAG;AACX,KAAI,OAAO,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ;SAC5C,GAAG,GAAG,GAAG;AACjB,KAAI,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC1E;AACA;CACA,SAAS,aAAa,CAAC,IAAI;CAC3B,GAAG;GACD;AACF,KAAI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9C,KAAI,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;KACrE,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;AAC1F;AACA,KAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;SAC3D,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AACjD;KACI,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;AAClD,KAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACtD,KAAI,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;AACrC,SAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC5D,SAAQ,IAAI,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;aAC1E;SACJ,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AAChD;AACA,KAAI,IAAI,QAAQ,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ;SACzF;AACR,KAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC1B,SAAQ,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1C,KAAI,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE;AAChD,SAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ;AACnC,SAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AACtC,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtC,SAAQ,IAAI,KAAK;AACjB,aAAY,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;AACpF,SAAQ,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE;KACI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;AACjD;AACA,CAAAA,SAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;AACrC,KAAI,YAAY;AAChB,KAAI,mBAAmB;AACvB,KAAI,MAAM;AACV,KAAI,cAAc;AAClB,KAAI,aAAa;AACjB,EAAC,CAAC;CACF,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;AAC7D,KAAI,IAAI,EAAE;KACN,IAAI,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG;SAC9E;AACR,KAAI,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC/D,SAAQ,IAAI,OAAO,MAAM,KAAK,SAAS;aAC3B;AACZ,SAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC7D,IAAI,UAAU,KAAK,SAAS;aACxB;SACJ,MAAM,GAAG,UAAU;AAC3B;AACA,SAAQ,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SACtE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;AACtD,aAAY,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;AACpF;AACA;AACA,KAAI,IAAI,GAAG;KACP,IAAI,OAAO,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;SACpG,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;SAClF,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAClD;AACA;AACA;AACA,KAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAClC,KAAI,GAAG,GAAG,GAAG,IAAI,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM;AACtC,SAAQ,OAAO,GAAG;AAClB,KAAI,OAAO,SAAS;AACpB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/OA;CACA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,6DAA6D;;AAEvG;CACA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0FAA0F;;AAEpI;AACA;AACA;AACA;CACA,SAAS,wBAAwB,EAAE,KAAK,EAAE;GACxC,IAAI,GAAG,GAAG;GACV,IAAI,IAAI,GAAG;GACX,IAAI,CAAC,GAAG;;AAEV,GAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACjC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChC,KAAI,IAAI,IAAI,KAAK,EAAE,EAAE;OACf;AACN;AACA,KAAI,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE;AACpG,OAAM,OAAO;AACb;AACA,KAAI,GAAG,IAAI,KAAK,CAAC,CAAC;KACd;AACJ;;AAEA,GAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KAClC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChC,KAAI,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE;AACpG,OAAM,OAAO;AACb;AACA,KAAI,GAAG,IAAI,KAAK,CAAC,CAAC;AAClB;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B;;AAEhF;AACA;AACA;AACA;CACA,SAAS,aAAa,EAAE,MAAM,EAAE;GAC9B,MAAM,CAAC,MAAM,GAAG;AAClB,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;AAClD,GAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,KAAI,MAAM,GAAG,GAAG,wBAAwB,CAAC,MAAM;AAC/C,KAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AACpB,OAAM,OAAO,CAAC,IAAI,CAAC,GAAG;AACtB,MAAK,MAAM;OACL,MAAM,CAAC,KAAK,GAAG;AACrB,OAAM,OAAO;AACb;KACI,MAAM,CAAC,MAAM,GAAG;AACpB;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,OAAO,EAAE,KAAK,EAAE;GACvB,IAAI,UAAU,GAAG;AACnB,GAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;AACtD;GACE,MAAM,OAAO,GAAG;AAClB;GACE,MAAM,MAAM,GAAG;GACf,IAAI,kBAAkB,GAAG;GACzB,IAAI,OAAO,GAAG;;GAEd,IAAI,OAAO,GAAG;;AAEhB,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,KAAI,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC;KACtB,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,EAAE,QAAQ;AACpD,KAAI,IAAI,MAAM,KAAK,GAAG,EAAE;AACxB,OAAM,IAAI,kBAAkB,KAAK,IAAI,EAAE;AACvC,SAAQ,OAAO,GAAG;AAClB;AACA,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK;AACpD,OAAM,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE;AAC5B;SACQ,MAAM,CAAC,KAAK,GAAG;SACf;AACR;AACA,OAAM,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACzC,SAAQ,kBAAkB,GAAG;AAC7B;AACA,OAAM,OAAO,CAAC,IAAI,CAAC,GAAG;OAChB;AACN,MAAK,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE;AAC/B,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK;AACpD;AACA,OAAM,OAAO,GAAG;AAChB,MAAK,MAAM;AACX,OAAM,MAAM,CAAC,IAAI,CAAC,MAAM;OAClB;AACN;AACA;AACA,GAAE,IAAI,MAAM,CAAC,MAAM,EAAE;AACrB,KAAI,IAAI,OAAO,KAAK,aAAa,EAAE;OAC7B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE;MAC7B,MAAM,IAAI,OAAO,EAAE;OAClB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAClC,MAAK,MAAM;AACX,OAAM,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;AACnD;AACA;GACE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;AAClC,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,aAAa,EAAE,IAAI,EAAE;AAC9B,GAAE,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AAChE,GAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;;AAE3B,GAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,KAAI,IAAI,OAAO,GAAG,IAAI,CAAC;AACvB,KAAI,IAAI,WAAW,GAAG,IAAI,CAAC;AAC3B,KAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AACnB,OAAM,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC;AAC5B,OAAM,WAAW,IAAI,KAAK,GAAG,IAAI,CAAC;AAClC;KACI,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW;AACrD,IAAG,MAAM;AACT,KAAI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE;GAC9B,IAAI,GAAG,GAAG;AACZ,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACnC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,GAAG;AAC7B;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,EAAE,IAAI,EAAE;GAChC,IAAI,KAAK,GAAG;GACZ,MAAM,MAAM,GAAG;GACf,IAAI,SAAS,GAAG;GAChB,IAAI,GAAG,GAAG;;AAEZ;AACA,GAAE,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE;AAC7B,KAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACnB,OAAM,IAAI,KAAK,KAAK,GAAG,EAAE;SACjB;AACR,QAAO,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE;AAChC,SAAQ,MAAM,CAAC,IAAI,CAAC,GAAG;SACf;AACR,QAAO,MAAM;AACb,SAAQ,MAAM,CAAC,IAAI,CAAC,KAAK;SACjB;AACR;AACA,MAAK,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AAC1B,OAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC5B,SAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;WACpB;UACD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACrC,WAAU,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;WACrB;AACV;QACO,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnC,SAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClD,WAAU,MAAM,CAAC,IAAI,CAAC,GAAG;WACf;AACV;AACA;AACA,MAAK,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AAC1B,OAAM,IAAI,KAAK,KAAK,KAAK,EAAE;AAC3B,SAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;WACvB,MAAM,CAAC,GAAG;AACpB;AACA,SAAQ,MAAM,CAAC,IAAI,CAAC,GAAG;SACf;AACR;AACA;AACA,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1B,OAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC5B,SAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC9B,WAAU,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;WACrB;AACV;QACO,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACnC,SAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;SACrB;AACR;MACK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACjC,OAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC5B,SAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC9B,WAAU,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;WACrB;UACD,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACrC,WAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAChC,aAAY,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AACjC,aAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;eACvB,MAAM,CAAC,GAAG;AACxB;aACY;AACZ;AACA;AACA;AACA;;AAEA;AACA,KAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;AACpD,OAAM,MAAM,CAAC,IAAI,CAAC,KAAK;OACjB;AACN,MAAK,MAAM;OACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;AAC3C,OAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS;AACnC;AACA;;AAEA,GAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,0BAA0B,EAAE,SAAS,EAAE,GAAG,EAAE;GACnD,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,MAAM,GAAG;AACvC,GAAE,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE;KAClC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;AAC5C;AACA,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;KACpC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;AAChD;AACA,GAAE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;KAChC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI;AACxC;AACA,GAAE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;KAChC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI;AACxC;AACA,GAAE,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;KACjC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;AAC1C;AACA,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;KACpC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;AAChD;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;CACA,SAAS,kBAAkB,EAAE,SAAS,EAAE;GACtC,MAAM,SAAS,GAAG;;AAEpB,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;AACxC,KAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ;AACrC,KAAI,SAAS,CAAC,IAAI,CAAC,GAAG;AACtB;;AAEA,GAAE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;AACpC,KAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI;AACtC,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACvB,OAAM,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI;AACxC,OAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;SAC3B,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AACxC,QAAO,MAAM;SACL,IAAI,GAAG,SAAS,CAAC;AACzB;AACA;AACA,KAAI,SAAS,CAAC,IAAI,CAAC,IAAI;AACvB;;AAEA,GAAE,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;AAChF,KAAI,SAAS,CAAC,IAAI,CAAC,GAAG;KAClB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACzC;;GAEE,OAAO,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;;AAGjD,CAAA,KAAc,GAAG;AACjB,GAAE,eAAe;AACjB,GAAE,kBAAkB;AACpB,GAAE,0BAA0B;AAC5B,GAAE,iBAAiB;AACnB,GAAE,MAAM;AACR,GAAE,MAAM;AACR,GAAE,aAAa;GACb;AACF;;;;;;;;;;;CC7UA,MAAM,EAAE,MAAM,EAAE,GAAGvT,YAAA;AACnB,CAAA,MAAM,OAAO,GAAG;;AAEhB,CAAA,MAAM,oBAAoB,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;AACzE,GAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC;;AAE3B;;AAEA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,EAAE,IAAI,EAAE;GAChC,OAAO,oBAAoB,CAAC,OAAO,mBAAmB,IAAI,EAAE,KAAK;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;CACA,SAAS,UAAU,EAAE,WAAW,EAAE;AAClC,GAAE,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE;AACnC,KAAI,OAAO;AACX,IAAG,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,EAAE;AAC3C,KAAI,OAAO;AACX,IAAG,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;KAC7B;AACJ,OAAM,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;AACrC,QAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACtE,QAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACtE,QAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;AACrE;AACA,IAAG,MAAM;AACT,KAAI,OAAO;AACX;AACA;;AAEA;CACA,SAAS,SAAS,EAAE,SAAS,EAAE;AAC/B,GAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACvB,KAAI,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI;AACzC;;AAEA,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,aAAa,EAAE,SAAS,EAAE;AACnC,GAAE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK;;AAE5D;AACA,GAAE,IAAI,SAAS,CAAC,IAAI,MAAM,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE;KACnE,SAAS,CAAC,IAAI,GAAG;AACrB;;AAEA;AACA,GAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;KACnB,SAAS,CAAC,IAAI,GAAG;AACrB;;AAEA;AACA;AACA;;AAEA,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,OAAO,EAAE,WAAW,EAAE;AAC/B;AACA,GAAE,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,WAAW;;AAE7C;GACE,WAAW,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,KAAK,WAAW,CAAC,KAAK,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE;GACxG,WAAW,CAAC,IAAI,GAAG;GACnB,WAAW,CAAC,KAAK,GAAG;;AAEtB,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,WAAW,EAAE,WAAW,EAAE;AACnC;GACE,IAAI,WAAW,CAAC,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,EAAE,EAAE;KACxF,WAAW,CAAC,IAAI,GAAG;AACvB;;AAEA;AACA,GAAE,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE;KAC3C,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI;KACvD,WAAW,CAAC,MAAM,GAAG;AACzB;;AAEA;AACA,GAAE,IAAI,WAAW,CAAC,YAAY,EAAE;AAChC,KAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG;AAC5D,KAAI,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,GAAG,IAAI,GAAG,SAAS;KAC3D,WAAW,CAAC,KAAK,GAAG;KACpB,WAAW,CAAC,YAAY,GAAG;AAC/B;;AAEA;GACE,WAAW,CAAC,QAAQ,GAAG;;AAEzB,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE;AAC1C,GAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;KACtB,YAAY,CAAC,KAAK,GAAG;AACzB,KAAI,OAAO;AACX;GACE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;GAC/C,IAAI,OAAO,EAAE;KACX,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI;KACxD,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;AAC7C,KAAI,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;AAChC,KAAI,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC;AACnE,KAAI,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS;KAChD,YAAY,CAAC,IAAI,GAAG;;KAEpB,IAAI,aAAa,EAAE;OACjB,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO;AAC9D;AACA,IAAG,MAAM;AACT,KAAI,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI;AAC/C;;AAEA,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE;AAC9C,GAAE,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE;AACtC,KAAI,MAAM,IAAI,KAAK,CAAC,sCAAsC;AAC1D;GACE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,IAAI;AAC1D,GAAE,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW;AAC1C,GAAE,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;AACpD,GAAE,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS;;GAEhD,IAAI,aAAa,EAAE;KACjB,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO;AAChE;;GAEE,MAAM,YAAY,GAAG;AACvB,GAAE,MAAM,GAAG,GAAG,YAAY,CAAC;AAC3B,GAAE,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;;GAEjD,OAAO,CAAC,UAAU,GAAG;AACvB,GAAE,OAAO;AACT;;AAEA;AACA,CAAA,SAAS,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE;GAC5C,MAAM,aAAa,GAAG;AACxB,GAAE,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC;GACnC,aAAa,CAAC,GAAG,GAAG;;AAEtB,GAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE;AACjF,KAAI,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI;AACjD;;AAEA,GAAE,OAAO;AACT;;AAEA;CACA,SAAS,gBAAgB,EAAE,aAAa,EAAE;GACxC,MAAM,YAAY,GAAG;AACvB;GACE,YAAY,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW;AAC3D,GAAE,OAAO;AACT;;AAEA,CAAA,MAAM,IAAI,iCAAiC;GACzC,MAAM,EAAE,MAAM;GACd,UAAU,EAAE,IAAI;GAChB,KAAK,EAAE,SAAS;AAClB,GAAE,SAAS,EAAE;EACZ;;AAED,CAAA,MAAM,KAAK,iCAAiC;GAC1C,MAAM,EAAE,OAAO;AACjB,GAAE,UAAU,EAAE,IAAI,CAAC,UAAU;GAC3B,KAAK,EAAE,SAAS;AAClB,GAAE,SAAS,EAAE;EACZ;;AAED,CAAA,MAAM,EAAE,iCAAiC;GACvC,MAAM,EAAE,IAAI;GACZ,UAAU,EAAE,IAAI;GAChB,KAAK,EAAE,OAAO;AAChB,GAAE,SAAS,EAAE;EACZ;;AAED,CAAA,MAAM,GAAG,iCAAiC;GACxC,MAAM,EAAE,KAAK;AACf,GAAE,UAAU,EAAE,EAAE,CAAC,UAAU;AAC3B,GAAE,KAAK,EAAE,EAAE,CAAC,KAAK;GACf,SAAS,EAAE,EAAE,CAAC;EACf;;AAED,CAAA,MAAM,GAAG,iCAAiC;GACxC,MAAM,EAAE,KAAK;GACb,KAAK,EAAE,QAAQ;GACf,SAAS,EAAE,YAAY;AACzB,GAAE,aAAa,EAAE;EAChB;;AAED,CAAA,MAAM,OAAO,iCAAiC;GAC5C,MAAM,EAAE,UAAU;GAClB,KAAK,EAAE,YAAY;GACnB,SAAS,EAAE,gBAAgB;AAC7B,GAAE,aAAa,EAAE;EAChB;;AAED,CAAA,MAAM,OAAO,qDAAqD;AAClE,GAAE,IAAI;AACN,GAAE,KAAK;AACP,GAAE,EAAE;AACJ,GAAE,GAAG;AACL,GAAE,GAAG;AACL,GAAE,UAAU,EAAE;EACb;;AAED,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI;;AAEnC;AACA;AACA;AACA;CACA,SAAS,gBAAgB,EAAE,MAAM,EAAE;AACnC,GAAE,OAAO;AACT,KAAI,MAAM;OACJ,OAAO,4BAA4B,MAAM,EAAE;AACjD,OAAM,OAAO,2BAA2B,MAAM,CAAC,WAAW,EAAE,EAAE;AAC9D;KACI;AACJ;;AAEA,CAAA,OAAc,GAAG;AACjB,GAAE,UAAU;AACZ,GAAE,OAAO;AACT,GAAE,iBAAiB;AACnB,GAAE,gBAAgB;AAClB;;;;;;;;;;ACxQA,CAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,EAAE,eAAe,EAAE,GAAGA,YAAA;AACtH,CAAA,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAGD,cAAA;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE;AAClC,GAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAI,GAAG,qBAAqB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AACnE,IAAG,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACtC,KAAI,GAAG,qBAAqB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC;AACnE;AACA,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;GAC/C,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM;GACjG,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,IAAI;GACnI,iBAAiB,CAAC,UAAU,GAAG;AACjC,GAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,iBAAiB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACvE;GACE,MAAM,MAAM,GAAG;GACf,IAAI,CAAC,iBAAiB,EAAE;AAC1B,KAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,EAAC;AACnD,KAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,EAAC;AAC3D;GACE,OAAO,GAAG,OAAO,IAAI;;GAErB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC5C,KAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;AAC7B;AACA,KAAI,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,KAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC3B,KAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;KACvB,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;AACvD,KAAI,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC5B,IAAG,MAAM;AACT,KAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;AACvG;AACA,OAAM,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,OAAM,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC7B,OAAM,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;OACvB,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;AACzD,OAAM,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC9B,MAAK,MAAM;AACX,OAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1B,SAAQ,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AAC3B,SAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE;AAC1C,WAAU,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;AAClC,UAAS,MAAM;AACf,WAAU,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;AAC9B;AACA,QAAO,MAAM;SACL,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;WAC5B,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI;AACvD,UAAS,MAAM;WACL,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AACjH,aAAY,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC;AACzC,YAAW,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACjC,aAAY,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;AACnC,YAAW,MAAM;aACL,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;AACxF;WACU,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI;AACrD;AACA,SAAQ,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;AAChC;AACA;AACA,OAAM,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,OAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,OAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB;AACA,KAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB;;AAEA,GAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;;AAE7B,GAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACrC,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,IAAI,GAAG,QAAQ,CAAC,IAAI;KACpB,IAAI,GAAG,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7G,IAAG,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC,KAAI,IAAI,GAAG,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7F;;AAEA,GAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,KAAI,IAAI,GAAG,QAAQ,CAAC,IAAI;KACpB,IAAI,GAAG,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7G,IAAG,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC,KAAI,IAAI,GAAG,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC7F;;GAEE,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;GAC/B,MAAM,SAAS,GAAG;AACpB,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,KAAI,MAAM,EAAE,KAAK,CAAC,MAAM;AACxB,KAAI,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAC5B,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,KAAI,KAAK,EAAE,KAAK,CAAC,KAAK;AACtB,KAAI,GAAG,EAAE,KAAK,CAAC,GAAG;AAClB,KAAI,GAAG,EAAE,KAAK,CAAC,GAAG;AAClB,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI;AACpB,KAAI,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAC5B,KAAI,SAAS,EAAE,KAAK,CAAC,SAAS;AAC9B,KAAI,YAAY,EAAE,KAAK,CAAC,YAAY;AACpC,KAAI,MAAM,EAAE,KAAK,CAAC,MAAM;AACxB,KAAI,KAAK,EAAE;AACX;GACE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI;GACtC,MAAM,SAAS,GAAG;;AAEpB;GACE,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;;AAE3E;AACA,GAAE,IAAI,aAAa,IAAI,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO;;AAE1F,GAAE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;AACpC,KAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;OACvB,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI;;AAE5C,OAAM,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE;AAC1C,SAAQ,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG;AAC7D;AACA,MAAK,MAAM;OACL,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI;AAC9C;AACA;;GAEE,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE;KACtD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG;AACxC;;AAEA,GAAE,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS;AAChD,GAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AAC/B,KAAI,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;AACxC,OAAM,SAAS,CAAC,IAAI,CAAC,IAAI;AACzB;;AAEA,KAAI,SAAS,CAAC,IAAI,CAAC,SAAS;;AAE5B,KAAI,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACrD,OAAM,SAAS,CAAC,IAAI,CAAC,GAAG;AACxB;AACA;AACA,GAAE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;AACpC,KAAI,IAAI,CAAC,GAAG,SAAS,CAAC;;AAEtB,KAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;AAClF,OAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC;AAC7B;;KAEI;OACE,SAAS,KAAK,SAAS;AAC7B,OAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;AAClB,OAAM,CAAC,CAAC,CAAC,CAAC,KAAK;OACT;AACN;OACM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5B;;AAEA,KAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AACpB;;AAEA,GAAE,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;KACjC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK;AACvC;;AAEA,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;KACpC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ;AAC1C;AACA,GAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE;AAC1B;;AAEA,CAAA,MAAM,SAAS,GAAG;;AAElB;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;GACzB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI;AACxC;GACE,MAAM,MAAM,GAAG;KACb,MAAM,EAAE,SAAS;KACjB,QAAQ,EAAE,SAAS;KACnB,IAAI,EAAE,EAAE;KACR,IAAI,EAAE,SAAS;KACf,IAAI,EAAE,EAAE;KACR,KAAK,EAAE,SAAS;AACpB,KAAI,QAAQ,EAAE;AACd;;GAEE,IAAI,IAAI,GAAG;AACb,GAAE,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;AACtC,KAAI,IAAI,OAAO,CAAC,MAAM,EAAE;AACxB,OAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG;AACnC,MAAK,MAAM;OACL,GAAG,GAAG,IAAI,GAAG;AACnB;AACA;;AAEA,GAAE,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS;;GAEnC,IAAI,OAAO,EAAE;AACf;AACA,KAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;AAC7B,KAAI,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;AAC/B,KAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;KACvB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;KACrC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI;AAChC,KAAI,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;AAC5B,KAAI,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;;AAE/B;AACA,KAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAC5B,OAAM,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAC7B;AACA,KAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AACrB,OAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;AAC3C,OAAM,IAAI,UAAU,KAAK,KAAK,EAAE;AAChC,SAAQ,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI;SAC5C,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW;SACzC,IAAI,GAAG,UAAU,CAAC;AAC1B,QAAO,MAAM;AACb,SAAQ,IAAI,GAAG;AACf;AACA;AACA,KAAI,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;OACxK,MAAM,CAAC,SAAS,GAAG;AACzB,MAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;OACtC,MAAM,CAAC,SAAS,GAAG;AACzB,MAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;OACxC,MAAM,CAAC,SAAS,GAAG;AACzB,MAAK,MAAM;OACL,MAAM,CAAC,SAAS,GAAG;AACzB;;AAEA;AACA,KAAI,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE;AACvG,OAAM,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG;AAC3E;;AAEA;KACI,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;;AAE1E;AACA,KAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AACtF;OACM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,KAAK,aAAa,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAChJ;AACA,SAAQ,IAAI;AACZ,WAAU,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;UAC1D,CAAC,OAAO,CAAC,EAAE;WACV,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,oDAAoD,GAAG;AAChG;AACA;AACA;AACA;;KAEI,IAAI,CAAC,aAAa,KAAK,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;OACrE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;AACnC,SAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;WAC/B,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM;AAChD;AACA,SAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;WAC7B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI;AAC5C;AACA;AACA,OAAM,IAAI,MAAM,CAAC,IAAI,EAAE;SACf,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAClD;AACA,OAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;SACnB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC;AACvE;AACA;;AAEA;AACA,KAAI,IAAI,aAAa,IAAI,aAAa,CAAC,KAAK,EAAE;AAC9C,OAAM,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO;AACzC;AACA,IAAG,MAAM;AACT,KAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI;AACnC;AACA,GAAE,OAAO;AACT;;AAEA,CAAA,MAAMyT,SAAO,GAAG;AAChB,GAAE,OAAO;AACT,GAAE,SAAS;AACX,GAAE,OAAO;AACT,GAAE,gBAAgB;AAClB,GAAE,KAAK;AACP,GAAE,SAAS;GACT;AACF;;AAEA,CAAAC,OAAA,CAAA,OAAc,GAAGD;AACjB,CAAAC,OAAA,CAAA,OAAA,CAAA,OAAsB,GAAGD;AACzB,CAAAC,OAAA,CAAA,OAAA,CAAA,OAAsB,GAAGD;;;;;;;;;AClVzB,CAAA,MAAM,CAAC,cAAc,CAACE,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,GAAG,GAAG1T,cAAmB,EAAA;CAC/B,GAAG,CAAC,IAAI,GAAG,yCAAyC;AACpD,CAAA0T,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;ECJA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,OAAA,GAAkB,eAAe,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,cAAc,OAAY,CAAA,CAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,MAAM;EACxH,IAAI,UAAU,GAAG1T,iBAA6B,EAAA;EAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EACtH,IAAI,SAAS,GAAGD,gBAA4B,EAAA;EAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACnG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EACnH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACzG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EAC/G,MAAM,kBAAkB,GAAGE,yBAAqC,EAAA;EAChE,MAAM,WAAW,GAAGC,kBAA8B,EAAA;EAClD,MAAM,OAAO,GAAGM,cAA0B,EAAA;EAC1C,MAAM,SAAS,GAAGC,gBAAoB,EAAA;EACtC,MAAM,SAAS,GAAGV,gBAA4B,EAAA;EAC9C,MAAM,SAAS,GAAGI,gBAA4B,EAAA;EAC9C,MAAM,UAAU,GAAGO,iBAAsC,EAAA;EACzD,MAAM,MAAM,GAAGM,aAAyB,EAAA;EACxC,MAAM,cAAc,GAAGL,YAA2B;EAClD,MAAM,KAAK,GAAGC,YAAwB,EAAA;AACtC,EAAA,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;EAC5D,aAAa,CAAC,IAAI,GAAG,YAAY;EACjC,MAAM,mBAAmB,GAAG,CAAC,kBAAkB,EAAE,aAAa,EAAE,aAAa,CAAC;AAC9E,EAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;AAChC,MAAI,UAAU;AACd,MAAI,WAAW;AACf,MAAI,OAAO;AACX,MAAI,SAAS;AACb,MAAI,MAAM;AACV,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,eAAe;AACnB,MAAI,MAAM;AACV,MAAI,KAAK;AACT,MAAI,OAAO;AACX,GAAC,CAAC;AACF,EAAA,MAAM,cAAc,GAAG;MACnB,aAAa,EAAE,EAAE;MACjB,MAAM,EAAE,+CAA+C;MACvD,QAAQ,EAAE,6CAA6C;MACvD,YAAY,EAAE,kDAAkD;MAChE,UAAU,EAAE,uDAAuD;MACnE,WAAW,EAAE,qEAAqE;MAClF,WAAW,EAAE,mEAAmE;MAChF,UAAU,EAAE,mCAAmC;MAC/C,cAAc,EAAE,yCAAyC;MACzD,cAAc,EAAE,yCAAyC;MACzD,WAAW,EAAE,4CAA4C;MACzD,cAAc,EAAE,8EAA8E;MAC9F,KAAK,EAAE,6CAA6C;MACpD,SAAS,EAAE,6CAA6C;MACxD,SAAS,EAAE,oBAAoB;GAClC;AACD,EAAA,MAAM,iBAAiB,GAAG;MACtB,qBAAqB,EAAE,EAAE;MACzB,gBAAgB,EAAE,EAAE;MACpB,OAAO,EAAE,oEAAoE;GAChF;EACD,MAAM,cAAc,GAAG,GAAG;AAC1B;EACA,SAAS,eAAe,CAAC,CAAC,EAAE;MACxB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1G,MAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM;MAClB,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ;AAChF,MAAI,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAC3E,MAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,aAAa;MACjI,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO;AAC3F,MAAI,OAAO;AACX,UAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC3H,UAAQ,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC7H,UAAQ,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC1H,UAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC5H,UAAQ,cAAc,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;UACxH,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC7E,UAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,cAAc;AAC3F,UAAQ,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,cAAc;AACnF,UAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACjE,UAAQ,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACzE,UAAQ,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC7E,UAAQ,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC1E,UAAQ,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACnF,UAAQ,cAAc,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACrF,UAAQ,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACvF,UAAQ,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACnF,UAAQ,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;UACrE,WAAW,EAAE,WAAW;OAC3B;AACL;AACA,EAAA,MAAM,GAAG,CAAC;AACV,MAAI,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE;AAC3B,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE;AACtC,UAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,UAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE;AAC/B,UAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE;UACxD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;UACrC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;UAC3F,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C,UAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe;AAC9C,UAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;UAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG;UACpC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC;AACtE,UAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC;UACtE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;UAChD,IAAI,IAAI,CAAC,OAAO;AACxB,cAAY,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;UAChC,IAAI,CAAC,gBAAgB,EAAE;UACvB,IAAI,CAAC,qBAAqB,EAAE;UAC5B,IAAI,IAAI,CAAC,QAAQ;cACb,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;AACxD,UAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ;AACxC,cAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,UAAQ,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,UAAQ,IAAI,CAAC,eAAe,GAAG,SAAS;AACxC;AACA,MAAI,gBAAgB,GAAG;AACvB,UAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACjC;AACA,MAAI,qBAAqB,GAAG;UACpB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;UAC3C,IAAI,cAAc,GAAG,cAAc;AAC3C,UAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC/B,cAAY,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE;AAClD,cAAY,cAAc,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG;cACtC,OAAO,cAAc,CAAC,GAAG;AACrC;UACQ,IAAI,IAAI,IAAI,KAAK;AACzB,cAAY,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;AAC/E;AACA,MAAI,WAAW,GAAG;UACV,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAC5C,UAAQ,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,SAAS;AACpG;MACI,QAAQ,CAAC,YAAY;AACzB;AACA,MAAI,IAAI;QACF;AACN,UAAQ,IAAI,CAAC;AACb,UAAQ,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;AAC7C,cAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;cAChC,IAAI,CAAC,CAAC;kBACF,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAC9E;eACa;AACb,cAAY,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC1C;AACA,UAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC;AAC5B,cAAY,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAClC,UAAQ,OAAO,KAAK;AACpB;AACA,MAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;UACnB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC;UAC1C,QAAQ,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAC3D;AACA,MAAI,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE;UACvB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE;AACvD,cAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AACtE;AACA,UAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI;UAChC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;AACvD,UAAQ,eAAe,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE;cAC3C,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;cAChD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;AACvD,cAAY,OAAO,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChE;AACA,UAAQ,eAAe,cAAc,CAAC,IAAI,EAAE;cAChC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC/C,kBAAgB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC;AAChE;AACA;AACA,UAAQ,eAAe,aAAa,CAAC,GAAG,EAAE;AAC1C,cAAY,IAAI;AAChB,kBAAgB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAClD;cACY,OAAO,CAAC,EAAE;AACtB,kBAAgB,IAAI,EAAE,CAAC,YAAY,WAAW,CAAC,OAAO,CAAC;AACvD,sBAAoB,MAAM,CAAC;AAC3B,kBAAgB,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;kBACzB,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;kBACnD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpD;AACA;UACQ,SAAS,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;AACjE,cAAY,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAChC,kBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAClG;AACA;AACA,UAAQ,eAAe,iBAAiB,CAAC,GAAG,EAAE;cAClC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D,cAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;kBACf,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;AAChE,cAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;kBACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;AAClD;AACA,UAAQ,eAAe,WAAW,CAAC,GAAG,EAAE;cAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,cAAY,IAAI,CAAC;AACjB,kBAAgB,OAAO,CAAC;AACxB,cAAY,IAAI;AAChB,kBAAgB,OAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACnE;sBACoB;AACpB,kBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC;AACA;AACA;AACA;MACI,SAAS,CAAC,MAAM;AACpB,MAAI,GAAG;AACP,MAAI,KAAK;AACT,MAAI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;QACxC;AACN,UAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC,cAAY,KAAK,MAAM,GAAG,IAAI,MAAM;kBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;AACtE,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC,cAAY,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAC1C,cAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;cACrB,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;kBAC3C,MAAM,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;AACpE;AACA;AACA,UAAQ,GAAG,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACnD,UAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;UACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC;AACtF,UAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA,MAAI,aAAa,CAAC,MAAM,EAAE,GAAG;AAC7B,MAAI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;QACxC;UACE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC;AAC1D,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AAC5C,UAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AACtC,cAAY,OAAO,IAAI;AACvB,UAAQ,IAAI,OAAO;AACnB,UAAQ,OAAO,GAAG,MAAM,CAAC,OAAO;UACxB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACjE,cAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,UAAQ,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;UAChE,IAAI,CAAC,OAAO,EAAE;AACtB,cAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACzD,cAAY,IAAI,CAAC,MAAM,GAAG,IAAI;AAC9B,cAAY,OAAO,IAAI;AACvB;UACQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;AACpD,UAAQ,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;cAC3B,MAAM,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE;AACrE,cAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK;AAClD,kBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1C;AACA,kBAAgB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AACxC;AACA,UAAQ,OAAO,KAAK;AACpB;AACA;AACA;MACI,SAAS,CAAC,MAAM,EAAE;AACtB,UAAQ,IAAI,GAAG;AACf,UAAQ,OAAO,QAAQ,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,QAAQ;cAC1D,MAAM,GAAG,GAAG;AACxB,UAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;AAC/B,cAAY,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAC1C,cAAY,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1E,cAAY,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;cACtD,IAAI,CAAC,GAAG;kBACJ;AAChB,cAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;AACnC;UACQ,QAAQ,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAC3D;AACA;AACA;AACA;AACA;MACI,YAAY,CAAC,YAAY,EAAE;AAC/B,UAAQ,IAAI,YAAY,YAAY,MAAM,EAAE;cAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;cAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;AAC3D,cAAY,OAAO,IAAI;AACvB;UACQ,QAAQ,OAAO,YAAY;AACnC,cAAY,KAAK,WAAW;AAC5B,kBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;AACpD,kBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACjD,kBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnC,kBAAgB,OAAO,IAAI;cACf,KAAK,QAAQ,EAAE;kBACX,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;AAC9D,kBAAgB,IAAI,OAAO,GAAG,IAAI,QAAQ;sBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,kBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACjD,kBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,kBAAgB,OAAO,IAAI;AAC3B;cACY,KAAK,QAAQ,EAAE;kBACX,MAAM,QAAQ,GAAG,YAAY;AAC7C,kBAAgB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;kBAC5B,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;kBACzC,IAAI,EAAE,EAAE;sBACJ,EAAE,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;AACvD,sBAAoB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3C,sBAAoB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxC;AACA,kBAAgB,OAAO,IAAI;AAC3B;cACY;AACZ,kBAAgB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AACtE;AACA;AACA;MACI,aAAa,CAAC,WAAW,EAAE;AAC/B,UAAQ,KAAK,MAAM,GAAG,IAAI,WAAW;AACrC,cAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAChC,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,UAAU,CAAC,QAAQ,EAAE,GAAG;QACtB;AACN,UAAQ,IAAI,OAAO;AACnB,UAAQ,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;cAC7B,OAAO,GAAG,QAAQ;AAC9B,cAAY,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AACxC,kBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC;AAC5F,kBAAgB,GAAG,CAAC,OAAO,GAAG,OAAO;AACrC;AACA;eACa,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;cACvD,GAAG,GAAG,QAAQ;AAC1B,cAAY,OAAO,GAAG,GAAG,CAAC,OAAO;AACjC,cAAY,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC3D,kBAAgB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACzF;AACA;eACa;AACb,cAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AAC7D;UACQ,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC;UACrC,IAAI,CAAC,GAAG,EAAE;cACN,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3E,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;UACjC,MAAM,UAAU,GAAG;AAC3B,cAAY,GAAG,GAAG;AAClB,cAAY,IAAI,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC;AACxD,cAAY,UAAU,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;WAC3D;AACT,UAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK;gBACnD,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU;gBACvC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,UAAQ,OAAO,IAAI;AACnB;MACI,UAAU,CAAC,OAAO,EAAE;UAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,UAAQ,OAAO,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI;AACjE;AACA;MACI,aAAa,CAAC,OAAO,EAAE;AAC3B;AACA,UAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,UAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AACtC,UAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,UAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;AACzC,cAAY,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;cACnE,IAAI,CAAC,IAAI,CAAC;kBACN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACxC;AACA,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5B,UAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ;AACrC,cAAY,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;AACvC,UAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM;AACnC,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;MAC/B,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE;QACzC;UACE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1C,cAAY,OAAO,WAAW;AAC9B,UAAQ,OAAO;eACF,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,eAAa,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC;AAC1D;AACA,MAAI,eAAe,CAAC,UAAU,EAAE,oBAAoB,EAAE;AACtD,UAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;AACpC,UAAQ,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3D,UAAQ,KAAK,MAAM,WAAW,IAAI,oBAAoB,EAAE;AACxD,cAAY,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;cACjD,IAAI,QAAQ,GAAG,UAAU;AACrC,cAAY,KAAK,MAAM,GAAG,IAAI,QAAQ;AACtC,kBAAgB,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AACxC,cAAY,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACrC,kBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AACvC,kBAAgB,IAAI,OAAO,IAAI,IAAI,QAAQ;sBACvB;AACpB,kBAAgB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU;AACjD,kBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;kBAC5B,IAAI,KAAK,IAAI,MAAM;sBACf,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;AACxD;AACA;AACA,UAAQ,OAAO,UAAU;AACzB;AACA,MAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE;AACtC,UAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,cAAY,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;cAC3B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9C,kBAAgB,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC5C,sBAAoB,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1C;AACA,uBAAqB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;sBACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,sBAAoB,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1C;AACA;AACA;AACA;MACI,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrH,UAAQ,IAAI,EAAE;AACd,UAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AACtC,UAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACvC,cAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC;eACa;AACb,cAAY,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG;AAC7B,kBAAgB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AACxD,mBAAiB,IAAI,OAAO,MAAM,IAAI,SAAS;AAC/C,kBAAgB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AACnE;UACQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;UACjC,IAAI,GAAG,KAAK,SAAS;AAC7B,cAAY,OAAO,GAAG;AACtB,UAAQ,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,MAAM,CAAC;AACzD,UAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5E,UAAQ,GAAG,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;UAC5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;UAChC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClD;AACA,cAAY,IAAI,MAAM;AACtB,kBAAgB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACzC,cAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;AACnC;AACA,UAAQ,IAAI,cAAc;AAC1B,cAAY,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7C,UAAQ,OAAO,GAAG;AAClB;MACI,YAAY,CAAC,EAAE,EAAE;AACrB,UAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;cACnC,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC3E;AACA;MACI,iBAAiB,CAAC,GAAG,EAAE;UACnB,IAAI,GAAG,CAAC,IAAI;AACpB,cAAY,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACxC;cACY,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnD;AACA,UAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;AACzB,cAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;UAC/C,OAAO,GAAG,CAAC,QAAQ;AAC3B;MACI,kBAAkB,CAAC,GAAG,EAAE;AAC5B,UAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI;AACrC,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;AAClC,UAAQ,IAAI;cACA,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnD;kBACgB;AAChB,cAAY,IAAI,CAAC,IAAI,GAAG,WAAW;AACnC;AACA;AACA;AACA,EAAA,GAAG,CAAC,eAAe,GAAG,kBAAkB,CAAC,OAAO;AAChD,EAAA,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,OAAO;AACzC,EAAA,OAAA,CAAA,OAAA,GAAkB,GAAG;EACrB,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,EAAE;AAC9D,MAAI,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;UACzB,MAAM,GAAG,GAAG,GAAG;UACf,IAAI,GAAG,IAAI,OAAO;cACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE;AACA;EACA,SAAS,SAAS,CAAC,MAAM,EAAE;MACvB,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAChD,MAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACpD;AACA,EAAA,SAAS,iBAAiB,GAAG;AAC7B,MAAI,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;MACrC,IAAI,CAAC,WAAW;UACZ;AACR,MAAI,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAClC,UAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACnC;AACA,UAAQ,KAAK,MAAM,GAAG,IAAI,WAAW;cACzB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACjD;AACA,EAAA,SAAS,iBAAiB,GAAG;MACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;UAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9C,UAAQ,IAAI,MAAM;AAClB,cAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC;AACA;EACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,MAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,UAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;UACxB;AACR;AACA,MAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC;AACxE,MAAI,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;AAChC,UAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,UAAQ,IAAI,CAAC,GAAG,CAAC,OAAO;AACxB,cAAY,GAAG,CAAC,OAAO,GAAG,OAAO;AACjC,UAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5B;AACA;AACA,EAAA,SAAS,oBAAoB,GAAG;MAC5B,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AACrC,MAAI,KAAK,MAAM,GAAG,IAAI,mBAAmB;AACzC,UAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC;AAC5B,MAAI,OAAO,QAAQ;AACnB;AACA,EAAA,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE;EACrD,SAAS,SAAS,CAAC,MAAM,EAAE;MACvB,IAAI,MAAM,KAAK,KAAK;AACxB,UAAQ,OAAO,MAAM;MACjB,IAAI,MAAM,KAAK,SAAS;AAC5B,UAAQ,OAAO,OAAO;MAClB,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;AACjD,UAAQ,OAAO,MAAM;AACrB,MAAI,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AACxE;EACA,MAAM,YAAY,GAAG,yBAAyB;AAC9C,EAAA,SAAS,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE;AACpC,MAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;MACtB,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;AAC3C,UAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;cACnB,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAChE,UAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;cACvB,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC9D,OAAK,CAAC;MACF,IAAI,CAAC,GAAG;UACJ;AACR,MAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC,EAAE;AAC5D,UAAQ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;AAChF;AACA;AACA,EAAA,SAAS,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;AAChD,MAAI,IAAI,EAAE;AACV,MAAI,MAAM,IAAI,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,IAAI;MACpF,IAAI,QAAQ,IAAI,IAAI;AACxB,UAAQ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AACtE,MAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;MACtB,IAAI,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,QAAQ,CAAC;MACrF,IAAI,CAAC,SAAS,EAAE;UACZ,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;AACjD,UAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC;AACA,MAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI;MAC9B,IAAI,CAAC,UAAU;UACX;MACJ,MAAM,IAAI,GAAG;AACjB,UAAQ,OAAO;AACf,UAAQ,UAAU,EAAE;AACpB,cAAY,GAAG,UAAU;AACzB,cAAY,IAAI,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;AAC/D,cAAY,UAAU,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC;WAClE;OACJ;MACD,IAAI,UAAU,CAAC,MAAM;AACzB,UAAQ,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;AACpE;AACA,UAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,MAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,MAAI,CAAC,EAAE,GAAG,UAAU,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/G;AACA,EAAA,SAAS,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;AAChD,MAAI,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;AAC5E,MAAI,IAAI,CAAC,IAAI,CAAC,EAAE;UACR,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AAC1C;WACS;AACT,UAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,UAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AACzD;AACA;EACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,MAAI,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;MACxB,IAAI,UAAU,KAAK,SAAS;UACxB;MACJ,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;AACpC,UAAQ,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;MACzC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;AACvD;AACA,EAAA,MAAM,QAAQ,GAAG;MACb,IAAI,EAAE,gFAAgF;GACzF;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;MAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACxC;AACA;;;;;;;;;;;;;;;;ACxmBA,CAAA,MAAM,CAAC,cAAc,CAAC+S,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,IAAI;AACjB,KAAI,IAAI,GAAG;AACX,SAAQ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;MAC1E;EACJ;AACD,CAAAA,IAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACRA,CAAA,MAAM,CAAC,cAAc,CAACC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,KAAA,CAAA,OAAe,GAAGA,KAAA,CAAA,WAAmB,GAAG,MAAM;CAC9C,MAAM,WAAW,GAAG5T,kBAAkC,EAAA;CACtD,MAAM,MAAM,GAAGD,aAAkB,EAAA;CACjC,MAAM,SAAS,GAAGE,gBAAgC,EAAA;CAClD,MAAM,OAAO,GAAGC,cAA8B,EAAA;CAC9C,MAAM,SAAS,GAAGM,gBAAwB,EAAA;CAC1C,MAAM,MAAM,GAAGC,aAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,MAAM;KACf,UAAU,EAAE,QAAQ;KACpB,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AAC7C,SAAQ,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AACvE,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG;AAC5B,SAAQ,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM;aACzD,OAAO,WAAW,EAAE;AAChC,SAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;SACpE,IAAI,QAAQ,KAAK,SAAS;AAClC,aAAY,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC;AAC5E,SAAQ,IAAI,QAAQ,YAAY,SAAS,CAAC,SAAS;AACnD,aAAY,OAAO,YAAY,CAAC,QAAQ,CAAC;AACzC,SAAQ,OAAO,eAAe,CAAC,QAAQ,CAAC;SAChC,SAAS,WAAW,GAAG;aACnB,IAAI,GAAG,KAAK,IAAI;AAC5B,iBAAgB,OAAO,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;AAClE,aAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aACtD,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3F;AACA,SAAQ,SAAS,YAAY,CAAC,GAAG,EAAE;aACvB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;aAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;AAC5C;AACA,SAAQ,SAAS,eAAe,CAAC,GAAG,EAAE;AACtC,aAAY,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;aACtI,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;iBACzB,MAAM,EAAE,GAAG;iBACX,SAAS,EAAE,EAAE;AAC7B,iBAAgB,UAAU,EAAE,SAAS,CAAC,GAAG;iBACzB,YAAY,EAAE,OAAO;iBACrB,aAAa,EAAE,IAAI;cACtB,EAAE,KAAK,CAAC;AACrB,aAAY,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB;MACK;EACJ;AACD,CAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;KACnB,OAAO,GAAG,CAAC;AACf,WAAU,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;WAChD,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC;AAChF;AACA,CAAAmT,KAAA,CAAA,WAAmB,GAAG,WAAW;CACjC,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;AACtC,KAAI,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG;KACvB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AAClD,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG;AAC3E,KAAI,IAAI,MAAM;AACd,SAAQ,YAAY,EAAE;AACtB;AACA,SAAQ,WAAW,EAAE;KACjB,SAAS,YAAY,GAAG;AAC5B,SAAQ,IAAI,CAAC,GAAG,CAAC,MAAM;AACvB,aAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;SAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,SAAQ,GAAG,CAAC,GAAG,CAAC,MAAM;AACtB,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/F,aAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACpB,IAAI,CAAC,SAAS;AAC1B,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;UAC9B,EAAE,CAAC,CAAC,KAAK;AAClB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACvF,aAAa,CAAC,CAAC,CAAC;aAChB,IAAI,CAAC,SAAS;AAC1B,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACxC,UAAS,CAAC;AACV,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB;KACI,SAAS,WAAW,GAAG;AAC3B,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC;AACpH;AACA,KAAI,SAAS,aAAa,CAAC,MAAM,EAAE;AACnC,SAAQ,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;SAChD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACnJ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChG;AACA,KAAI,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACtC,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;aACpB;AACZ,SAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS;AAC5I;AACA,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;AAC/B,aAAY,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC5D,iBAAgB,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE;AACtD,qBAAoB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAC7F;AACA;kBACiB;iBACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBAC5E,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;AAC5F;AACA;AACA,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;AAC/B,aAAY,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC5D,iBAAgB,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE;AACtD,qBAAoB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAC7F;AACA;kBACiB;iBACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBAC5E,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;AAC5F;AACA;AACA;AACA;AACA,CAAAA,KAAA,CAAA,OAAe,GAAG,OAAO;AACzB,CAAAA,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;ACxHA,CAAA,MAAM,CAAC,cAAc,CAACC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,IAAI,GAAG7T,WAAe,EAAA;CAC5B,MAAM,KAAK,GAAGD,YAAgB,EAAA;AAC9B,CAAA,MAAM,IAAI,GAAG;AACb,KAAI,SAAS;AACb,KAAI,KAAK;AACT,KAAI,OAAO;AACX,KAAI,aAAa;AACjB,KAAI,EAAE,OAAO,EAAE,UAAU,EAAE;AAC3B,KAAI,aAAa;KACb,IAAI,CAAC,OAAO;KACZ,KAAK,CAAC,OAAO;EAChB;AACD,CAAA8T,MAAA,CAAA,OAAe,GAAG,IAAI;AACtB;;;;;;;;;;;;;ACdA,CAAA,MAAM,CAAC,cAAc,CAACC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG9T,gBAAgC,EAAA;AAClD,CAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS;AAC/B,CAAA,MAAM,IAAI,GAAG;AACb,KAAI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;AACvD,KAAI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;AACvD,KAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;AAC/D,KAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;EAC9D;AACD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC3G,KAAI,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;EACrH;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;AACjD,SAAQ,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAClG;EACJ;AACD,CAAA8T,aAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACzBA,CAAA,MAAM,CAAC,cAAc,CAACC,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG/T,gBAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;KACnF,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;EAC7E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,YAAY;KACrB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AACjD;AACA,SAAQ,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB;SACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;SAC1B,MAAM,OAAO,GAAG;AACxB,eAAc,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAClF,eAAc,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,SAAQ,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;MAC1G;EACJ;AACD,CAAA+T,YAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;ACxBA,CAAA,MAAM,CAAC,cAAc,CAACC,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;AACA;CACA,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,KAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;KACtB,IAAI,MAAM,GAAG,CAAC;KACd,IAAI,GAAG,GAAG,CAAC;AACf,KAAI,IAAI,KAAK;AACb,KAAI,OAAO,GAAG,GAAG,GAAG,EAAE;AACtB,SAAQ,MAAM,EAAE;SACR,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,SAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AAC7D;AACA,aAAY,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;AACvC,aAAY,IAAI,CAAC,KAAK,GAAG,MAAM,MAAM,MAAM;iBAC3B,GAAG,EAAE,CAAC;AACtB;AACA;AACA,KAAI,OAAO,MAAM;AACjB;AACA,CAAAA,YAAA,CAAA,OAAe,GAAG,UAAU;CAC5B,UAAU,CAAC,IAAI,GAAG,gDAAgD;AAClE;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAACC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGjU,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;CAC5C,MAAM,YAAY,GAAGE,mBAAmC,EAAA;AACxD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO;AAC/D,SAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;MAClF;KACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACxE;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;KACnC,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AACrD,SAAQ,MAAM,EAAE,GAAG,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE;SACpF,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SAC7J,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;MAC/D;EACJ;AACD,CAAAgU,aAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACzBA,CAAA,MAAM,CAAC,cAAc,CAACC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGlU,aAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,gBAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;KACpF,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;EAC1E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,SAAS;KAClB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D;SACQ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AAClD,SAAQ,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC;SACjH,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAC7D;EACJ;AACD,CAAAmU,SAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAACC,iBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGnU,gBAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,eAAe,GAAG,MAAM,GAAG,OAAO;AACnE,SAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;MAClF;KACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACxE;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;KAC3C,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;AACjD,SAAQ,MAAM,EAAE,GAAG,OAAO,KAAK,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE;SACxF,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;MACpF;EACJ;AACD,CAAAmU,iBAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAACnR,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGhD,aAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGE,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC,CAAC;KACnH,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAC;EACxG;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,UAAU;KACnB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,OAAO;KACnB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,GAAG;AAChE,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;SACnB,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;aAC7B;SACJ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;SAClD,IAAI,EAAE,CAAC,SAAS;AACxB,aAAY,aAAa,EAAE;AAC3B;AACA,aAAY,eAAe,EAAE;AAC7B,SAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,aAAY,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU;AACrD,aAAY,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,EAAE;AAChD,aAAY,KAAK,MAAM,WAAW,IAAI,MAAM,EAAE;AAC9C,iBAAgB,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;qBACzH,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa;AAC7E,qBAAoB,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,EAAE,UAAU,CAAC,kBAAkB,CAAC;AACvH,qBAAoB,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;AAChF;AACA;AACA;SACQ,SAAS,aAAa,GAAG;AACjC,aAAY,IAAI,OAAO,IAAI,KAAK,EAAE;iBAClB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC;AAC9D;kBACiB;AACjB,iBAAgB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;qBACvB,IAAI,MAAM,CAAC,sBAAsB,EAAE,GAAG,EAAE,IAAI,CAAC;AACjE;AACA;AACA;SACQ,SAAS,eAAe,GAAG;aACvB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,aAAY,IAAI,OAAO,IAAI,KAAK,EAAE;iBAClB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACpD,iBAAgB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7E,iBAAgB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAC7B;kBACiB;AACjB,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC1D,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC;iBAC3C,GAAG,CAAC,IAAI,EAAE;AAC1B;AACA;SACQ,SAAS,eAAe,GAAG;aACvB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,KAAK;iBACpC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;iBACxC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5G,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE;aACtC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;aAC3C,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM;iBACjC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACrG,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;qBACpC,GAAG,CAAC,KAAK,EAAE;qBACX,GAAG,CAAC,KAAK,EAAE;AAC/B,kBAAiB,CAAC;AAClB,cAAa,EAAE,SAAS,CAAC,GAAG,CAAC;AAC7B;MACK;EACJ;AACD,CAAA+C,UAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC7EA,CAAA,MAAM,CAAC,cAAc,CAACoR,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGpU,gBAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO;AAC9D,SAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;MAC7E;KACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACxE;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KACjC,IAAI,EAAE,OAAO;KACb,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;AACjD,SAAQ,MAAM,EAAE,GAAG,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE;SACnF,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;MACvE;EACJ;AACD,CAAAoU,YAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;CACA,MAAM,KAAK,GAAGrU,oBAA0B,EAAA;CACxC,KAAK,CAAC,IAAI,GAAG,2CAA2C;AACxD,CAAAqU,OAAA,CAAA,OAAe,GAAG,KAAK;AACvB;;;;;;;;;ACLA,CAAA,MAAM,CAAC,cAAc,CAACC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,UAAU,GAAGtU,iBAA0C,EAAA;CAC7D,MAAM,SAAS,GAAGD,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGE,aAA6B,EAAA;CAC5C,MAAM,OAAO,GAAGC,cAA8B,EAAA;AAC9C,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,wCAAwC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC;AAChI,KAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;EAC1E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,aAAa;KACtB,IAAI,EAAE,OAAO;KACb,UAAU,EAAE,SAAS;KACrB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AAC9E,SAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;aACjB;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,SAAQ,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE;SAC9F,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;AAC9F,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;SACb,SAAS,mBAAmB,GAAG;aAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACzD,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;aACtB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnC,aAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AACnC,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F;SACQ,SAAS,WAAW,GAAG;aACnB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,OAAO,CAAC;AAClG;AACA,SAAQ,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;aACjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;aAC7B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/H,aAAY,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,aAAY,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM;iBACvC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,iBAAgB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC9D,iBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;AACxC,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC5F;sBACK,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM;qBACrE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;qBACrD,GAAG,CAAC,KAAK,EAAE;qBACX,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;kBACnC;sBACI,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,aAAY,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;aACrD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,aAAY,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM;iBACjL,GAAG,CAAC,KAAK,EAAE;AAC3B,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;cACxC,CAAC,CAAC,CAAC;AAChB;MACK;EACJ;AACD,CAAAoU,aAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC9DA,CAAA,MAAM,CAAC,cAAc,CAACC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGvU,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;CAC5C,MAAM,OAAO,GAAGE,cAA8B,EAAA;AAC9C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,2BAA2B;KACpC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;EAC/E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG;SACpD,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,CAAC,EAAE;AAC5D,aAAY,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACnH;cACa;aACD,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9D;MACK;EACJ;AACD,CAAAsU,QAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACvBA,CAAA,MAAM,CAAC,cAAc,CAAClF,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGrP,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;CAC5C,MAAM,OAAO,GAAGE,cAA8B,EAAA;AAC9C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,4CAA4C;KACrD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;EAChF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,MAAM;KACf,UAAU,EAAE,OAAO;KACnB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;SACxD,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AACzC,aAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;SACrD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ;AACzD,SAAQ,IAAI,GAAG;AACf,SAAQ,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACvH,SAAQ,IAAI,KAAK;AACjB,SAAQ,IAAI,OAAO,IAAI,KAAK,EAAE;AAC9B,aAAY,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,aAAY,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC3C;cACa;AACb;AACA,aAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,iBAAgB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;aAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;aAChD,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF;AACA,SAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SACf,SAAS,QAAQ,GAAG;AAC5B,aAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;aACxB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3I;AACA,SAAQ,SAAS,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;AACvC,aAAY,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACjC,aAAY,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK;mBACpC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC1E,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvD;MACK;EACJ;AACD,CAAAoP,OAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;AC9CA,CAAA,MAAM,CAAC,cAAc,CAACmF,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,aAAa,GAAGxU,oBAAwB,EAAA;CAC9C,MAAM,YAAY,GAAGD,mBAAuB,EAAA;CAC5C,MAAM,aAAa,GAAGE,oBAAwB,EAAA;CAC9C,MAAM,SAAS,GAAGC,gBAAoB,EAAA;CACtC,MAAM,iBAAiB,GAAGM,wBAA4B,EAAA;CACtD,MAAM,UAAU,GAAGC,iBAAqB,EAAA;CACxC,MAAM,YAAY,GAAGN,mBAAuB,EAAA;CAC5C,MAAM,aAAa,GAAGO,oBAAwB,EAAA;CAC9C,MAAM,OAAO,GAAGM,eAAkB,EAAA;CAClC,MAAM,MAAM,GAAGL,cAAiB,EAAA;AAChC,CAAA,MAAM,UAAU,GAAG;AACnB;KACI,aAAa,CAAC,OAAO;KACrB,YAAY,CAAC,OAAO;AACxB;KACI,aAAa,CAAC,OAAO;KACrB,SAAS,CAAC,OAAO;AACrB;KACI,iBAAiB,CAAC,OAAO;KACzB,UAAU,CAAC,OAAO;AACtB;KACI,YAAY,CAAC,OAAO;KACpB,aAAa,CAAC,OAAO;AACzB;AACA,KAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;KACpD,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE;KAC9C,OAAO,CAAC,OAAO;KACf,MAAM,CAAC,OAAO;EACjB;AACD,CAAA6T,YAAA,CAAA,OAAe,GAAG,UAAU;AAC5B;;;;;;;;;;;;;AC/BA,CAAA,MAAM,CAAC,cAAc,CAACC,iBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAA+BA,iBAAA,CAAA,uBAAA,GAAG,MAAM;CACxC,MAAM,SAAS,GAAGzU,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC;KAC3F,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;EACtE;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,iBAAiB;KAC1B,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;KACjC,MAAM,EAAE,aAAa;AACzB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AACxC,SAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY;SAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;aACvB,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,sEAAsE,CAAC;aACvG;AACZ;AACA,SAAQ,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC;MACtC;EACJ;AACD,CAAA,SAAS,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE;AAC7C,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;AAClD,KAAI,EAAE,CAAC,KAAK,GAAG,IAAI;KACf,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE,KAAI,IAAI,MAAM,KAAK,KAAK,EAAE;SAClB,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SACpC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D;AACA,UAAS,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;AACtF,SAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrF,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;AACrE,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB;AACA,KAAI,SAAS,aAAa,CAAC,KAAK,EAAE;AAClC,SAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK;aACxC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC;AACzF,aAAY,IAAI,CAAC,EAAE,CAAC,SAAS;AAC7B,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpE,UAAS,CAAC;AACV;AACA;AACA,CAAA0U,iBAAA,CAAA,uBAA+B,GAAG,uBAAuB;AACzD,CAAAA,iBAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;AC/CA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAqBA,OAAA,CAAA,aAAA,GAAG,MAAM;CAC9B,MAAM,SAAS,GAAG1U,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;CAC5C,MAAM,MAAM,GAAGE,aAAkB,EAAA;AACjC,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,IAAI,EAAE,OAAO;KACb,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;KAC1C,MAAM,EAAE,aAAa;KACrB,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;AAClC,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;aACrB,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAChE,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;SACf,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aACzC;AACZ,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;MACzC;EACJ;CACD,SAAS,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;AAC7D,KAAI,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;KACpD,gBAAgB,CAAC,YAAY,CAAC;AAClC,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;AACnE,SAAQ,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC;AAC5E;KACI,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;SACvB,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC;aACtC;SACJ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC;AACrE,aAAY,OAAO;aACP,UAAU,EAAE,CAAC;aACb,QAAQ,EAAE,CAAC;UACd,EAAE,KAAK,CAAC,CAAC;AAClB,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB,MAAK,CAAC;AACN,KAAI,SAAS,gBAAgB,CAAC,GAAG,EAAE;AACnC,SAAQ,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE;AAC1C,SAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM;SACvB,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC;AACjG,SAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE;aACjC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,iCAAiC,EAAE,UAAU,CAAC,yCAAyC,EAAE,aAAa,CAAC,CAAC,CAAC;AACtJ,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC;AACnE;AACA;AACA;AACA,CAAAyU,OAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAAA,OAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;AClDA,CAAA,MAAM,CAAC,cAAc,CAACC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,OAAO,GAAG3U,cAAkB,EAAA;AAClC,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,aAAa;KACtB,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,OAAO,CAAC;KACrB,MAAM,EAAE,aAAa;AACzB,KAAI,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC;EAC1D;AACD,CAAA2U,aAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAACC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG5U,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;CAC5C,MAAM,MAAM,GAAGE,aAAkB,EAAA;CACjC,MAAM,iBAAiB,GAAGC,wBAA4B,EAAA;AACtD,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC;KAC3F,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;EACtE;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,MAAM,EAAE,aAAa;AACzB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAChD,SAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY;AAC5C,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;SACf,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aACzC;AACZ,SAAQ,IAAI,WAAW;aACX,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,GAAG,EAAE,WAAW,CAAC;AAC5E;AACA,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;MAC7C;EACJ;AACD,CAAA0U,WAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC5BA,CAAA,MAAM,CAAC,cAAc,CAACC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG7U,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK;AACnD,WAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,cAAc;AACxE,WAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,cAAc,CAAC;KAC7F,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;EACrK;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,UAAU;KACnB,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,MAAM,EAAE,aAAa;KACrB,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,IAAI,GAAG;AACf,SAAQ,IAAI,GAAG;AACf,SAAQ,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY;AACzD,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;aACd,GAAG,GAAG,WAAW,KAAK,SAAS,GAAG,CAAC,GAAG,WAAW;aACjD,GAAG,GAAG,WAAW;AAC7B;cACa;aACD,GAAG,GAAG,CAAC;AACnB;SACQ,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/D,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE;AAC5C,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,oEAAoE,CAAC,CAAC;aACvG;AACZ;SACQ,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE;AAC5C,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,+CAA+C,CAAC,CAAC;aAClF,GAAG,CAAC,IAAI,EAAE;aACV;AACZ;AACA,SAAQ,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;AACvD,aAAY,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAC9C,IAAI,GAAG,KAAK,SAAS;iBACjB,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrE,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aACd;AACZ;AACA,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;SACf,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE;AAC5C,aAAY,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACxE;AACA,cAAa,IAAI,GAAG,KAAK,CAAC,EAAE;AAC5B,aAAY,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;aACpB,IAAI,GAAG,KAAK,SAAS;AACjC,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC;AACrF;cACa;AACb,aAAY,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AACjC,aAAY,sBAAsB,EAAE;AACpC;SACQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;SACpC,SAAS,sBAAsB,GAAG;aAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,aAAY,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF;AACA,SAAQ,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE;AAC9C,aAAY,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK;iBAC7B,GAAG,CAAC,SAAS,CAAC;qBACV,OAAO,EAAE,UAAU;qBACnB,QAAQ,EAAE,CAAC;AAC/B,qBAAoB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;qBAC7B,aAAa,EAAE,IAAI;kBACtB,EAAE,MAAM,CAAC;AAC1B,iBAAgB,KAAK,EAAE;AACvB,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,WAAW,CAAC,KAAK,EAAE;AACpC,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACnD,aAAY,IAAI,GAAG,KAAK,SAAS,EAAE;AACnC,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AACpG;kBACiB;AACjB,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;iBACpF,IAAI,GAAG,KAAK,CAAC;AAC7B,qBAAoB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C;AACA,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAChG;AACA;MACK;EACJ;AACD,CAAA8U,UAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;EC7FA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAA6B,CAAA,kBAAA,GAAA,OAAA,CAAA,oBAAA,GAA+B,OAAgB,CAAA,KAAA,GAAA,MAAM;EAClF,MAAM,SAAS,GAAG7U,gBAAgC,EAAA;EAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;EAC5C,MAAM,MAAM,GAAGE,aAAkB,EAAA;EACjC,OAAgB,CAAA,KAAA,GAAA;AAChB,MAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK;UACpD,MAAM,YAAY,GAAG,SAAS,KAAK,CAAC,GAAG,UAAU,GAAG,YAAY;UAChE,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC;OACrG;AACL,MAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;AACpH,qBAAqB,EAAE,eAAe,CAAC;AACvC,eAAe,EAAE,SAAS,CAAC;AAC3B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;GAClB;AACD,EAAA,MAAM,GAAG,GAAG;MACR,OAAO,EAAE,cAAc;MACvB,IAAI,EAAE,QAAQ;MACd,UAAU,EAAE,QAAQ;AACxB,MAAI,KAAK,EAAE,OAAO,CAAC,KAAK;MACpB,IAAI,CAAC,GAAG,EAAE;UACN,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC;AAC1D,UAAQ,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,UAAQ,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC;OACnC;GACJ;AACD,EAAA,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE;MACnC,MAAM,YAAY,GAAG,EAAE;MACvB,MAAM,UAAU,GAAG,EAAE;AACzB,MAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;UACtB,IAAI,GAAG,KAAK,WAAW;cACnB;AACZ,UAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,UAAU;UACnE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B;AACA,MAAI,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC;AACrC;EACA,SAAS,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE;MAC1D,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;MAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;UACtC;MACJ,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AACtC,MAAI,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AACrC,UAAQ,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AACvC,UAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;cACjB;UACJ,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;UACtF,GAAG,CAAC,SAAS,CAAC;cACV,QAAQ,EAAE,IAAI;AAC1B,cAAY,SAAS,EAAE,IAAI,CAAC,MAAM;AAClC,cAAY,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,WAAS,CAAC;AACV,UAAQ,IAAI,EAAE,CAAC,SAAS,EAAE;AAC1B,cAAY,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM;AACtC,kBAAgB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;sBACxB,IAAI,MAAM,CAAC,sBAAsB,EAAE,GAAG,EAAE,OAAO,CAAC;AACpE;AACA,eAAa,CAAC;AACd;eACa;AACb,cAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;cAClG,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC;cAC3C,GAAG,CAAC,IAAI,EAAE;AACtB;AACA;AACA;AACA,EAAA,OAAA,CAAA,oBAAA,GAA+B,oBAAoB;EACnD,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE;MACtD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;MACtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,MAAI,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACnC,UAAQ,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;cACnD;UACJ,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM;AACzF,cAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;AAC9E,cAAY,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;WACzC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;WAC5B;AACT,UAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB;AACA;AACA,EAAA,OAAA,CAAA,kBAAA,GAA6B,kBAAkB;AAC/C,EAAA,OAAA,CAAA,OAAA,GAAkB,GAAG;AACrB;;;;;;;;;;;;ACnFA,CAAA,MAAM,CAAC,cAAc,CAAC6U,eAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG9U,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,6BAA6B;KACtC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;EACpF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,eAAe;KACxB,IAAI,EAAE,QAAQ;AAClB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;AACrC,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;SACrC,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aACzC;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;aAC5B,GAAG,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;aACpC,GAAG,CAAC,SAAS,CAAC;iBACV,OAAO,EAAE,eAAe;iBACxB,IAAI,EAAE,GAAG;AACzB,iBAAgB,SAAS,EAAE,CAAC,QAAQ,CAAC;iBACrB,YAAY,EAAE,GAAG;iBACjB,aAAa,EAAE,IAAI;cACtB,EAAE,KAAK,CAAC;AACrB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;AACpD,iBAAgB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,iBAAgB,IAAI,CAAC,EAAE,CAAC,SAAS;qBACb,GAAG,CAAC,KAAK,EAAE;AAC/B,cAAa,CAAC;AACd,UAAS,CAAC;AACV,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;MAChB;EACJ;AACD,CAAA+U,eAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACpCA,CAAA,MAAM,CAAC,cAAc,CAACC,sBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAG/U,aAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,gBAAgC,EAAA;CAClD,MAAM,OAAO,GAAGE,cAA8B,EAAA;CAC9C,MAAM,MAAM,GAAGC,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,qCAAqC;KAC9C,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;EAChG;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,sBAAsB;AACnC,KAAI,IAAI,EAAE,CAAC,QAAQ,CAAC;AACpB,KAAI,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;KACjC,cAAc,EAAE,IAAI;KACpB,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG;AACtE;SACQ,IAAI,CAAC,SAAS;AACtB,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD,SAAQ,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AACtC,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;AACvB,SAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aAC5E;AACZ,SAAQ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC;AAC9E,SAAQ,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,iBAAiB,CAAC;AACxF,SAAQ,yBAAyB,EAAE;SAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SACrE,SAAS,yBAAyB,GAAG;aACjC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;iBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM;qBACjC,sBAAsB,CAAC,GAAG,CAAC;AAC/C;AACA,qBAAoB,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAChF,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,YAAY,CAAC,GAAG,EAAE;AACnC,aAAY,IAAI,WAAW;AAC3B,aAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC;AACA,iBAAgB,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC;AACzG,iBAAgB,WAAW,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC;AAC9E;AACA,kBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE;AACnC,iBAAgB,WAAW,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG;kBACiB;AACjB,iBAAgB,WAAW,GAAG,SAAS,CAAC,GAAG;AAC3C;AACA,aAAY,IAAI,QAAQ,CAAC,MAAM,EAAE;iBACjB,WAAW,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvJ;aACY,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC;AAClD;AACA,SAAQ,SAAS,gBAAgB,CAAC,GAAG,EAAE;aAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D;AACA,SAAQ,SAAS,sBAAsB,CAAC,GAAG,EAAE;AAC7C,aAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,KAAK,IAAI,CAAC,gBAAgB,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;iBAChF,gBAAgB,CAAC,GAAG,CAAC;iBACrB;AAChB;AACA,aAAY,IAAI,MAAM,KAAK,KAAK,EAAE;iBAClB,GAAG,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;iBAC1C,GAAG,CAAC,KAAK,EAAE;iBACX,IAAI,CAAC,SAAS;qBACV,GAAG,CAAC,KAAK,EAAE;iBACf;AAChB;AACA,aAAY,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;iBACzE,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/C,iBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACzD,qBAAoB,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;AAC5D,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;yBACpC,GAAG,CAAC,KAAK,EAAE;yBACX,gBAAgB,CAAC,GAAG,CAAC;AAC7C,sBAAqB,CAAC;AACtB;sBACqB;AACrB,qBAAoB,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC;qBACjC,IAAI,CAAC,SAAS;AAClC,yBAAwB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5E;AACA;AACA;SACQ,SAAS,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;aAC/C,MAAM,SAAS,GAAG;iBACd,OAAO,EAAE,sBAAsB;iBAC/B,QAAQ,EAAE,GAAG;AAC7B,iBAAgB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;cAChC;AACb,aAAY,IAAI,MAAM,KAAK,KAAK,EAAE;AAClC,iBAAgB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;qBACrB,aAAa,EAAE,IAAI;qBACnB,YAAY,EAAE,KAAK;qBACnB,SAAS,EAAE,KAAK;AACpC,kBAAiB,CAAC;AAClB;AACA,aAAY,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;AAC3C;MACK;EACJ;AACD,CAAA6U,sBAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACxGA,CAAA,MAAM,CAAC,cAAc,CAACC,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,UAAU,GAAGhV,iBAAiC,EAAA;CACpD,MAAM,MAAM,GAAGD,aAAkB,EAAA;CACjC,MAAM,MAAM,GAAGE,aAA6B,EAAA;CAC5C,MAAM,sBAAsB,GAAGC,6BAAiC,EAAA;AAChE,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,YAAY;KACrB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,gBAAgB,KAAK,KAAK,IAAI,YAAY,CAAC,oBAAoB,KAAK,SAAS,EAAE;AACnG,aAAY,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACtI;SACQ,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;AAChE,SAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACrC,aAAY,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C;AACA,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;aAC7D,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AAC/F;SACQ,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,SAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;aACvB;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,SAAQ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACvC,aAAY,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;iBAClB,mBAAmB,CAAC,IAAI,CAAC;AACzC;kBACiB;iBACD,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBAC1E,mBAAmB,CAAC,IAAI,CAAC;AACzC,iBAAgB,IAAI,CAAC,EAAE,CAAC,SAAS;qBACb,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;iBAC/B,GAAG,CAAC,KAAK,EAAE;AAC3B;aACY,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB;AACA,SAAQ,SAAS,UAAU,CAAC,IAAI,EAAE;AAClC,aAAY,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;AACjG;AACA,SAAQ,SAAS,mBAAmB,CAAC,IAAI,EAAE;aAC/B,GAAG,CAAC,SAAS,CAAC;iBACV,OAAO,EAAE,YAAY;iBACrB,UAAU,EAAE,IAAI;iBAChB,QAAQ,EAAE,IAAI;cACjB,EAAE,KAAK,CAAC;AACrB;MACK;EACJ;AACD,CAAA8U,YAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACpDA,CAAA,MAAM,CAAC,cAAc,CAACC,mBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGjV,aAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGE,aAA6B,EAAA;CAC5C,MAAM,MAAM,GAAGA,aAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,mBAAmB;KAC5B,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;SACnB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACxD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,SAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;AACjC,cAAa,mBAAmB,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAC3D,kBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE;aAClD;AACZ;AACA,SAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,YAAY,CAAC,UAAU;SACrG,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE;AACxE,aAAY,EAAE,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC;AACtE;AACA,SAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;AAC5B,SAAQ,yBAAyB,EAAE;SAC3B,SAAS,yBAAyB,GAAG;AAC7C,aAAY,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACxC,iBAAgB,IAAI,eAAe;qBACf,uBAAuB,CAAC,GAAG,CAAC;AAChD,iBAAgB,IAAI,EAAE,CAAC,SAAS,EAAE;qBACd,kBAAkB,CAAC,GAAG,CAAC;AAC3C;sBACqB;qBACD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACrB,kBAAkB,CAAC,GAAG,CAAC;AAC3C,qBAAoB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACjC;AACA;AACA;AACA,SAAQ,SAAS,uBAAuB,CAAC,GAAG,EAAE;AAC9C,aAAY,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;iBAChC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC5B,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC5H;AACA;AACA;AACA,SAAQ,SAAS,kBAAkB,CAAC,GAAG,EAAE;aAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;AAC5C,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;qBAC9E,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;qBACrD,IAAI,CAAC,WAAW,EAAE;yBACd,GAAG,CAAC,SAAS,CAAC;6BACV,OAAO,EAAE,mBAAmB;6BAC5B,UAAU,EAAE,GAAG;6BACf,QAAQ,EAAE,GAAG;AACzC,6BAA4B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;0BAChC,EAAE,KAAK,CAAC;AACjC;qBACoB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE;yBACvC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7E;0BACyB,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;AAC5D;AACA;AACA,yBAAwB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5E;AACA,kBAAiB,CAAC;AAClB,cAAa,CAAC;AACd;MACK;EACJ;AACD,CAAAgV,mBAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACzEA,CAAA,MAAM,CAAC,cAAc,CAACC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGlV,aAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,KAAK;AAClB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,WAAW,EAAE,IAAI;KACjB,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;AACvC,SAAQ,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;aAC3C,GAAG,CAAC,IAAI,EAAE;aACV;AACZ;SACQ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,GAAG,CAAC,SAAS,CAAC;aACV,OAAO,EAAE,KAAK;aACd,aAAa,EAAE,IAAI;aACnB,YAAY,EAAE,KAAK;aACnB,SAAS,EAAE,KAAK;UACnB,EAAE,KAAK,CAAC;AACjB,SAAQ,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;MAC9D;AACL,KAAI,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;EAC1C;AACD,CAAAkV,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACxBA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGnV,aAAkB,EAAA;AACjC,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,UAAU,EAAE,OAAO;KACnB,WAAW,EAAE,IAAI;AACrB,KAAI,IAAI,EAAE,MAAM,CAAC,aAAa;AAC9B,KAAI,KAAK,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE;EACrD;AACD,CAAAmV,OAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGpV,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,wCAAwC;KACjD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;EACjF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,UAAU,EAAE,OAAO;KACnB,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AACrD;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;SAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa;aACnD;SACJ,MAAM,MAAM,GAAG,MAAM;SACrB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;SACrC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;SACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,SAAQ,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AAClC;AACA,SAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;AAChC,SAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC3D,SAAS,aAAa,GAAG;aACrB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AACvC,iBAAgB,IAAI,MAAM;AAC1B,iBAAgB,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;AAC5D,qBAAoB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC3C;sBACqB;AACrB,qBAAoB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;yBACnB,OAAO,EAAE,OAAO;yBAChB,UAAU,EAAE,CAAC;yBACb,aAAa,EAAE,IAAI;sBACtB,EAAE,QAAQ,CAAC;AAChC;AACA,iBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE;qBACP;AACpB,0BAAyB,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtE,0BAAyB,MAAM,CAAC,KAAK,EAAE,KAAK;0BACnB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,0BAAyB,IAAI,EAAE;AAC/B;AACA,iBAAgB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM;AACvC,qBAAoB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C,qBAAoB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1C,qBAAoB,IAAI,MAAM;yBACN,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;AAClE,kBAAiB,CAAC;AAClB,cAAa,CAAC;AACd;MACK;EACJ;AACD,CAAAqV,OAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC1DA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGrV,aAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,UAAU,EAAE,OAAO;KACnB,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;AACvC;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;SAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;aACvB,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC;iBACtC;AAChB,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;AACpF,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB,aAAY,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,UAAS,CAAC;MACL;EACJ;AACD,CAAAqV,OAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACrBA,CAAA,MAAM,CAAC,cAAc,CAACC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGtV,gBAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACpF,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;EAClF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,IAAI;AACjB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC7C,SAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE;aACpE,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,2CAA2C,CAAC;AACxF;SACQ,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;SACrC,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;AAC7C,SAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;aACpB;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;SACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,SAAQ,UAAU,EAAE;SACZ,GAAG,CAAC,KAAK,EAAE;AACnB,SAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;aACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;AAChD,aAAY,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;AACvC,aAAY,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChG;cACa,IAAI,OAAO,EAAE;aACd,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AACpD;cACa;AACb,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AACxE;AACA,SAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACtC,SAAS,UAAU,GAAG;AAC9B,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;iBACzB,OAAO,EAAE,IAAI;iBACb,aAAa,EAAE,IAAI;iBACnB,YAAY,EAAE,KAAK;iBACnB,SAAS,EAAE,KAAK;cACnB,EAAE,QAAQ,CAAC;AACxB,aAAY,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC;AACA,SAAQ,SAAS,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnD,aAAY,OAAO,MAAM;AACzB,iBAAgB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC;AACnE,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC3C,iBAAgB,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;AACtD,iBAAgB,IAAI,QAAQ;AAC5B,qBAAoB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE;qBACoB,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;cAC3C;AACb;MACK;EACJ;AACD,CAAA,SAAS,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE;KAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AACrC,KAAI,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;AAC7E;AACA,CAAAuV,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AChEA,CAAA,MAAM,CAAC,cAAc,CAACC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGvV,aAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7B,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE;AACxC,SAAQ,IAAI,YAAY,CAAC,EAAE,KAAK,SAAS;AACzC,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;MAC9E;EACJ;AACD,CAAAuV,UAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;ACXA,CAAA,MAAM,CAAC,cAAc,CAACC,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,iBAAiB,GAAGxV,wBAA4B,EAAA;CACtD,MAAM,aAAa,GAAGD,oBAAwB,EAAA;CAC9C,MAAM,OAAO,GAAGE,cAAkB,EAAA;CAClC,MAAM,WAAW,GAAGC,kBAAsB,EAAA;CAC1C,MAAM,UAAU,GAAGM,iBAAqB,EAAA;CACxC,MAAM,cAAc,GAAGC,qBAAyB,EAAA;CAChD,MAAM,eAAe,GAAGN,sBAA0B,EAAA;CAClD,MAAM,sBAAsB,GAAGO,6BAAiC,EAAA;CAChE,MAAM,YAAY,GAAGM,mBAAuB,EAAA;CAC5C,MAAM,mBAAmB,GAAGL,0BAA8B,EAAA;CAC1D,MAAM,KAAK,GAAGC,YAAgB,EAAA;CAC9B,MAAM,OAAO,GAAGK,cAAkB,EAAA;CAClC,MAAM,OAAO,GAAGC,cAAkB,EAAA;CAClC,MAAM,OAAO,GAAGE,cAAkB,EAAA;CAClC,MAAM,IAAI,GAAGC,YAAe,EAAA;CAC5B,MAAM,UAAU,GAAGC,iBAAqB,EAAA;AACxC,CAAA,SAAS,aAAa,CAAC,SAAS,GAAG,KAAK,EAAE;KACtC,MAAM,UAAU,GAAG;AACvB;SACQ,KAAK,CAAC,OAAO;SACb,OAAO,CAAC,OAAO;SACf,OAAO,CAAC,OAAO;SACf,OAAO,CAAC,OAAO;SACf,IAAI,CAAC,OAAO;SACZ,UAAU,CAAC,OAAO;AAC1B;SACQ,eAAe,CAAC,OAAO;SACvB,sBAAsB,CAAC,OAAO;SAC9B,cAAc,CAAC,OAAO;SACtB,YAAY,CAAC,OAAO;SACpB,mBAAmB,CAAC,OAAO;MAC9B;AACL;AACA,KAAI,IAAI,SAAS;SACT,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;AACnE;SACQ,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;AACnE,KAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACvC,KAAI,OAAO,UAAU;AACrB;AACA,CAAAkU,YAAA,CAAA,OAAe,GAAG,aAAa;AAC/B;;;;;;;;;;;;;AC1CA,CAAA,MAAM,CAAC,cAAc,CAACC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGzV,gBAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC;KACnF,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;EACzE;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,QAAQ;AACrB,KAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC1B,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;AACT,KAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE;AACxB,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;SACxD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3D,SAAQ,IAAI,CAAC,IAAI,CAAC,eAAe;aACrB;AACZ,SAAQ,IAAI,KAAK;AACjB,aAAY,mBAAmB,EAAE;AACjC;AACA,aAAY,cAAc,EAAE;SACpB,SAAS,mBAAmB,GAAG;aAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;AACnD,iBAAgB,GAAG,EAAE,IAAI,CAAC,OAAO;AACjC,iBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AACvC,cAAa,CAAC;aACF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;aACzE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;aAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5C;AACA,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtS,aAAY,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;aAC5D,SAAS,UAAU,GAAG;AAClC,iBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK;qBAC3B,OAAO,SAAS,CAAC,GAAG;AACxC,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrE;aACY,SAAS,UAAU,GAAG;AAClC,iBAAgB,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7C,uBAAsB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;AACvG,uBAAsB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,iBAAgB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;AAC/H,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtH;AACA;SACQ,SAAS,cAAc,GAAG;aACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACtC,IAAI,CAAC,SAAS,EAAE;AAC5B,iBAAgB,aAAa,EAAE;iBACf;AAChB;aACY,IAAI,SAAS,KAAK,IAAI;iBAClB;AAChB,aAAY,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;aACtD,IAAI,OAAO,KAAK,QAAQ;AACpC,iBAAgB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;aAC9B,SAAS,aAAa,GAAG;AACrC,iBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;qBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;qBAC9B;AACpB;AACA,iBAAgB,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;iBAC7B,SAAS,UAAU,GAAG;qBAClB,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC,CAAC;AACpG;AACA;AACA,aAAY,SAAS,SAAS,CAAC,MAAM,EAAE;AACvC,iBAAgB,MAAM,IAAI,GAAG,MAAM,YAAY;AAC/C,uBAAsB,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM;uBAChC,IAAI,CAAC,IAAI,CAAC;2BACN,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACrG,2BAA0B,SAAS;iBACnB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBACzE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,EAAE,MAAM,YAAY,MAAM,CAAC,EAAE;qBAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AACzG;AACA,iBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;AAC9C;aACY,SAAS,cAAc,GAAG;AACtC,iBAAgB,IAAI,OAAO,SAAS,IAAI,QAAQ,IAAI,EAAE,SAAS,YAAY,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE;AACvG,qBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM;AACzC,yBAAwB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;AACtE,qBAAoB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE;AACA,iBAAgB,OAAO,OAAO,MAAM,IAAI,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACvI;AACA;MACK;EACJ;AACD,CAAAyV,QAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;AC1FA,CAAA,MAAM,CAAC,cAAc,CAACC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,QAAQ,GAAG1V,eAAmB,EAAA;AACpC,CAAA,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AACjC,CAAA0V,QAAA,CAAA,OAAe,GAAG,MAAM;AACxB;;;;;;;;;;;ACJA,CAAA,MAAM,CAAC,cAAc,CAACC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAAA,UAAA,CAAA,iBAAyB,GAAGA,UAAA,CAAA,kBAA0B,GAAG,MAAM;AAC/D,CAAAA,UAAA,CAAA,kBAA0B,GAAG;AAC7B,KAAI,OAAO;AACX,KAAI,aAAa;AACjB,KAAI,SAAS;AACb,KAAI,YAAY;AAChB,KAAI,UAAU;AACd,KAAI,WAAW;AACf,KAAI,UAAU;EACb;AACD,CAAAA,UAAA,CAAA,iBAAyB,GAAG;AAC5B,KAAI,kBAAkB;AACtB,KAAI,iBAAiB;AACrB,KAAI,eAAe;EAClB;AACD;;;;;;;;;AChBA,CAAA,MAAM,CAAC,cAAc,CAACC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAG5V,aAAiB,EAAA;CAChC,MAAM,YAAY,GAAGD,mBAAuB,EAAA;CAC5C,MAAM,YAAY,GAAGE,mBAAuB,EAAA;CAC5C,MAAM,QAAQ,GAAGC,eAAmB,EAAA;CACpC,MAAM,UAAU,GAAGM,iBAAqB,EAAA;AACxC,CAAA,MAAM,kBAAkB,GAAG;KACvB,MAAM,CAAC,OAAO;KACd,YAAY,CAAC,OAAO;AACxB,KAAI,IAAI,YAAY,CAAC,OAAO,GAAG;KAC3B,QAAQ,CAAC,OAAO;KAChB,UAAU,CAAC,kBAAkB;KAC7B,UAAU,CAAC,iBAAiB;EAC/B;AACD,CAAAoV,QAAA,CAAA,OAAe,GAAG,kBAAkB;AACpC;;;;;;;;;;;;;ACfA,CAAA,MAAM,CAAC,cAAc,CAACC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAkBA,OAAA,CAAA,UAAA,GAAG,MAAM;AAC3B,CAAA,IAAI,UAAU;CACd,CAAC,UAAU,UAAU,EAAE;AACvB,KAAI,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK;AAC7B,KAAI,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS;EACpC,EAAE,UAAU,KAAKA,OAAA,CAAA,UAAkB,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;AACxD;;;;;;;;;ACPA,CAAA,MAAM,CAAC,cAAc,CAACC,eAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG9V,gBAAgC,EAAA;CAClD,MAAM,OAAO,GAAGD,cAAiC,EAAA;CACjD,MAAM,SAAS,GAAGE,gBAAwB,EAAA;CAC1C,MAAM,WAAW,GAAGC,kBAAkC,EAAA;CACtD,MAAM,MAAM,GAAGM,aAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;AACxF,WAAU,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB;AAC1C,WAAU,CAAC,cAAc,EAAE,OAAO,CAAC,kBAAkB,CAAC;AACtD,KAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;EACrI;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,eAAe;KACxB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;AACxB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY;AACtC,SAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;AACpC,aAAY,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAC3E;AACA,SAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY;AAC3C,SAAQ,IAAI,OAAO,OAAO,IAAI,QAAQ;AACtC,aAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;SAC3D,IAAI,MAAM,CAAC,OAAO;AAC1B,aAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;SAC9D,IAAI,CAAC,KAAK;AAClB,aAAY,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;SAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AAC7C,SAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;SAC9F,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,eAAe,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACnK,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;SACb,SAAS,eAAe,GAAG;AACnC,aAAY,MAAM,OAAO,GAAG,UAAU,EAAE;AACxC,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB,aAAY,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;iBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE;aACY,GAAG,CAAC,IAAI,EAAE;AACtB,aAAY,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;aAC1E,GAAG,CAAC,KAAK,EAAE;AACvB;AACA,SAAQ,SAAS,cAAc,CAAC,UAAU,EAAE;aAChC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5C,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC;aACtE,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;AACtD,aAAY,OAAO,MAAM;AACzB;SACQ,SAAS,UAAU,GAAG;AAC9B,aAAY,IAAI,EAAE;aACN,MAAM,YAAY,GAAG,EAAE;AACnC,aAAY,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC;aAC7C,IAAI,WAAW,GAAG,IAAI;AAClC,aAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,iBAAgB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAClC,iBAAgB,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnI,qBAAoB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI;qBACpB,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/F,qBAAoB,IAAI,GAAG,YAAY,SAAS,CAAC,SAAS;AAC1D,yBAAwB,GAAG,GAAG,GAAG,CAAC,MAAM;qBACpB,IAAI,GAAG,KAAK,SAAS;AACzC,yBAAwB,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;AAC1F;AACA,iBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;AAChJ,iBAAgB,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;qBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,8EAA8E,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChI;iBACgB,WAAW,GAAG,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9E,iBAAgB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC;aACY,IAAI,CAAC,WAAW;iBACZ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/E,aAAY,OAAO,YAAY;AAC/B,aAAY,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;AAC/C,iBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5E;AACA,aAAY,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;AACzC,iBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;AAC/B,qBAAoB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5C;AACA,sBAAqB,IAAI,GAAG,CAAC,IAAI,EAAE;AACnC,qBAAoB,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE;AACrD,yBAAwB,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C;AACA;sBACqB;qBACD,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACzG;AACA;AACA,aAAY,SAAS,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE;iBAC7B,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,YAAY,EAAE;qBACzD,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAChG;AACA,iBAAgB,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C;AACA;MACK;EACJ;AACD,CAAAsV,eAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECtGA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAA0B,CAAA,eAAA,GAAA,OAAA,CAAA,eAAA,GAA0B,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,cAAc,OAAY,CAAA,CAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,OAAc,CAAA,GAAA,GAAA,MAAM;EAC1L,MAAM,MAAM,GAAG9V,aAAiB,EAAA;EAChC,MAAM,QAAQ,GAAGD,eAAgC,EAAA;EACjD,MAAM,eAAe,GAAGE,sBAAuC,EAAA;EAC/D,MAAM,gBAAgB,GAAGC,YAA2C;AACpE,EAAA,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC;EACzC,MAAM,cAAc,GAAG,wCAAwC;AAC/D,EAAA,MAAM,GAAG,SAAS,MAAM,CAAC,OAAO,CAAC;AACjC,MAAI,gBAAgB,GAAG;UACf,KAAK,CAAC,gBAAgB,EAAE;AAChC,UAAQ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9D,UAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa;AACnC,cAAY,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC;AACpD;AACA,MAAI,qBAAqB,GAAG;UACpB,KAAK,CAAC,qBAAqB,EAAE;AACrC,UAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;cACf;AACZ,UAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;AACrC,gBAAc,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,iBAAiB;AACtE,gBAAc,gBAAgB;UACtB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC;AAC7D,UAAQ,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,GAAG,cAAc;AACnE;AACA,MAAI,WAAW,GAAG;AAClB,UAAQ,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW;AACrC,cAAY,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC;AAChG;AACA;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;EACjB,MAAiB,CAAA,OAAA,GAAA,OAAO,GAAG,GAAG;AAC9B,EAAA,MAAA,CAAA,OAAA,CAAA,GAAA,GAAqB,GAAG;EACxB,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,OAAA,GAAkB,GAAG;EACrB,IAAI,UAAU,GAAGM,iBAA6B,EAAA;EAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EACtH,IAAI,SAAS,GAAGC,gBAA4B,EAAA;EAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACnG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EACnH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACzG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EAC/G,IAAI,kBAAkB,GAAGN,yBAAqC,EAAA;EAC9D,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EAChI,IAAI,WAAW,GAAGO,kBAA8B,EAAA;EAChD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AACzH;;;;;;;;;;;;;;;;;;EChDA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAAsB,CAAA,WAAA,GAAA,MAAM;AACxE,EAAA,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,MAAI,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;AAChC;EACA,OAAsB,CAAA,WAAA,GAAA;AACtB;AACA,MAAI,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC;AACnC;MACI,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;MACxC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;MACvD,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC;MAC7C,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,kBAAkB,CAAC;AAC9D;MACI,QAAQ,EAAE,wEAAwE;AACtF,MAAI,GAAG;MACH,eAAe,EAAE,woCAAwoC;AAC7pC;MACI,cAAc,EAAE,mLAAmL;AACvM;AACA;MACI,GAAG,EAAE,odAAod;MACzd,KAAK,EAAE,0IAA0I;MACjJ,QAAQ,EAAE,uGAAuG;AACrH;MACI,IAAI,EAAE,mFAAmF;MACzF,IAAI,EAAE,k/BAAk/B;AAC5/B,MAAI,KAAK;AACT;MACI,IAAI,EAAE,8DAA8D;AACxE;AACA;MACI,cAAc,EAAE,2BAA2B;MAC3C,2BAA2B,EAAE,8DAA8D;AAC/F;MACI,uBAAuB,EAAE,kDAAkD;AAC/E;AACA;AACA,MAAI,IAAI;AACR;MACI,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE;AACtD;MACI,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE;AACtD;MACI,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE;AACvD;MACI,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE;AACxD;MACI,QAAQ,EAAE,IAAI;AAClB;MACI,MAAM,EAAE,IAAI;GACf;EACD,OAAsB,CAAA,WAAA,GAAA;MAClB,GAAG,OAAO,CAAC,WAAW;AAC1B,MAAI,IAAI,EAAE,MAAM,CAAC,4BAA4B,EAAE,WAAW,CAAC;AAC3D,MAAI,IAAI,EAAE,MAAM,CAAC,4EAA4E,EAAE,WAAW,CAAC;AAC3G,MAAI,WAAW,EAAE,MAAM,CAAC,qGAAqG,EAAE,eAAe,CAAC;AAC/I,MAAI,UAAU,EAAE,MAAM,CAAC,6EAA6E,EAAE,cAAc,CAAC;AACrH,MAAI,eAAe,EAAE,MAAM,CAAC,0GAA0G,EAAE,kBAAkB,CAAC;AAC3J;MACI,GAAG,EAAE,4CAA4C;MACjD,eAAe,EAAE,yEAAyE;AAC9F;AACA;AACA;MACI,KAAK,EAAE,kHAAkH;GAC5H;AACD,EAAA,OAAA,CAAA,WAAA,GAAsB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;EACtD,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B;AACA,MAAI,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC;AACnE;EACA,MAAM,IAAI,GAAG,4BAA4B;AACzC,EAAA,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EAChE,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB;MACI,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;MAC9B,IAAI,CAAC,OAAO;AAChB,UAAQ,OAAO,KAAK;AACpB,MAAI,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5B,MAAI,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7B,MAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;MACvB,QAAQ,KAAK,IAAI,CAAC;UACd,KAAK,IAAI,EAAE;UACX,GAAG,IAAI,CAAC;AAChB,UAAQ,GAAG,KAAK,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACnE;AACA,EAAA,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE;AAC7B,MAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AACnB,UAAQ,OAAO,SAAS;MACpB,IAAI,EAAE,GAAG,EAAE;AACf,UAAQ,OAAO,CAAC;MACZ,IAAI,EAAE,GAAG,EAAE;UACP,OAAO,EAAE;AACjB,MAAI,OAAO,CAAC;AACZ;EACA,MAAM,IAAI,GAAG,iEAAiE;EAC9E,SAAS,OAAO,CAAC,cAAc,EAAE;AACjC,MAAI,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE;UACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;UAC9B,IAAI,CAAC,OAAO;AACpB,cAAY,OAAO,KAAK;AACxB,UAAQ,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,UAAQ,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,UAAQ,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,UAAQ,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAC7B,UAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC;UAC1C,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;UAC9B,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,UAAQ,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,cAAc,IAAI,CAAC,EAAE,CAAC;AAC3D,cAAY,OAAO,KAAK;UAChB,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE;AAC7C,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM;AACzC,UAAQ,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;UACtD,OAAO,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,MAAM,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE;OACxF;AACL;AACA,EAAA,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE;AAC7B,MAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AACnB,UAAQ,OAAO,SAAS;AACxB,MAAI,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;AACrD,MAAI,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE;AACrD,MAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AACnB,UAAQ,OAAO,SAAS;MACpB,OAAO,EAAE,GAAG,EAAE;AAClB;AACA,EAAA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;AAChC,MAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AACnB,UAAQ,OAAO,SAAS;MACpB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;MACxB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5B,MAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AACnB,UAAQ,OAAO,SAAS;AACxB,MAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;MAC1B,IAAI,EAAE,GAAG,EAAE;AACf,UAAQ,OAAO,CAAC;MACZ,IAAI,EAAE,GAAG,EAAE;UACP,OAAO,EAAE;AACjB,MAAI,OAAO,CAAC;AACZ;EACA,MAAM,mBAAmB,GAAG,OAAO;EACnC,SAAS,WAAW,CAAC,cAAc,EAAE;AACrC,MAAI,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;AACxC,MAAI,OAAO,SAAS,SAAS,CAAC,GAAG,EAAE;AACnC;UACQ,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;UAC/C,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;OACzE;AACL;AACA,EAAA,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;AACnC,MAAI,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC;AACrB,UAAQ,OAAO,SAAS;MACpB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;MAClC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;AACtC,MAAI,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;AACnB,UAAQ,OAAO,SAAS;MACpB,OAAO,EAAE,GAAG,EAAE;AAClB;AACA,EAAA,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE;AACtC,MAAI,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC;AACrB,UAAQ,OAAO,SAAS;AACxB,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;AACnD,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;MAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC;MAC/B,IAAI,GAAG,KAAK,SAAS;AACzB,UAAQ,OAAO,SAAS;MACpB,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC;AACrC;EACA,MAAM,gBAAgB,GAAG,MAAM;EAC/B,MAAM,GAAG,GAAG,8nCAA8nC;EAC1oC,SAAS,GAAG,CAAC,GAAG,EAAE;AAClB;AACA,MAAI,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD;EACA,MAAM,IAAI,GAAG,oEAAoE;EACjF,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB,MAAI,IAAI,CAAC,SAAS,GAAG,CAAC;AACtB,MAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACzB;AACA,EAAA,MAAM,SAAS,GAAG,WAAU;AAC5B,EAAA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;EAC7B,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,MAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,SAAS;AAC9E;EACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B;AACA,MAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC;AACA,EAAA,SAAS,cAAc,GAAG;AAC1B,MAAI,OAAO,IAAI;AACf;EACA,MAAM,QAAQ,GAAG,UAAU;EAC3B,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,MAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,UAAQ,OAAO,KAAK;AACpB,MAAI,IAAI;AACR,UAAQ,IAAI,MAAM,CAAC,GAAG,CAAC;AACvB,UAAQ,OAAO,IAAI;AACnB;MACI,OAAO,CAAC,EAAE;AACd,UAAQ,OAAO,KAAK;AACpB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;EC9MA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,UAAA,GAAqB,OAA2B,CAAA,gBAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAAwB,CAAA,aAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,oBAAoB,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,GAAA,GAAc,OAAY,CAAA,CAAA,GAAA,OAAA,CAAA,GAAA,GAAc,OAAgB,CAAA,KAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,MAAM;AACnR;AACA,EAAA,MAAM,WAAW,CAAC;AAClB;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC,EAAA,OAAA,CAAA,UAAA,GAAqB,uBAAuB;EAC5C,MAAM,IAAI,SAAS,WAAW,CAAC;MAC3B,WAAW,CAAC,CAAC,EAAE;AACnB,UAAQ,KAAK,EAAE;UACP,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,cAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE,UAAQ,IAAI,CAAC,GAAG,GAAG,CAAC;AACpB;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,IAAI,CAAC,GAAG;AACvB;AACA,MAAI,QAAQ,GAAG;AACf,UAAQ,OAAO,KAAK;AACpB;MACI,IAAI,KAAK,GAAG;UACR,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAChC;AACA;AACA,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;EACnB,MAAM,KAAK,SAAS,WAAW,CAAC;MAC5B,WAAW,CAAC,IAAI,EAAE;AACtB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;AAC9D;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,IAAI,CAAC,GAAG;AACvB;AACA,MAAI,QAAQ,GAAG;AACf,UAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;AAClC,cAAY,OAAO,KAAK;UAChB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,UAAQ,OAAO,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,IAAI;AAC3C;MACI,IAAI,GAAG,GAAG;AACd,UAAQ,IAAI,EAAE;AACd,UAAQ,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5H;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,IAAI,EAAE;AACd,UAAQ,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;cACxG,IAAI,CAAC,YAAY,IAAI;AACjC,kBAAgB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD,cAAY,OAAO,KAAK;WACf,EAAE,EAAE,CAAC,CAAC;AACf;AACA;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB,EAAA,OAAA,CAAA,GAAA,GAAc,IAAI,KAAK,CAAC,EAAE,CAAC;AAC3B,EAAA,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;MACtB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;MACtB,IAAI,CAAC,GAAG,CAAC;AACb,MAAI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;UACpB,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;UACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B;AACA,MAAI,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;AAC1B;AACA,EAAA,OAAA,CAAA,CAAA,GAAY,CAAC;AACb,EAAA,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;AAC3B,EAAA,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE;MACxB,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;MACrC,IAAI,CAAC,GAAG,CAAC;AACb,MAAI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,UAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UACf,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,UAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD;MACI,QAAQ,CAAC,IAAI,CAAC;AAClB,MAAI,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;AAC1B;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;AACjB,EAAA,SAAS,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;MAC3B,IAAI,GAAG,YAAY,KAAK;UACpB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;WACvB,IAAI,GAAG,YAAY,IAAI;AAChC,UAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB;UACQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;EAC/B,SAAS,QAAQ,CAAC,IAAI,EAAE;MACpB,IAAI,CAAC,GAAG,CAAC;MACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,UAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC9B,cAAY,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,cAAY,IAAI,GAAG,KAAK,SAAS,EAAE;kBACnB,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;kBAC1B;AAChB;AACA,cAAY,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;AAC3B;AACA,UAAQ,CAAC,EAAE;AACX;AACA;AACA,EAAA,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;MAC1B,IAAI,CAAC,KAAK,IAAI;AAClB,UAAQ,OAAO,CAAC;MACZ,IAAI,CAAC,KAAK,IAAI;AAClB,UAAQ,OAAO,CAAC;AAChB,MAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC9B,UAAQ,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;cAC5C;AACZ,UAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ;AAChC,cAAY,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,UAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;AACxB,cAAY,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;UACtC;AACR;AACA,MAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC;AACpE,UAAQ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;MAC/B;AACJ;AACA,EAAA,SAAS,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE;MACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;EACA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,MAAI,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,SAAS,IAAI,CAAC,KAAK;YACxD;AACV,YAAU,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3D;EACA,SAAS,SAAS,CAAC,CAAC,EAAE;MAClB,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;EAC7B,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,MAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3B,WAAS,OAAO,CAAC,SAAS,EAAE,SAAS;AACrC,WAAS,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;AACtC;AACA,EAAA,OAAA,CAAA,aAAA,GAAwB,aAAa;EACrC,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,MAAI,OAAO,OAAO,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACvG;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC;EACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,MAAI,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;UACxD,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClC;MACI,MAAM,IAAI,KAAK,CAAC,CAAC,8BAA8B,EAAE,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC1F;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;EAC3C,SAAS,UAAU,CAAC,EAAE,EAAE;MACpB,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnC;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;;;;;;;;;;;;;EC1JA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,UAAA,GAAqB,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,cAAA,GAAyB,MAAM;EAChH,MAAM,MAAM,GAAGV,aAAiB,EAAA;EAChC,MAAM,UAAU,SAAS,KAAK,CAAC;MAC3B,WAAW,CAAC,IAAI,EAAE;UACd,KAAK,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACxD,UAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AAC/B;AACA;AACA,EAAA,IAAI,cAAc;EAClB,CAAC,UAAU,cAAc,EAAE;MACvB,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;MACzD,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW;GAChE,EAAE,cAAc,KAAK,OAAA,CAAA,cAAA,GAAyB,cAAc,GAAG,EAAE,CAAC,CAAC;EACpE,OAAmB,CAAA,QAAA,GAAA;MACf,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;MAC/B,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;MAC3B,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;GAC9B;AACD,EAAA,MAAM,KAAK,CAAC;MACR,WAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;AAC3C,UAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,UAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ;AACjC,UAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B;MACI,MAAM,CAAC,YAAY,EAAE;AACzB,UAAQ,OAAO,YAAY,YAAY,MAAM,CAAC,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3F;MACI,IAAI,CAAC,MAAM,EAAE;AACjB,UAAQ,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrD;MACI,QAAQ,CAAC,MAAM,EAAE;AACrB,UAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;UACzD,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACvC;MACI,UAAU,CAAC,MAAM,EAAE;UACf,IAAI,EAAE,EAAE,EAAE;UACV,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;cACvL,MAAM,IAAI,KAAK,CAAC,CAAC,iBAAiB,EAAE,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACvF;AACA,UAAQ,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;AAC1D;AACA;AACA,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB,EAAA,MAAM,cAAc,SAAS,MAAM,CAAC,IAAI,CAAC;AACzC,MAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;UACzB,KAAK,CAAC,OAAO,CAAC;AACtB,UAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B;MACI,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;AAC7C,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;UAClB,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACpF;AACA;AACA,EAAA,OAAA,CAAA,cAAA,GAAyB,cAAc;EACvC,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;EAC/B,MAAM,UAAU,SAAS,KAAK,CAAC;MAC3B,WAAW,CAAC,IAAI,EAAE;UACd,KAAK,CAAC,IAAI,CAAC;AACnB,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;AAChC,UAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE;AACnE;AACA,MAAI,GAAG,GAAG;UACF,OAAO,IAAI,CAAC,MAAM;AAC1B;MACI,IAAI,CAAC,MAAM,EAAE;AACjB,UAAQ,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAChE;AACA,MAAI,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE;AAC/B,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;AACnC,cAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;UAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAC9C,UAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;UACvB,MAAM,QAAQ,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG;UAC5E,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;UAC7B,IAAI,EAAE,EAAE;cACJ,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1C,cAAY,IAAI,KAAK;AACrB,kBAAgB,OAAO,KAAK;AAC5B;eACa;cACD,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE;AACjD;AACA,UAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC9B,UAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACnE,UAAQ,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM;AAClC,UAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG;AAChC,UAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE;UACvB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;UAC/B,IAAI,CAAC,EAAE;cACH;AACZ,UAAQ,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/B;MACI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;UACxC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACpD,cAAY,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;kBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACvE,cAAY,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAChE,WAAS,CAAC;AACV;MACI,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;UAClD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK;AACpD,cAAY,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;kBACxB,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACvE,cAAY,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;AAClC,WAAS,EAAE,UAAU,EAAE,OAAO,CAAC;AAC/B;MACI,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/D,UAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG;AAC7B,UAAQ,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;AACrC,cAAY,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;cACzB,IAAI,CAAC,EAAE;kBACH;AAChB,cAAY,MAAM,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;AAClF,cAAY,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACjC,kBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;sBACjB;kBACJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;AACzD,kBAAgB,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC;kBACvB,IAAI,CAAC,EAAE;AACvB,sBAAoB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;AAC7F,sBAAoB,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvF;AACA,uBAAqB,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG;sBAC5E,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrE;uBACqB;AACrB,sBAAoB,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC;AAC9C;kBACgB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;AAC3D,eAAa,CAAC;AACd;AACA,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,EAAA,OAAA,CAAA,UAAA,GAAqB,UAAU;AAC/B;;;;;;;;;;;EC7IA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,EAAA,GAAa,cAAc,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,OAAA,GAAkB,OAAoB,CAAA,SAAA,GAAA,OAAA,CAAA,QAAA,GAAmB,yBAAyB,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,OAAe,CAAA,IAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,oBAAoB,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,GAAA,GAAc,oBAAoB,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,CAAA,GAAY,MAAM;EAChT,MAAM,MAAM,GAAGA,aAAiB,EAAA;EAChC,MAAM,OAAO,GAAGD,YAAkB,EAAA;EAClC,IAAI,MAAM,GAAGC,aAAiB,EAAA;EAC9B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAChG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACpG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EAChH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACpG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;EACpH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EAChH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EAClH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACtG,IAAI,OAAO,GAAGD,YAAkB,EAAA;EAChC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;EACzG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EACnH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;EAC3H,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;EAC/G,OAAoB,CAAA,SAAA,GAAA;MAChB,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;MACzB,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC3B,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;MACzB,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC3B,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;MAC3B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;MAC5B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;MAC1B,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC1B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;MAC3B,GAAG,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;GAC7B;AACD,EAAA,MAAM,IAAI,CAAC;AACX,MAAI,aAAa,GAAG;AACpB,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;AACtC,UAAQ,OAAO,IAAI;AACnB;AACA;EACA,MAAM,GAAG,SAAS,IAAI,CAAC;AACvB,MAAI,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;AACpC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB;AACA,MAAI,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;AACxB,UAAQ,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;AACjE,UAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAClE,UAAQ,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACpD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;cACrB;UACJ,IAAI,IAAI,CAAC,GAAG;AACpB,cAAY,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC/D,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC3E;AACA;EACA,MAAM,MAAM,SAAS,IAAI,CAAC;AAC1B,MAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;AACvC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,UAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACnB,UAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AAChD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW;cAC5E;AACZ,UAAQ,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC3D,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;UACR,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,YAAY,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;UAC1E,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5C;AACA;EACA,MAAM,QAAQ,SAAS,MAAM,CAAC;MAC1B,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;AAC3C,UAAQ,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC;AACpC,UAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1D;AACA;EACA,MAAM,KAAK,SAAS,IAAI,CAAC;MACrB,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,UAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC;AACA;EACA,MAAM,KAAK,SAAS,IAAI,CAAC;MACrB,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,UAAQ,IAAI,CAAC,KAAK,GAAG,EAAE;AACvB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACnB,UAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;UAChD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AACpC;AACA;EACA,MAAM,KAAK,SAAS,IAAI,CAAC;MACrB,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1C;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;AAC/B;AACA;EACA,MAAM,OAAO,SAAS,IAAI,CAAC;MACvB,WAAW,CAAC,IAAI,EAAE;AACtB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;UACX,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACnC;AACA,MAAI,aAAa,GAAG;UACZ,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS;AAChD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACpC,UAAQ,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC;AAC7D,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,IAAI,YAAY,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE;AAC7E;AACA;EACA,MAAM,UAAU,SAAS,IAAI,CAAC;AAC9B,MAAI,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE;AAC5B,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;MACI,MAAM,CAAC,IAAI,EAAE;UACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACxE;AACA,MAAI,aAAa,GAAG;AACpB,UAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,UAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;UACpB,OAAO,CAAC,EAAE,EAAE;cACR,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE;AAC9C,cAAY,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;kBAChB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACxC,mBAAiB,IAAI,CAAC;AACtB,kBAAgB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B;AACA,kBAAgB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC;UACQ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS;AAClD;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACpC,UAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,UAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;UACpB,OAAO,CAAC,EAAE,EAAE;AACpB;AACA,cAAY,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;cAClB,IAAI,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;kBACjC;AAChB,cAAY,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;AACzC,cAAY,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9B;UACQ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS;AAClD;MACI,IAAI,KAAK,GAAG;UACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;AAC5E;AACA;EACA,MAAM,SAAS,SAAS,UAAU,CAAC;MAC/B,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE;AACjE;AACA;EACA,MAAM,IAAI,SAAS,UAAU,CAAC;AAC9B;EACA,MAAM,IAAI,SAAS,SAAS,CAAC;AAC7B;EACA,IAAI,CAAC,IAAI,GAAG,MAAM;EAClB,MAAM,EAAE,SAAS,SAAS,CAAC;AAC3B,MAAI,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE;UAC1B,KAAK,CAAC,KAAK,CAAC;AACpB,UAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;UACvD,IAAI,IAAI,CAAC,IAAI;cACT,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACpD,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,GAAG;UACZ,KAAK,CAAC,aAAa,EAAE;AAC7B,UAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;UAC3B,IAAI,IAAI,KAAK,IAAI;AACzB,cAAY,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9B,UAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;UACjB,IAAI,CAAC,EAAE;AACf,cAAY,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE;AACxC,cAAY,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;AACjE;UACQ,IAAI,CAAC,EAAE;cACH,IAAI,IAAI,KAAK,KAAK;kBACd,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK;AACpD,cAAY,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AACjC,kBAAgB,OAAO,IAAI;cACf,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACrE;UACQ,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;AAChD,cAAY,OAAO,SAAS;AAC5B,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;AACpC,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;AAC5G,UAAQ,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;cACrD;AACZ,UAAQ,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;AACvE,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AACjC,UAAQ,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;UACnC,IAAI,IAAI,CAAC,IAAI;cACT,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,UAAQ,OAAO,KAAK;AACpB;AACA;EACA,EAAE,CAAC,IAAI,GAAG,IAAI;EACd,MAAM,GAAG,SAAS,SAAS,CAAC;AAC5B;EACA,GAAG,CAAC,IAAI,GAAG,KAAK;EAChB,MAAM,OAAO,SAAS,GAAG,CAAC;MACtB,WAAW,CAAC,SAAS,EAAE;AAC3B,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5D;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;cACtC;AACZ,UAAQ,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;AACvE,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC1D;AACA;EACA,MAAM,QAAQ,SAAS,GAAG,CAAC;MACvB,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACzC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO;UAC9D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI;AACvC,UAAQ,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/F;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;UAClD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3C;AACA;EACA,MAAM,OAAO,SAAS,GAAG,CAAC;MACtB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/C,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACrG;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;cACtC;AACZ,UAAQ,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;AACrE,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzD;AACA;EACA,MAAM,IAAI,SAAS,SAAS,CAAC;AAC7B,MAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;AACnC,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;MACI,MAAM,CAAC,IAAI,EAAE;UACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,EAAE;UACzC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAClF;AACA;EACA,IAAI,CAAC,IAAI,GAAG,MAAM;EAClB,MAAM,MAAM,SAAS,UAAU,CAAC;MAC5B,MAAM,CAAC,IAAI,EAAE;UACT,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C;AACA;EACA,MAAM,CAAC,IAAI,GAAG,QAAQ;EACtB,MAAM,GAAG,SAAS,SAAS,CAAC;MACxB,MAAM,CAAC,IAAI,EAAE;UACT,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;UACrC,IAAI,IAAI,CAAC,KAAK;cACV,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;UACnC,IAAI,IAAI,CAAC,OAAO;cACZ,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,GAAG;UACZ,IAAI,EAAE,EAAE,EAAE;UACV,KAAK,CAAC,aAAa,EAAE;UACrB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;UACzE,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE;AACnF,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE;UAC5B,IAAI,EAAE,EAAE,EAAE;AAClB,UAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;UACrC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;UACzF,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;AACnG,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;UACzB,IAAI,IAAI,CAAC,KAAK;cACV,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;UACrC,IAAI,IAAI,CAAC,OAAO;cACZ,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,UAAQ,OAAO,KAAK;AACpB;AACA;EACA,MAAM,KAAK,SAAS,SAAS,CAAC;MAC1B,WAAW,CAAC,KAAK,EAAE;AACvB,UAAQ,KAAK,EAAE;AACf,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B;MACI,MAAM,CAAC,IAAI,EAAE;AACjB,UAAQ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1D;AACA;EACA,KAAK,CAAC,IAAI,GAAG,OAAO;EACpB,MAAM,OAAO,SAAS,SAAS,CAAC;MAC5B,MAAM,CAAC,IAAI,EAAE;UACT,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C;AACA;EACA,OAAO,CAAC,IAAI,GAAG,SAAS;AACxB,EAAA,MAAM,OAAO,CAAC;AACd,MAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE;AACrC,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,UAAQ,IAAI,CAAC,UAAU,GAAG,EAAE;AAC5B,UAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,EAAE;AAC3D,UAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ;AACjC,UAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;UACrD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;AAClC;AACA,MAAI,QAAQ,GAAG;UACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C;AACA;MACI,IAAI,CAAC,MAAM,EAAE;UACT,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC;AACA;MACI,SAAS,CAAC,MAAM,EAAE;UACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1C;AACA;AACA,MAAI,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE;AACpC,UAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;UACtD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACvF,UAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AACpB,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;UAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;AACxD;AACA;AACA;MACI,SAAS,CAAC,SAAS,EAAE;AACzB,UAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;AAChE;AACA,MAAI,SAAS,GAAG;UACR,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;MACI,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;UACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AACrD,UAAQ,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ;cAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;AAC3C,UAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACnD,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;AACxC,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;AAC9E;AACA;AACA,MAAI,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;AACtC,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;AAC5E;AACA;AACA,MAAI,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;AACtC,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC;AAC5E;AACA;AACA,MAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;AAClC,UAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AAChE;AACA;AACA,MAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;AAClB,UAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5E;AACA;MACI,IAAI,CAAC,CAAC,EAAE;AACZ,UAAQ,IAAI,OAAO,CAAC,IAAI,UAAU;AAClC,cAAY,CAAC,EAAE;AACf,eAAa,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG;cACrB,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,MAAM,CAAC,GAAG,SAAS,EAAE;AACzB,UAAQ,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC;UAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE;AAC9C,cAAY,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAC/B,kBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,cAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;cACd,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAChD,kBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;kBACd,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;AACnD;AACA;AACA,UAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACtB,UAAQ,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC;AACA;AACA,MAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE;UAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1C,UAAQ,IAAI,QAAQ,IAAI,QAAQ,EAAE;AAClC,cAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AAC7D;eACa,IAAI,QAAQ,EAAE;cACf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE;AACvC;eACa,IAAI,QAAQ,EAAE;AAC3B,cAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE;AACA,UAAQ,OAAO,IAAI;AACnB;AACA;MACI,MAAM,CAAC,SAAS,EAAE;UACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;AAChD;AACA;AACA,MAAI,IAAI,GAAG;UACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;AACzC;AACA;AACA,MAAI,KAAK,GAAG;UACJ,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC;AAC3C;AACA,MAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACxB,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,OAAO;cACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AACvC,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE;AAC5B,UAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;AACzD;AACA;AACA,MAAI,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;UAC7G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;UAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF;AACA;AACA,MAAI,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;UACrE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AACrD,UAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAC3B,cAAY,MAAM,GAAG,GAAG,QAAQ,YAAY,MAAM,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;cACnF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK;kBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;kBAC5C,OAAO,CAAC,IAAI,CAAC;AAC7B,eAAa,CAAC;AACd;UACQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACzF;AACA;AACA;MACI,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/G,UAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;cACzB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACzF;UACQ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;UAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACpF;AACA;AACA,MAAI,MAAM,GAAG;AACb,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACtC;AACA;MACI,KAAK,CAAC,KAAK,EAAE;UACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA;MACI,KAAK,CAAC,KAAK,EAAE;UACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA;MACI,MAAM,CAAC,KAAK,EAAE;AAClB,UAAQ,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE;AACjC,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,UAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;AACnC,cAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACzC;AACA;AACA,MAAI,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE;AACzC,UAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW;AACtC,cAAY,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAC3E,UAAQ,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE;AAC9B,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;UAClB,IAAI,SAAS,EAAE;cACX,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACxC,cAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;cAC9C,SAAS,CAAC,KAAK,CAAC;AAC5B;UACQ,IAAI,WAAW,EAAE;cACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE;AACzD,cAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC;UACQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;AACjD;AACA;MACI,KAAK,CAAC,KAAK,EAAE;UACT,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA;AACA,MAAI,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE;UACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAClD,UAAQ,IAAI,IAAI;cACJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC/C,UAAQ,OAAO,IAAI;AACnB;AACA;MACI,QAAQ,CAAC,SAAS,EAAE;UAChB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;UACnC,IAAI,GAAG,KAAK,SAAS;AAC7B,cAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;UAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;AAChD,UAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE;AAC/E,cAAY,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;AAClG;AACA,UAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG;AAChC,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnD,UAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpD,UAAQ,IAAI,QAAQ;cACR,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;AACzC,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,OAAO,GAAG;AACd,UAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACvC;AACA,MAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE;AACpB,UAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,cAAY,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACtC,cAAY,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AACvE;AACA;MACI,SAAS,CAAC,IAAI,EAAE;UACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,UAAQ,OAAO,IAAI;AACnB;MACI,UAAU,CAAC,IAAI,EAAE;UACb,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,UAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B;AACA,MAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;AAC1B,UAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;UACxB,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;AACxD,cAAY,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAC7B,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5F;MACI,SAAS,CAAC,IAAI,EAAE;AACpB,UAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;AAChC,UAAQ,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE;AAChC,cAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D;UACQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI;AACtC,UAAQ,OAAO,IAAI;AACnB;MACI,IAAI,KAAK,GAAG;AAChB,UAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B;MACI,IAAI,SAAS,GAAG;AACpB,UAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM;UACtB,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC;AACA,MAAI,IAAI,SAAS,CAAC,IAAI,EAAE;AACxB,UAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM;UACtB,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;AAChC;AACA;AACA,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO;AACzB,EAAA,SAAS,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;AAC/B,MAAI,KAAK,MAAM,CAAC,IAAI,IAAI;AACxB,UAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD,MAAI,OAAO,KAAK;AAChB;AACA,EAAA,SAAS,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;AACnC,MAAI,OAAO,IAAI,YAAY,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;AACnF;AACA,EAAA,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9C,MAAI,IAAI,IAAI,YAAY,MAAM,CAAC,IAAI;AACnC,UAAQ,OAAO,WAAW,CAAC,IAAI,CAAC;AAChC,MAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC1B,UAAQ,OAAO,IAAI;AACnB,MAAI,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK;AAC7D,UAAQ,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI;AACpC,cAAY,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AAC9B,UAAQ,IAAI,CAAC,YAAY,MAAM,CAAC,KAAK;cACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACnC;AACA,cAAY,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,UAAQ,OAAO,KAAK;OACf,EAAE,EAAE,CAAC,CAAC;AACX,MAAI,SAAS,WAAW,CAAC,CAAC,EAAE;UACpB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;AAClC,UAAQ,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,cAAY,OAAO,CAAC;AACpB,UAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3B,UAAQ,OAAO,CAAC;AAChB;AACA,MAAI,SAAS,WAAW,CAAC,CAAC,EAAE;AAC5B,UAAQ,QAAQ,CAAC,YAAY,MAAM,CAAC,KAAK;AACzC,cAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AAClH;AACA;AACA,EAAA,SAAS,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE;AACpC,MAAI,KAAK,MAAM,CAAC,IAAI,IAAI;AACxB,UAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD;EACA,SAAS,GAAG,CAAC,CAAC,EAAE;AAChB,MAAI,OAAO,OAAO,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;EACjB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;AAC9C;AACA,EAAA,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE;AACtB,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC/B;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;EACjB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5C;AACA,EAAA,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE;AACrB,MAAI,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9B;AACA,EAAA,OAAA,CAAA,EAAA,GAAa,EAAE;EACf,SAAS,OAAO,CAAC,EAAE,EAAE;MACjB,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9G;EACA,SAAS,GAAG,CAAC,CAAC,EAAE;MACZ,OAAO,CAAC,YAAY,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE;AACA;;;;;;;;;;;;ACvrBA,CAAA,MAAM,CAAC,cAAc,CAAC,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,IAAA,CAAA,eAAuB,GAAG,IAAoB,CAAA,YAAA,GAAG,IAAY,CAAA,IAAA,GAAG,YAAe,GAAG,IAAA,CAAA,YAAoB,GAAG,IAAA,CAAA,oBAA4B,GAAG,IAAsB,CAAA,cAAA,GAAG,IAAgB,CAAA,QAAA,GAAG,wBAA2B,GAAG,IAAA,CAAA,iBAAyB,GAAG,IAAA,CAAA,cAAsB,GAAG,IAAwB,CAAA,gBAAA,GAAG,IAAsB,CAAA,cAAA,GAAG,yBAA4B,GAAG,IAAA,CAAA,cAAsB,GAAG,IAAA,CAAA,iBAAyB,GAAG,IAAyB,CAAA,iBAAA,GAAG,IAAc,CAAA,MAAA,GAAG,MAAM;CAClc,MAAM,SAAS,GAAGC,cAAoB,EAAA;CACtC,MAAM,MAAM,GAAGD,aAAyB,EAAA;AACxC;CACA,SAAS,MAAM,CAAC,GAAG,EAAE;KACjB,MAAM,IAAI,GAAG,EAAE;AACnB,KAAI,KAAK,MAAM,IAAI,IAAI,GAAG;AAC1B,SAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AACzB,KAAI,OAAO,IAAI;AACf;AACA,CAAA,IAAA,CAAA,MAAc,GAAG,MAAM;AACvB,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE;AACvC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;AAClC,SAAQ,OAAO,MAAM;KACjB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;AACxC,SAAQ,OAAO,IAAI;AACnB,KAAI,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC;AACjC,KAAI,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACrD;AACA,CAAA,IAAA,CAAA,iBAAyB,GAAG,iBAAiB;CAC7C,SAAS,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE;AACnD,KAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC7B,KAAI,IAAI,CAAC,IAAI,CAAC,YAAY;SAClB;AACR,KAAI,IAAI,OAAO,MAAM,KAAK,SAAS;SAC3B;AACR,KAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;AACrC,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aACX,eAAe,CAAC,EAAE,EAAE,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D;AACA;AACA,CAAA,IAAA,CAAA,iBAAyB,GAAG,iBAAiB;AAC7C,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;SAC1B,OAAO,CAAC,MAAM;AACtB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM;AAC5B,SAAQ,IAAI,KAAK,CAAC,GAAG,CAAC;AACtB,aAAY,OAAO,IAAI;AACvB,KAAI,OAAO,KAAK;AAChB;AACA,CAAA,IAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC7C,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;SAC1B,OAAO,CAAC,MAAM;AACtB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM;SACpB,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC5C,aAAY,OAAO,IAAI;AACvB,KAAI,OAAO,KAAK;AAChB;AACA,CAAA,IAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;KAC1E,IAAI,CAAC,KAAK,EAAE;SACR,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AACnE,aAAY,OAAO,MAAM;AACzB,SAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ;AACrC,aAAY,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/C;KACI,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAChG;AACA,CAAA,IAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,KAAI,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvD;AACA,CAAA,IAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,KAAI,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACrD;AACA,CAAA,IAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,KAAI,IAAI,OAAO,GAAG,IAAI,QAAQ;AAC9B,SAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AACvB,KAAI,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACvD;AACA,CAAA,IAAA,CAAA,iBAAyB,GAAG,iBAAiB;CAC7C,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,KAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACtD;AACA,CAAA,IAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE;AACzB,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAC3B,SAAQ,KAAK,MAAM,CAAC,IAAI,EAAE;aACd,CAAC,CAAC,CAAC,CAAC;AAChB;UACS;SACD,CAAC,CAAC,EAAE,CAAC;AACb;AACA;AACA,CAAA,IAAA,CAAA,QAAgB,GAAG,QAAQ;CAC3B,SAAS,kBAAkB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE;KACjF,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK;AACtC,SAAQ,MAAM,GAAG,GAAG,EAAE,KAAK;eACb;eACA,EAAE,YAAY,SAAS,CAAC;oBACnB,IAAI,YAAY,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;mBAC5F,IAAI,YAAY,SAAS,CAAC;wBACrB,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI;AACvD,uBAAsB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;SACnC,OAAO,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG;MACtG;AACL;AACA,CAAA,IAAA,CAAA,cAAsB,GAAG;KACrB,KAAK,EAAE,kBAAkB,CAAC;AAC9B,SAAQ,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM;AAChH,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChM,UAAS,CAAC;SACF,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM;AACxF,aAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,iBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;AACpC;kBACiB;AACjB,iBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC9D,iBAAgB,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC;AAC3C;AACA,UAAS,CAAC;SACF,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;SACtE,YAAY,EAAE,oBAAoB;AAC1C,MAAK,CAAC;KACF,KAAK,EAAE,kBAAkB,CAAC;AAC9B,SAAQ,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/M,SAAQ,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SAC5K,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC9E,SAAQ,YAAY,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AAC7D,MAAK,CAAC;EACL;AACD,CAAA,SAAS,oBAAoB,CAAC,GAAG,EAAE,EAAE,EAAE;KACnC,IAAI,EAAE,KAAK,IAAI;SACX,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACrC,KAAI,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACrD,IAAI,EAAE,KAAK,SAAS;AACxB,SAAQ,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;AACpC,KAAI,OAAO,KAAK;AAChB;AACA,CAAA,IAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;AACtC,KAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjH;AACA,CAAA,IAAA,CAAA,YAAoB,GAAG,YAAY;CACnC,MAAM,QAAQ,GAAG,EAAE;AACnB,CAAA,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE;AACzB,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;SAC1B,GAAG,EAAE,CAAC;SACN,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/E,MAAK,CAAC;AACN;AACA,CAAA,IAAA,CAAA,OAAe,GAAG,OAAO;AACzB,CAAA,IAAI,IAAI;CACR,CAAC,UAAU,IAAI,EAAE;KACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;KAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;EAChC,EAAE,IAAI,KAAK,IAAA,CAAA,IAAY,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;AACtC,CAAA,SAAS,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE;AAChE;AACA,KAAI,IAAI,QAAQ,YAAY,SAAS,CAAC,IAAI,EAAE;AAC5C,SAAQ,MAAM,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC,GAAG;AAClD,SAAQ,OAAO;eACD;AACd,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3D,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO;eAC/C;mBACI,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AACrD,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,0CAA0C,CAAC,CAAC;AACjG;KACI,OAAO,gBAAgB,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AACjH;AACA,CAAA,IAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;KAC3D,IAAI,CAAC,IAAI;SACL;AACR,KAAI,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KAC3B,IAAI,IAAI,KAAK,IAAI;AACrB,SAAQ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC;KACxB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B;AACA,CAAA,IAAA,CAAA,eAAuB,GAAG,eAAe;AACzC;;;;;;;;;;;AChLA,CAAA,MAAM,CAAC,cAAc,CAAC0S,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGzS,cAAoB,EAAA;AACtC,CAAA,MAAM+V,OAAK,GAAG;AACd;KACI,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC;KACI,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;KAChD,UAAU,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;KAC5C,kBAAkB,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC;KAC5D,QAAQ,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;KACxC,cAAc,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACxD;KACI,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;KACtC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;KACpC,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC;KACI,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KAChC,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC;KACI,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KAChC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;KACtC,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;KACtC,QAAQ,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;EAC3C;AACD,CAAAtD,KAAA,CAAA,OAAe,GAAGsD,OAAK;AACvB;;;;;;;;;;EC1BA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,YAAA,GAAuB,2BAA2B,OAA2B,CAAA,gBAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,OAA4B,CAAA,iBAAA,GAAA,OAAA,CAAA,YAAA,GAAuB,MAAM;EAC5J,MAAM,SAAS,GAAG/V,cAAoB,EAAA;EACtC,MAAM,MAAM,GAAGD,WAAiB,EAAA;EAChC,MAAM,OAAO,GAAGE,YAAkB,EAAA;EAClC,OAAuB,CAAA,YAAA,GAAA;MACnB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,oBAAoB,CAAC;GAC3F;EACD,OAA4B,CAAA,iBAAA,GAAA;MACxB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK;AAC1C,YAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,QAAQ;AAChF,YAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC;GACrE;AACD,EAAA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE;AACvF,MAAI,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;MAClB,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE;MAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;AAC1D,MAAI,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,IAAI,aAAa,IAAI,SAAS,CAAC,EAAE;AACvH,UAAQ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;AAC7B;WACS;AACT,UAAQ,YAAY,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxD;AACA;AACA,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;EACjC,SAAS,gBAAgB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE;AACzE,MAAI,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;MAClB,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE;MAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;AAC1D,MAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;AACzB,MAAI,IAAI,EAAE,aAAa,IAAI,SAAS,CAAC,EAAE;UAC/B,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACjD;AACA;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;AAC3C,EAAA,SAAS,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE;MACtC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;AACjD,MAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/N;AACA,EAAA,OAAA,CAAA,gBAAA,GAA2B,gBAAgB;AAC3C,EAAA,SAAS,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;AAC3E;MACI,IAAI,SAAS,KAAK,SAAS;AAC/B,UAAQ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;MAC/C,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,MAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;UACxD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;UACnE,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACpM,UAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7G,UAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,cAAY,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;AACrE,cAAY,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAC5D;AACA,OAAK,CAAC;AACN;AACA,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;AACnC,EAAA,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE;MAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC;AACxC,MAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;MAClM,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5D;AACA,EAAA,SAAS,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE;MAC5B,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE;AAC/C,MAAI,IAAI,SAAS,CAAC,MAAM,EAAE;UAClB,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACxE;WACS;AACT,UAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACnE,UAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACzB;AACA;AACA,EAAA,MAAM,CAAC,GAAG;MACN,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;MACtC,UAAU,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;MAC5C,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;MACpC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;MAChD,OAAO,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;MACtC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;MACpC,YAAY,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;GACnD;AACD,EAAA,SAAS,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;AACjD,MAAI,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,EAAE;MAC/B,IAAI,YAAY,KAAK,KAAK;UACtB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MAChC,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC;AAC9C;EACA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE;AAClD,MAAI,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG;MACvB,MAAM,SAAS,GAAG;AACtB,UAAQ,iBAAiB,CAAC,EAAE,EAAE,UAAU,CAAC;AACzC,UAAQ,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;OACnC;AACL,MAAI,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAC1C,MAAI,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AACnC;EACA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;MACxD,MAAM,QAAQ,GAAG;YACX,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpG,YAAU,SAAS;MACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC3G;AACA,EAAA,SAAS,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE;MACvF,IAAI,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;MAC7F,IAAI,UAAU,EAAE;AACpB,UAAQ,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACzG;AACA,MAAI,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC;AAClC;EACA,SAAS,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE;MAC1D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,GAAG;MAC9C,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE;AAC/D,MAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,MAAM,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjI,MAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;UACf,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,OAAO,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAC1F;AACA,MAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,UAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChJ;AACA,MAAI,IAAI,YAAY;UACZ,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACtD;AACA;;;;;;;;;;ACzHA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,UAAA,CAAA,iBAAyB,GAAG,UAAA,CAAA,oBAA4B,GAAG,MAAM;CACjE,MAAM,QAAQ,GAAGD,aAAoB,EAAA;CACrC,MAAM,SAAS,GAAGD,cAAqB,EAAA;CACvC,MAAM,OAAO,GAAGE,YAAmB,EAAA;AACnC,CAAA,MAAM,SAAS,GAAG;KACd,OAAO,EAAE,yBAAyB;EACrC;CACD,SAAS,oBAAoB,CAAC,EAAE,EAAE;KAC9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE;AAC5C,KAAI,IAAI,MAAM,KAAK,KAAK,EAAE;AAC1B,SAAQ,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC;AACnC;UACS,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE;SAC1D,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACxC;UACS;AACT,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;AACnE,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB;AACA;AACA,CAAA,UAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE;AACtC,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;AAC9B,KAAI,IAAI,MAAM,KAAK,KAAK,EAAE;SAClB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACtB,gBAAgB,CAAC,EAAE,CAAC;AAC5B;UACS;SACD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC7B;AACA;AACA,CAAA,UAAA,CAAA,iBAAyB,GAAG,iBAAiB;AAC7C,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE;AACjD,KAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AAC5B;KACI,MAAM,GAAG,GAAG;AAChB,SAAQ,GAAG;SACH,OAAO,EAAE,cAAc;AAC/B,SAAQ,IAAI;SACJ,MAAM,EAAE,KAAK;SACb,UAAU,EAAE,KAAK;SACjB,WAAW,EAAE,KAAK;SAClB,MAAM,EAAE,EAAE;AAClB,SAAQ,EAAE;MACL;AACL,KAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC;AAC3E;AACA;;;;;;;;;;;;;AChDA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,KAAA,CAAA,QAAgB,GAAG,KAAA,CAAA,UAAkB,GAAG,MAAM;AAC9C,CAAA,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;AACxF,CAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;CACrC,SAAS,UAAU,CAAC,CAAC,EAAE;KACnB,OAAO,OAAO,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD;AACA,CAAA,KAAA,CAAA,UAAkB,GAAG,UAAU;AAC/B,CAAA,SAAS,QAAQ,GAAG;KAChB,MAAM,MAAM,GAAG;SACX,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;SACrC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;SACrC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;SACnC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;MACxC;AACL,KAAI,OAAO;AACX,SAAQ,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SAC9D,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;AACzF,SAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACnB,GAAG,EAAE,EAAE;SACP,QAAQ,EAAE,EAAE;MACf;AACL;AACA,CAAA,KAAA,CAAA,QAAgB,GAAG,QAAQ;AAC3B;;;;;;;;;;;ACxBA,CAAA,MAAM,CAAC,cAAc,CAAC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,aAAA,CAAA,aAAqB,GAAG,aAAsB,CAAA,cAAA,GAAG,aAA6B,CAAA,qBAAA,GAAG,MAAM;CACvF,SAAS,qBAAqB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE;KACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC,KAAI,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;AACnE;AACA,CAAA,aAAA,CAAA,qBAA6B,GAAG,qBAAqB;AACrD,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;AACvC,KAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClE;AACA,CAAA,aAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,KAAI,IAAI,EAAE;KACN,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS;AAC9C,UAAS,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;AAC5H;AACA,CAAA,aAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;ACjBA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,QAAA,CAAA,eAAuB,GAAG,QAAA,CAAA,cAAsB,GAAG,QAAA,CAAA,aAAqB,GAAG,QAA8B,CAAA,sBAAA,GAAG,QAAoB,CAAA,YAAA,GAAG,QAAsB,CAAA,cAAA,GAAG,QAAgB,CAAA,QAAA,GAAG,MAAM;CACrL,MAAM,OAAO,GAAGD,YAAmB,EAAA;CACnC,MAAM,eAAe,GAAGD,oBAA0B,EAAA;CAClD,MAAM,QAAQ,GAAGE,aAAoB,EAAA;CACrC,MAAM,SAAS,GAAGC,cAAqB,EAAA;CACvC,MAAM,MAAM,GAAGM,WAAkB,EAAA;AACjC,CAAA,IAAI,QAAQ;CACZ,CAAC,UAAU,QAAQ,EAAE;KACjB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;KAC7C,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;EAC5C,EAAE,QAAQ,KAAK,QAAA,CAAA,QAAgB,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC;CAClD,SAAS,cAAc,CAAC,MAAM,EAAE;KAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;KACvC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;KACtC,IAAI,OAAO,EAAE;AACjB,SAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;AACrC,aAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE;UACS;SACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC5D,aAAY,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;AACvE;AACA,SAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI;AACpC,aAAY,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B;AACA,KAAI,OAAO,KAAK;AAChB;AACA,CAAA,QAAA,CAAA,cAAsB,GAAG,cAAc;AACvC;CACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,KAAI,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;KACrD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;AACvC,SAAQ,OAAO,KAAK;AACpB,KAAI,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9E;AACA,CAAA,QAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,sBAAsB,CAAC,EAAE,EAAE,KAAK,EAAE;KACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;AAC3D,KAAI,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;SAC/B,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC,qBAAqB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9G,IAAI,UAAU,EAAE;AACpB,SAAQ,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC;AACzF,SAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;aACpB,IAAI,QAAQ,CAAC,MAAM;AAC/B,iBAAgB,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC/C;iBACgB,eAAe,CAAC,EAAE,CAAC;AACnC,UAAS,CAAC;AACV;AACA,KAAI,OAAO,UAAU;AACrB;AACA,CAAA,QAAA,CAAA,sBAA8B,GAAG,sBAAsB;AACvD,CAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAA,SAAS,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE;AAC3C,KAAI,OAAO;WACD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,CAAC;AAC5F,WAAU,EAAE;AACZ;AACA,CAAA,SAAS,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;KACrC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3E,KAAI,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACpE,KAAI,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;SAC9B,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM;AAClH,cAAa,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACvD,cAAa,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;cAClD,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAClG;AACA,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;AACvD,KAAI,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;AAC9B,SAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,EAAE;aACrE,kBAAkB,CAAC,CAAC,CAAC;AACjC;AACA;KACI,GAAG,CAAC,IAAI,EAAE;KACV,eAAe,CAAC,EAAE,CAAC;KACnB,GAAG,CAAC,KAAK,EAAE;AACf,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM;AAC9D,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;AACjC,SAAQ,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC;AACrC,MAAK,CAAC;AACN,KAAI,SAAS,kBAAkB,CAAC,CAAC,EAAE;AACnC,SAAQ,QAAQ,CAAC;AACjB,aAAY,KAAK,QAAQ;iBACT;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC;AAClG,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;AAC/D,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC3C;AAChB,aAAY,KAAK,QAAQ;iBACT;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC;AACjF,kBAAkB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7E,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjD;AAChB,aAAY,KAAK,SAAS;iBACV;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;AAClF,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;AAChG,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjD;AAChB,aAAY,KAAK,SAAS;iBACV;sBACK,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;AACvG,sBAAqB,MAAM,CAAC,OAAO,EAAE,KAAK;AAC1C,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;AAClF,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;iBAC1B;AAChB,aAAY,KAAK,MAAM;iBACP,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACnG,iBAAgB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;iBACzB;AAChB,aAAY,KAAK,OAAO;iBACR;AAChB,sBAAqB,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AACrF,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC;AAC/D,sBAAqB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAClE;AACA;AACA;CACA,SAAS,gBAAgB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE;AACzE;AACA,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3I;AACA,CAAA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE;AAC/E,KAAI,MAAM,EAAE,GAAG,OAAO,KAAK,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG;AAC9F,KAAI,IAAI,IAAI;AACZ,KAAI,QAAQ,QAAQ;AACpB,SAAQ,KAAK,MAAM;AACnB,aAAY,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AACxD,SAAQ,KAAK,OAAO;AACpB,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;aAChD;AACZ,SAAQ,KAAK,QAAQ;aACT,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC,CAAC;aAC1F;AACZ,SAAQ,KAAK,SAAS;aACV,IAAI,GAAG,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aACpE;AACZ,SAAQ,KAAK,QAAQ;aACT,IAAI,GAAG,OAAO,EAAE;aAChB;SACJ;aACI,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtE;AACA,KAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;KACrE,SAAS,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE;SACpC,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC;AAC1J;AACA;AACA,CAAA,QAAA,CAAA,aAAqB,GAAG,aAAa;CACrC,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;AAC9D,KAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,SAAQ,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;AACrE;AACA,KAAI,IAAI,IAAI;KACR,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACrC,SAAQ,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;SAC5D,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACrE,OAAO,KAAK,CAAC,IAAI;SACjB,OAAO,KAAK,CAAC,KAAK;SAClB,OAAO,KAAK,CAAC,MAAM;AAC3B;UACS;AACT,SAAQ,IAAI,GAAG,SAAS,CAAC,GAAG;AAC5B;KACI,IAAI,KAAK,CAAC,MAAM;SACZ,OAAO,KAAK,CAAC,OAAO;AAC5B,KAAI,KAAK,MAAM,CAAC,IAAI,KAAK;SACjB,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACpF,KAAI,OAAO,IAAI;AACf;AACA,CAAA,QAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,MAAM,SAAS,GAAG;AAClB,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChD,KAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,OAAO,MAAM,IAAI,QAAQ,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;EACpJ;CACD,SAAS,eAAe,CAAC,EAAE,EAAE;AAC7B,KAAI,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,CAAC;KACnC,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,CAAC;AAC7C;AACA,CAAA,QAAA,CAAA,eAAuB,GAAG,eAAe;CACzC,SAAS,mBAAmB,CAAC,EAAE,EAAE;KAC7B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AACpC,KAAI,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;AACrE,KAAI,OAAO;AACX,SAAQ,GAAG;SACH,OAAO,EAAE,MAAM;AACvB,SAAQ,IAAI;AACZ,SAAQ,MAAM,EAAE,MAAM,CAAC,IAAI;AAC3B,SAAQ,UAAU;SACV,WAAW,EAAE,UAAU;SACvB,YAAY,EAAE,MAAM;SACpB,MAAM,EAAE,EAAE;AAClB,SAAQ,EAAE;MACL;AACL;AACA;;;;;;;;;;;ACzMA,CAAA,MAAM,CAAC,cAAc,CAACsS,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAsBA,UAAA,CAAA,cAAA,GAAG,MAAM;CAC/B,MAAM,SAAS,GAAG9S,cAAqB,EAAA;CACvC,MAAM,MAAM,GAAGD,WAAkB,EAAA;AACjC,CAAA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;KAC5B,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;AAC3C,KAAI,IAAI,EAAE,KAAK,QAAQ,IAAI,UAAU,EAAE;AACvC,SAAQ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AACtC,aAAY,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC3D;AACA;UACS,IAAI,EAAE,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,SAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACpE;AACA;AACA,CAAA+S,UAAA,CAAA,cAAsB,GAAG,cAAc;AACvC,CAAA,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;KAC3C,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAC7C,IAAI,YAAY,KAAK,SAAS;SAC1B;KACJ,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;KAC/E,IAAI,aAAa,EAAE;AACvB,SAAQ,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,CAAC;SACvE;AACR;AACA,KAAI,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC;AACjE,KAAI,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;SAC9B,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC;AACnG;AACA;AACA;AACA,KAAI,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAClG;AACA;;;;;;;;;;;;;ACjCA,CAAA,MAAM,CAAC,cAAc,CAAC,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAqB,IAAA,CAAA,aAAA,GAAG,IAAqB,CAAA,aAAA,GAAG,IAAkB,CAAA,UAAA,GAAG,IAAwB,CAAA,gBAAA,GAAG,IAAwB,CAAA,gBAAA,GAAG,IAA2B,CAAA,mBAAA,GAAG,IAAwB,CAAA,gBAAA,GAAG,mBAAsB,GAAG,IAAA,CAAA,aAAqB,GAAG,IAAA,CAAA,WAAmB,GAAG,IAAA,CAAA,iBAAyB,GAAG,IAAA,CAAA,gBAAwB,GAAG,IAAA,CAAA,sBAA8B,GAAG,MAAM;CACzV,MAAM,SAAS,GAAG9S,cAA6B,EAAA;CAC/C,MAAM,MAAM,GAAGD,WAA0B,EAAA;CACzC,MAAM,OAAO,GAAGE,YAA2B,EAAA;CAC3C,MAAM,MAAM,GAAGF,WAA0B,EAAA;AACzC,CAAA,SAAS,sBAAsB,CAAC,GAAG,EAAE,IAAI,EAAE;KACvC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AACjC,KAAI,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM;SACnE,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC;SACpE,GAAG,CAAC,KAAK,EAAE;AACnB,MAAK,CAAC;AACN;AACA,CAAA,IAAA,CAAA,sBAA8B,GAAG,sBAAsB;AACvD,CAAA,SAAS,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;KACxE,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7K;AACA,CAAA,IAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,SAAS,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE;KACrC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC;KACjD,GAAG,CAAC,KAAK,EAAE;AACf;AACA,CAAA,IAAA,CAAA,iBAAyB,GAAG,iBAAiB;CAC7C,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;AAClC;AACA,SAAQ,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc;SACpC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC;AAChE,MAAK,CAAC;AACN;AACA,CAAA,IAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxC,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5E;AACA,CAAA,IAAA,CAAA,aAAqB,GAAG,aAAa;CACrC,SAAS,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE;KACxD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,cAAc,CAAC;KAC5F,OAAO,aAAa,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AACrG;AACA,CAAA,IAAA,CAAA,cAAsB,GAAG,cAAc;CACvC,SAAS,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE;KAC1D,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,cAAc,CAAC;AAChG,KAAI,OAAO,aAAa,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;AACjH;AACA,CAAA,IAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,mBAAmB,CAAC,SAAS,EAAE;KACpC,OAAO,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,GAAG,EAAE;AACnF;AACA,CAAA,IAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE;KACrC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG;AACA,CAAA,IAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,SAAS,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;AACjI,KAAI,MAAM,aAAa,GAAG,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;KACjH,MAAM,MAAM,GAAG;SACX,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;SACjG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;SAC3C,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC;AACnE,SAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;MACvD;AACL,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU;AAC1B,SAAQ,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;KACjF,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;KAC1E,OAAO,OAAO,KAAK,SAAS,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACjI;AACA,CAAA,IAAA,CAAA,gBAAwB,GAAG,gBAAgB;CAC3C,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;AAC/C,CAAA,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE;KAChD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AAC3C,KAAI,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI;KAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACjC,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;AACrC,SAAQ,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE;SAClB,GAAG,EAAE,EAAE;AACf,SAAQ,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,YAAY,GAAG,SAAS,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACjI,MAAK,CAAC;AACN;AACA,CAAA,IAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,aAAa,CAAC,GAAG,EAAE;KACxB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;KACtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,KAAI,IAAI,EAAE,CAAC,SAAS,EAAE;SACd,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;SACvC,aAAa,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxD,SAAQ,OAAO,QAAQ;AACvB;AACA,KAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;AACxB,KAAI,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpC,KAAI,OAAO,KAAK;AAChB,KAAI,SAAS,aAAa,CAAC,QAAQ,EAAE;SAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvE,SAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK;aAC7B,GAAG,CAAC,SAAS,CAAC;AAC1B,iBAAgB,OAAO;iBACP,QAAQ,EAAE,CAAC;AAC3B,iBAAgB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;cAChC,EAAE,KAAK,CAAC;AACrB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC;AACvD,UAAS,CAAC;AACV;AACA;AACA,CAAA,IAAA,CAAA,aAAqB,GAAG,aAAa;CACrC,SAAS,aAAa,CAAC,GAAG,EAAE;KACxB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;AAC5C;AACA,KAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAC9B,SAAQ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;KAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;KAChF,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;SACnC;KACJ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;KACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,KAAI,GAAG,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK;AAChD,SAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;AACrC,aAAY,OAAO;aACP,UAAU,EAAE,CAAC;aACb,aAAa,EAAE,IAAI;UACtB,EAAE,QAAQ,CAAC;SACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;SAC7D,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;AAChE;AACA;SACQ,IAAI,CAAC,MAAM;AACnB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7C,MAAK,CAAC,CAAC;AACP,KAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/D;AACA,CAAA,IAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;ACjIA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAA4B,OAAA,CAAA,oBAAA,GAAG,uBAAuB,GAAG,OAAA,CAAA,eAAuB,GAAG,OAAwB,CAAA,gBAAA,GAAG,MAAM;CACpH,MAAM,SAAS,GAAGC,cAAqB,EAAA;CACvC,MAAM,OAAO,GAAGD,YAAmB,EAAA;CACnC,MAAM,MAAM,GAAGE,WAAkC,EAAA;CACjD,MAAM,QAAQ,GAAGC,aAAoB,EAAA;AACrC,CAAA,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,KAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC1D,KAAI,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;KACrE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC;AAC3D,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK;SAChC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC;KAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC/B,GAAG,CAAC,SAAS,CAAC;SACV,MAAM,EAAE,WAAW;AAC3B,SAAQ,UAAU,EAAE,SAAS,CAAC,GAAG;AACjC,SAAQ,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC/C,YAAY,EAAE,SAAS;SACvB,aAAa,EAAE,IAAI;MACtB,EAAE,KAAK,CAAC;AACb,KAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1C;AACA,CAAA,OAAA,CAAA,gBAAwB,GAAG,gBAAgB;AAC3C,CAAA,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE;AACnC,KAAI,IAAI,EAAE;AACV,KAAI,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,GAAG;AACjE,KAAI,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC;AAC9B,KAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ;KAC3G,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC;KACtD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AAClC,KAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC;KACtC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;KAC/D,SAAS,eAAe,GAAG;AAC/B,SAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;AAClC,aAAY,WAAW,EAAE;aACb,IAAI,GAAG,CAAC,SAAS;iBACb,UAAU,CAAC,GAAG,CAAC;AAC/B,aAAY,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACzC;cACa;aACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE;aAC7D,IAAI,GAAG,CAAC,SAAS;iBACb,UAAU,CAAC,GAAG,CAAC;aACnB,UAAU,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACpD;AACA;KACI,SAAS,aAAa,GAAG;SACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;AAClD,SAAQ,GAAG,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3O,SAAQ,OAAO,QAAQ;AACvB;KACI,SAAS,YAAY,GAAG;AAC5B,SAAQ,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;AACrE,SAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;AACtC,SAAQ,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;AAClC,SAAQ,OAAO,YAAY;AAC3B;KACI,SAAS,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE;AACzF,SAAQ,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI;AACzF,SAAQ,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC;AAClF,SAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC;AAC5I;AACA,KAAI,SAAS,UAAU,CAAC,MAAM,EAAE;AAChC,SAAQ,IAAI,EAAE;AACd,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,MAAM,CAAC;AACnG;AACA;AACA,CAAA,OAAA,CAAA,eAAuB,GAAG,eAAe;CACzC,SAAS,UAAU,CAAC,GAAG,EAAE;KACrB,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AACjC,KAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAChH;AACA,CAAA,SAAS,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE;AAC5B,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;AACvB,KAAI,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM;SACpD;AACR,cAAa,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;cAC7I,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACzF,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;AACvC,MAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACzB;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;KAC3C,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM;AACtC,SAAQ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AACvD;AACA,CAAA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;KACtC,IAAI,MAAM,KAAK,SAAS;SACpB,MAAM,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACjE,KAAI,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,MAAM,IAAI,UAAU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7I;CACA,SAAS,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,KAAK,EAAE;AACrE;AACA,KAAI,QAAQ,CAAC,UAAU,CAAC,MAAM;SACtB,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;AACvC,eAAc,KAAK,CAAC,OAAO,CAAC,MAAM;AAClC,eAAc,EAAE,KAAK;AACrB,mBAAkB,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;AAC9E,mBAAkB,OAAO,MAAM,IAAI,EAAE,KAAK,cAAc,IAAI,OAAO,MAAM,IAAI,WAAW,CAAC,CAAC;AAC1F;AACA,CAAA,OAAA,CAAA,eAAuB,GAAG,eAAe;AACzC,CAAA,SAAS,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;AACnF;KACI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;AAC/F,SAAQ,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACnD;AACA,KAAI,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY;AACjC,KAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE;AAC5H,SAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,wCAAwC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChG;AACA,KAAI,IAAI,GAAG,CAAC,cAAc,EAAE;SACpB,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACjD,IAAI,CAAC,KAAK,EAAE;AACpB,aAAY,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,4BAA4B,EAAE,aAAa,CAAC,GAAG,CAAC;iBAC5E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AAC1D,aAAY,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK;AAC7C,iBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACtC;AACA,iBAAgB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC;AACpC;AACA;AACA;AACA,CAAA,OAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD;;;;;;;;;;;AC1HA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,SAAA,CAAA,mBAA2B,GAAG,SAA2B,CAAA,mBAAA,GAAG,SAAoB,CAAA,YAAA,GAAG,MAAM;CACzF,MAAM,SAAS,GAAGF,cAAqB,EAAA;CACvC,MAAM,MAAM,GAAGD,WAAkB,EAAA;AACjC,CAAA,SAAS,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE;KAChG,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AACvD,SAAQ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;AAC/E;AACA,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;SACvB,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SAC9B,OAAO,UAAU,KAAK;eAChB;iBACE,MAAM,EAAE,GAAG;iBACX,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AACrG,iBAAgB,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/D;eACc;AACd,iBAAgB,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC;AACvC,iBAAgB,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;iBAC9H,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;cAC5F;AACb;AACA,KAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC9B,SAAQ,IAAI,UAAU,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE;AACnG,aAAY,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC;AAC1G;AACA,SAAQ,OAAO;AACf,aAAY,MAAM;AAClB,aAAY,UAAU;AACtB,aAAY,YAAY;AACxB,aAAY,aAAa;UAChB;AACT;AACA,KAAI,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AAClE;AACA,CAAA,SAAA,CAAA,YAAoB,GAAG,YAAY;AACnC,CAAA,SAAS,mBAAmB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;KAC3G,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;AACtD,SAAQ,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAC9E;AACA,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AACtB,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;SACxB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE;AACnD,SAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;SAC5G,gBAAgB,CAAC,QAAQ,CAAC;AAClC,SAAQ,SAAS,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnI,SAAQ,SAAS,CAAC,kBAAkB,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;SAC7D,SAAS,CAAC,WAAW,GAAG,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC,kBAAkB,CAAC;AAC9E;AACA,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;SACpB,MAAM,QAAQ,GAAG,IAAI,YAAY,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACrF,gBAAgB,CAAC,QAAQ,CAAC;SAC1B,IAAI,YAAY,KAAK,SAAS;AACtC,aAAY,SAAS,CAAC,YAAY,GAAG,YAAY;AACjD;AACA;AACA,KAAI,IAAI,SAAS;AACjB,SAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,KAAI,SAAS,gBAAgB,CAAC,SAAS,EAAE;AACzC,SAAQ,SAAS,CAAC,IAAI,GAAG,SAAS;SAC1B,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;AAC9C,SAAQ,SAAS,CAAC,SAAS,GAAG,EAAE;AAChC,SAAQ,EAAE,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE;AACxC,SAAQ,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI;SAC9B,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC1D;AACA;AACA,CAAA,SAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD,CAAA,SAAS,mBAAmB,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE;KAC/G,IAAI,aAAa,KAAK,SAAS;AACnC,SAAQ,SAAS,CAAC,aAAa,GAAG,aAAa;KAC3C,IAAI,YAAY,KAAK,SAAS;AAClC,SAAQ,SAAS,CAAC,YAAY,GAAG,YAAY;KACzC,IAAI,SAAS,KAAK,SAAS;AAC/B,SAAQ,SAAS,CAAC,SAAS,GAAG,SAAS;AACvC,KAAI,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAClD,KAAI,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AACxC;AACA,CAAA,SAAA,CAAA,mBAA2B,GAAG,mBAAmB;AACjD;;;;;;;;;;;;;;CC9EA,IAAI,QAAQ,GAAGmT,kBAAA,CAAA,OAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D;AACA,GAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;KAC7B,EAAE,GAAG,IAAI;KACT,IAAI,GAAG,EAAE;AACb;;AAEA,GAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE;AACpB,GAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,EAAE;GAClE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,EAAE;;AAErC,GAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;EAC/C;;;CAGD,QAAQ,CAAC,QAAQ,GAAG;GAClB,eAAe,EAAE,IAAI;GACrB,KAAK,EAAE,IAAI;GACX,QAAQ,EAAE,IAAI;GACd,oBAAoB,EAAE,IAAI;GAC1B,aAAa,EAAE,IAAI;GACnB,GAAG,EAAE,IAAI;GACT,EAAE,EAAE,IAAI;GACR,IAAI,EAAE,IAAI;AACZ,GAAE,IAAI,EAAE;EACP;;CAED,QAAQ,CAAC,aAAa,GAAG;GACvB,KAAK,EAAE,IAAI;GACX,KAAK,EAAE,IAAI;GACX,KAAK,EAAE,IAAI;AACb,GAAE,KAAK,EAAE;EACR;;CAED,QAAQ,CAAC,aAAa,GAAG;GACvB,KAAK,EAAE,IAAI;GACX,WAAW,EAAE,IAAI;GACjB,UAAU,EAAE,IAAI;GAChB,iBAAiB,EAAE,IAAI;AACzB,GAAE,YAAY,EAAE;EACf;;CAED,QAAQ,CAAC,YAAY,GAAG;GACtB,OAAO,EAAE,IAAI;GACb,IAAI,EAAE,IAAI;GACV,KAAK,EAAE,IAAI;GACX,QAAQ,EAAE,IAAI;GACd,OAAO,EAAE,IAAI;GACb,OAAO,EAAE,IAAI;GACb,gBAAgB,EAAE,IAAI;GACtB,gBAAgB,EAAE,IAAI;GACtB,UAAU,EAAE,IAAI;GAChB,SAAS,EAAE,IAAI;GACf,SAAS,EAAE,IAAI;GACf,OAAO,EAAE,IAAI;GACb,MAAM,EAAE,IAAI;GACZ,QAAQ,EAAE,IAAI;GACd,QAAQ,EAAE,IAAI;GACd,WAAW,EAAE,IAAI;GACjB,aAAa,EAAE,IAAI;AACrB,GAAE,aAAa,EAAE;EAChB;;;CAGD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;AACvH,GAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACrE,KAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;AAC1F,KAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC5B,OAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC3B,OAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9B,SAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAC3C,WAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;AACzC,aAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAClH;AACA,QAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;AAChD,SAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC3C,WAAU,KAAK,IAAI,IAAI,IAAI,GAAG;AAC9B,aAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;AAC1I;QACO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;SACxF,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC;AAC9F;AACA;AACA,KAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;AAC3F;AACA;;;CAGA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AACrD;;;;;;;;;AC3FA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,OAAA,CAAA,aAAqB,GAAG,OAAA,CAAA,UAAkB,GAAG,OAAA,CAAA,WAAmB,GAAG,OAAA,CAAA,YAAoB,GAAG,OAAA,CAAA,WAAmB,GAAG,OAAA,CAAA,SAAiB,GAAG,MAAM;CAC1I,MAAM,MAAM,GAAGlT,WAAiB,EAAA;CAChC,MAAM,KAAK,GAAGD,oBAA0B,EAAA;CACxC,MAAM,QAAQ,GAAGE,yBAA+B,EAAA;AAChD;AACA,CAAA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;AAC/B,KAAI,MAAM;AACV,KAAI,QAAQ;AACZ,KAAI,SAAS;AACb,KAAI,WAAW;AACf,KAAI,WAAW;AACf,KAAI,eAAe;AACnB,KAAI,eAAe;AACnB,KAAI,UAAU;AACd,KAAI,UAAU;AACd,KAAI,SAAS;AACb,KAAI,SAAS;AACb,KAAI,aAAa;AACjB,KAAI,YAAY;AAChB,KAAI,UAAU;AACd,KAAI,MAAM;AACV,KAAI,OAAO;AACX,EAAC,CAAC;AACF,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE;AACzC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;AAClC,SAAQ,OAAO,IAAI;KACf,IAAI,KAAK,KAAK,IAAI;AACtB,SAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC1B,IAAI,CAAC,KAAK;AACd,SAAQ,OAAO,KAAK;AACpB,KAAI,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK;AACrC;AACA,CAAA,OAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B,CAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;AAC7B,KAAI,MAAM;AACV,KAAI,eAAe;AACnB,KAAI,kBAAkB;AACtB,KAAI,aAAa;AACjB,KAAI,gBAAgB;AACpB,EAAC,CAAC;CACF,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,SAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;AACjC,aAAY,OAAO,IAAI;AACvB,SAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAClD,aAAY,OAAO,IAAI;SACf,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC;AACjD,aAAY,OAAO,IAAI;AACvB;AACA,KAAI,OAAO,KAAK;AAChB;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;KACvB,IAAI,KAAK,GAAG,CAAC;AACjB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;SACtB,IAAI,GAAG,KAAK,MAAM;AAC1B,aAAY,OAAO,QAAQ;AAC3B,SAAQ,KAAK,EAAE;AACf,SAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;aACvB;SACJ,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;aAChC,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACjF;SACQ,IAAI,KAAK,KAAK,QAAQ;AAC9B,aAAY,OAAO,QAAQ;AAC3B;AACA,KAAI,OAAO,KAAK;AAChB;CACA,SAAS,WAAW,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE;KAC/C,IAAI,SAAS,KAAK,KAAK;AAC3B,SAAQ,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;KACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAChC,KAAI,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpC;AACA,CAAA,OAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,SAAS,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE;KAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;KACxC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACzC;AACA,CAAA,OAAA,CAAA,YAAoB,GAAG,YAAY;CACnC,MAAM,mBAAmB,GAAG,OAAO;CACnC,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,KAAI,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE;AACxD;AACA,CAAA,OAAA,CAAA,WAAmB,GAAG,WAAW;AACjC,CAAA,SAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;AAC1C,KAAI,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;KACpB,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACvC;AACA,CAAA,OAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,MAAM,MAAM,GAAG,uBAAuB;AACtC,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;AACvC,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;AAClC,SAAQ,OAAO,EAAE;KACb,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI;KAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC;AACzD,KAAI,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;KAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;KACzD,MAAM,SAAS,GAAG,EAAE;AACxB,KAAI,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE;AAChC,KAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,KAAK;SACpE,IAAI,aAAa,KAAK,SAAS;aAC3B;AACZ,SAAQ,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO;AAC7C,SAAQ,IAAI,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;AAChD,SAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ;AAC5C,aAAY,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SAClD,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;SACjC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;AAChD,SAAQ,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW;AACtC,SAAQ,SAAS,MAAM,CAAC,GAAG,EAAE;AAC7B;aACY,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO;AAC1D,aAAY,GAAG,GAAG,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7E,aAAY,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;AACnC,iBAAgB,MAAM,QAAQ,CAAC,GAAG,CAAC;AACnC,aAAY,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;aACnB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,aAAY,IAAI,OAAO,QAAQ,IAAI,QAAQ;AAC3C,iBAAgB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9C,aAAY,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;iBAC7B,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3D;AACA,kBAAiB,IAAI,GAAG,KAAK,WAAW,CAAC,QAAQ,CAAC,EAAE;AACpD,iBAAgB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;qBAChB,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAC9D,qBAAoB,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG;AACxC;sBACqB;AACrB,qBAAoB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC7C;AACA;AACA,aAAY,OAAO,GAAG;AACtB;AACA,SAAQ,SAAS,SAAS,CAAC,MAAM,EAAE;AACnC,aAAY,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AAC3C,iBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;qBACpB,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjE,iBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C;AACA;AACA,MAAK,CAAC;AACN,KAAI,OAAO,SAAS;KAChB,SAAS,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;SACvC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACpD,aAAY,MAAM,QAAQ,CAAC,GAAG,CAAC;AAC/B;AACA,KAAI,SAAS,QAAQ,CAAC,GAAG,EAAE;SACnB,OAAO,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,kCAAkC,CAAC,CAAC;AAC/E;AACA;AACA,CAAA,OAAA,CAAA,aAAqB,GAAG,aAAa;AACrC;;;;;;;;;ACzJA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,QAAA,CAAA,OAAe,GAAG,QAAkB,CAAA,UAAA,GAAG,QAA4B,CAAA,oBAAA,GAAG,MAAM;CAC5E,MAAM,YAAY,GAAGD,iBAAuB,EAAA;CAC5C,MAAM,UAAU,GAAGD,eAAqB,EAAA;CACxC,MAAM,eAAe,GAAGE,oBAA0B,EAAA;CAClD,MAAM,UAAU,GAAGF,eAAqB,EAAA;CACxC,MAAM,UAAU,GAAGG,eAAqB,EAAA;CACxC,MAAM,SAAS,GAAGM,cAAoB,EAAA;CACtC,MAAM,WAAW,GAAGC,gBAAsB,EAAA;CAC1C,MAAM,SAAS,GAAGN,cAAqB,EAAA;CACvC,MAAM,OAAO,GAAGO,YAAmB,EAAA;CACnC,MAAM,SAAS,GAAGM,cAAqB,EAAA;CACvC,MAAM,MAAM,GAAGL,WAAkB,EAAA;CACjC,MAAM,QAAQ,GAAGC,aAAoB,EAAA;AACrC;CACA,SAAS,oBAAoB,CAAC,EAAE,EAAE;AAClC,KAAI,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;SACjB,aAAa,CAAC,EAAE,CAAC;AACzB,SAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE;aACvB,gBAAgB,CAAC,EAAE,CAAC;aACpB;AACZ;AACA;AACA,KAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AAC1E;AACA,CAAA,QAAA,CAAA,oBAA4B,GAAG,oBAAoB;AACnD,CAAA,SAAS,gBAAgB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE;AAChF,KAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACvB,SAAQ,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM;aAClH,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACrF,aAAY,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3C,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,UAAS,CAAC;AACV;UACS;SACD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChL;AACA;CACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,KAAI,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9R;AACA,CAAA,SAAS,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE;KACrC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;AACzC,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3H,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACvH,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvI,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC3G,IAAI,IAAI,CAAC,UAAU;AAC3B,aAAY,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AACnI,MAAK,EAAE,MAAM;SACL,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC5D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;SACjE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACjF,SAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SACvD,IAAI,IAAI,CAAC,UAAU;aACf,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,MAAK,CAAC;AACN;CACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;KAC1B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACpC,KAAI,gBAAgB,CAAC,EAAE,EAAE,MAAM;AAC/B,SAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;aAChC,cAAc,CAAC,EAAE,CAAC;SACtB,cAAc,CAAC,EAAE,CAAC;SAClB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;SAClC,IAAI,IAAI,CAAC,WAAW;aAChB,cAAc,CAAC,EAAE,CAAC;SACtB,eAAe,CAAC,EAAE,CAAC;SACnB,aAAa,CAAC,EAAE,CAAC;AACzB,MAAK,CAAC;KACF;AACJ;CACA,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B;AACA,KAAI,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;KAChC,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;KACnF,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;KACjJ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACrJ;AACA,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;AACrC,KAAI,MAAM,KAAK,GAAG,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;AACpE,KAAI,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG;AAC1H;AACA;AACA,CAAA,SAAS,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE;AAClC,KAAI,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;SACjB,aAAa,CAAC,EAAE,CAAC;AACzB,SAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE;AACnC,aAAY,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC;aAC3B;AACZ;AACA;KACI,IAAI,YAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,CAAC;AAClD;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;AAC7C,KAAI,IAAI,OAAO,MAAM,IAAI,SAAS;SAC1B,OAAO,CAAC,MAAM;AACtB,KAAI,KAAK,MAAM,GAAG,IAAI,MAAM;SACpB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAC/B,aAAY,OAAO,IAAI;AACvB,KAAI,OAAO,KAAK;AAChB;CACA,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,KAAI,OAAO,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS;AACxC;AACA,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE;KACjC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AACpC,KAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;SAChC,cAAc,CAAC,EAAE,CAAC;KACtB,aAAa,CAAC,EAAE,CAAC;KACjB,gBAAgB,CAAC,EAAE,CAAC;AACxB,KAAI,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAChE,KAAI,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC;AAClC;KACI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF;CACA,SAAS,aAAa,CAAC,EAAE,EAAE;KACvB,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC;KACjC,oBAAoB,CAAC,EAAE,CAAC;AAC5B;AACA,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE;AACxC,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG;SACX,OAAO,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;AACvD,KAAI,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC;AAC3D,KAAI,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,sBAAsB,EAAE,EAAE,EAAE,KAAK,CAAC;KACtE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;AACvD;CACA,SAAS,oBAAoB,CAAC,EAAE,EAAE;KAC9B,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;KAChD,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3G,SAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,0CAA0C,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;AACvF;AACA;CACA,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B,KAAI,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;AAC/B,KAAI,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;SACvE,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,uCAAuC,CAAC;AAChF;AACA;CACA,SAAS,aAAa,CAAC,EAAE,EAAE;AAC3B,KAAI,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7C,KAAI,IAAI,KAAK;SACL,EAAE,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;AACpF;CACA,SAAS,gBAAgB,CAAC,EAAE,EAAE;AAC9B,KAAI,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM;AAChD,SAAQ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;AACtD;AACA,CAAA,SAAS,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;AACzE,KAAI,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ;AAC/B,KAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;SACxB,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,UAAS,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;AACjD,SAAQ,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC;AACzE,SAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;AACxE,SAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACrH;AACA;CACA,SAAS,aAAa,CAAC,EAAE,EAAE;AAC3B,KAAI,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE;AACtE,KAAI,IAAI,SAAS,CAAC,MAAM,EAAE;AAC1B;AACA,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClM;UACS;SACD,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;SAC9E,IAAI,IAAI,CAAC,WAAW;aAChB,eAAe,CAAC,EAAE,CAAC;SACvB,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtE;AACA;CACA,SAAS,eAAe,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;AAC3D,KAAI,IAAI,KAAK,YAAY,SAAS,CAAC,IAAI;AACvC,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;AAChE,KAAI,IAAI,KAAK,YAAY,SAAS,CAAC,IAAI;AACvC,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;AAChE;CACA,SAAS,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE;AAC1D,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3D,KAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;KACtB,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;SACjG,GAAG,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SACpE;AACR;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,GAAG;AACjB,SAAQ,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC;AACnC,KAAI,GAAG,CAAC,KAAK,CAAC,MAAM;AACpB,SAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK;aAC3B,aAAa,CAAC,KAAK,CAAC;AAChC,SAAQ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACjC,MAAK,CAAC;AACN,KAAI,SAAS,aAAa,CAAC,KAAK,EAAE;AAClC,SAAQ,IAAI,CAAC,IAAI,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC;aACnD;AACZ,SAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;aACZ,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACvF,aAAY,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC;AACtC,aAAY,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE;iBAC7D,GAAG,CAAC,IAAI,EAAE;iBACV,IAAI,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC;AACnD;aACY,GAAG,CAAC,KAAK,EAAE;AACvB;cACa;AACb,aAAY,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC;AACtC;AACA;SACQ,IAAI,CAAC,SAAS;aACV,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;AACtF;AACA;AACA,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE;AACpC,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,GAAG,EAAE;AACtD,KAAI,IAAI,WAAW;AACnB,SAAQ,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AACtD,KAAI,GAAG,CAAC,KAAK,CAAC,MAAM;AACpB,SAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AACxC,aAAY,IAAI,IAAI,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AAClE,iBAAgB,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC;AAC1E;AACA;AACA,MAAK,CAAC;AACN;AACA,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE;AACrC,KAAI,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;SACzC;AACR,KAAI,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC;AAChC,KAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe;AAChC,SAAQ,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC;AACrC,KAAI,iBAAiB,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;AACvC;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE;AACtC,KAAI,IAAI,CAAC,KAAK,CAAC,MAAM;SACb;AACR,KAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9B,SAAQ,EAAE,CAAC,SAAS,GAAG,KAAK;SACpB;AACR;AACA,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACjB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;aAChC,gBAAgB,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,0BAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG;AACA,MAAK,CAAC;AACN,KAAI,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC;AAChC;AACA,CAAA,SAAS,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE;KAChC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;AACpE,SAAQ,gBAAgB,CAAC,EAAE,EAAE,iDAAiD,CAAC;AAC/E;AACA;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE;KAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;AACnC,KAAI,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;AACjC,SAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;AACnC,SAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,eAAe,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;AAC5F,aAAY,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU;aAChC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;iBAC5D,gBAAgB,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACjG;AACA;AACA;AACA;AACA,CAAA,SAAS,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AACxC,KAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnF;AACA,CAAA,SAAS,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7B,KAAI,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvE;AACA,CAAA,SAAS,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE;KACtC,MAAM,EAAE,GAAG,EAAE;AACjB,KAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE;AAClC,SAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;AACtC,aAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;cACT,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ;AAChE,aAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9B;AACA,KAAI,EAAE,CAAC,SAAS,GAAG,EAAE;AACrB;AACA,CAAA,SAAS,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE;KAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa;KACzD,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;AAC9C,KAAI,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7D;AACA,CAAA,MAAM,UAAU,CAAC;AACjB,KAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;AAClC,SAAQ,IAAI,SAAS,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC;AAC7D,SAAQ,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG;AACzB,SAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS;AACrC,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,SAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;SACnB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SAChC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;SAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AAC3F,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;AACxC,SAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,MAAM;AACrC,SAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,SAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,SAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,SAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;aACZ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E;cACa;AACb,aAAY,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aAClC,IAAI,CAAC,IAAI,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE;iBAClF,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA;AACA,SAAQ,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;AACpE,aAAY,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1E;AACA;AACA,KAAI,MAAM,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE;AACjD,SAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC;AACjF;AACA,KAAI,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE;AACrD,SAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;AAC9B,SAAQ,IAAI,UAAU;AACtB,aAAY,UAAU,EAAE;AACxB;aACY,IAAI,CAAC,KAAK,EAAE;SAChB,IAAI,aAAa,EAAE;AAC3B,aAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAC3B,aAAY,aAAa,EAAE;aACf,IAAI,IAAI,CAAC,SAAS;AAC9B,iBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChC;cACa;aACD,IAAI,IAAI,CAAC,SAAS;AAC9B,iBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAChC;AACA,iBAAgB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAC/B;AACA;AACA,KAAI,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;AAChC,SAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC;AAC7E;KACI,IAAI,CAAC,SAAS,EAAE;AACpB,SAAQ,IAAI,SAAS,KAAK,SAAS,EAAE;aACzB,IAAI,CAAC,KAAK,EAAE;AACxB,aAAY,IAAI,CAAC,IAAI,CAAC,SAAS;iBACf,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;aACvB;AACZ;AACA,SAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;SACtB,IAAI,CAAC,KAAK,EAAE;SACZ,IAAI,IAAI,CAAC,SAAS;AAC1B,aAAY,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;AAC5B;AACA,aAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAC3B;KACI,SAAS,CAAC,SAAS,EAAE;AACzB,SAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;AACvB,aAAY,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACvC,SAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;AACnC,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,mBAAmB,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3H;AACA,KAAI,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE;SACnC,IAAI,WAAW,EAAE;AACzB,aAAY,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACvC,aAAY,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;AAC3C,aAAY,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;aAClB;AACZ;AACA,SAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;AACvC;AACA,KAAI,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE;SAEvB,CAAC,MAAM,GAAG,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC;AACrG;AACA,KAAI,UAAU,GAAG;AACjB,SAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,iBAAiB,CAAC;AAC1F;AACA,KAAI,KAAK,GAAG;AACZ,SAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;AACxC,aAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AACtE,SAAQ,IAAI,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;AAChE;KACI,EAAE,CAAC,IAAI,EAAE;AACb,SAAQ,IAAI,CAAC,IAAI,CAAC,SAAS;AAC3B,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7B;AACA,KAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAC3B,SAAQ,IAAI,MAAM;aACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAC3C;AACA,aAAY,IAAI,CAAC,MAAM,GAAG,GAAG;AAC7B;KACI,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE;AAC7D,SAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;AAC7B,aAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC;AAC9C,aAAY,SAAS,EAAE;AACvB,UAAS,CAAC;AACV;AACA,KAAI,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE;AAClE,SAAQ,IAAI,CAAC,IAAI,CAAC,KAAK;aACX;SACJ,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;SACjD,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7F,SAAQ,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG;AACnC,aAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;SAC3B,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE;aACzC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;aAC/B,IAAI,CAAC,UAAU,EAAE;AAC7B,aAAY,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG;AACvC,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACxC;SACQ,GAAG,CAAC,IAAI,EAAE;AAClB;AACA,KAAI,YAAY,GAAG;AACnB,SAAQ,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI;AAC7D,SAAQ,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC;SAChE,SAAS,cAAc,GAAG;AAClC,aAAY,IAAI,UAAU,CAAC,MAAM,EAAE;AACnC;AACA,iBAAgB,IAAI,EAAE,UAAU,YAAY,SAAS,CAAC,IAAI,CAAC;AAC3D,qBAAoB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AAC/D,iBAAgB,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC;AAChF,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7I;aACY,OAAO,SAAS,CAAC,GAAG;AAChC;SACQ,SAAS,kBAAkB,GAAG;AACtC,aAAY,IAAI,GAAG,CAAC,cAAc,EAAE;AACpC,iBAAgB,MAAM,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;AACvG,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9E;aACY,OAAO,SAAS,CAAC,GAAG;AAChC;AACA;AACA,KAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3B,SAAQ,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;AACtE,SAAQ,IAAI,WAAW,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;SAC9D,IAAI,WAAW,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC;AAC7D,SAAQ,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;AAC5F,SAAQ,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC;AACzC,SAAQ,OAAO,WAAW;AAC1B;AACA,KAAI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;AACtC,SAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;AAChC,SAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;aACpB;AACZ,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;aACpD,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1F;AACA,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;aACpD,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1F;AACA;AACA,KAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE;AAC1C,SAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;AAChC,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AAC7E,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/E,aAAY,OAAO,IAAI;AACvB;AACA;AACA;AACA,CAAA,QAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC7C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC;AAChD,KAAI,IAAI,MAAM,IAAI,GAAG,EAAE;AACvB,SAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC/B;UACS,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE;SAChC,IAAI,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD;AACA,UAAS,IAAI,OAAO,IAAI,GAAG,EAAE;SACrB,IAAI,SAAS,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC;AACjD;UACS,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE;SAClC,IAAI,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD;AACA;CACA,MAAM,YAAY,GAAG,qBAAqB;CAC1C,MAAM,qBAAqB,GAAG,kCAAkC;CAChE,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;AAC/D,KAAI,IAAI,WAAW;AACnB,KAAI,IAAI,IAAI;KACR,IAAI,KAAK,KAAK,EAAE;AACpB,SAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ;AACvC,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1B,SAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;aACzB,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;SACrD,WAAW,GAAG,KAAK;AAC3B,SAAQ,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ;AACvC;UACS;SACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;SACjD,IAAI,CAAC,OAAO;aACR,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,SAAQ,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9B,SAAQ,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;AAChC,SAAQ,IAAI,WAAW,KAAK,GAAG,EAAE;aACrB,IAAI,EAAE,IAAI,SAAS;iBACf,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC/D,aAAY,OAAO,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;AAC9C;SACQ,IAAI,EAAE,GAAG,SAAS;aACd,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACjD,SAAQ,IAAI,GAAG,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;SAChC,IAAI,CAAC,WAAW;AACxB,aAAY,OAAO,IAAI;AACvB;KACI,IAAI,IAAI,GAAG,IAAI;KACf,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3C,KAAI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;SAC5B,IAAI,OAAO,EAAE;AACrB,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpH,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD;AACA;AACA,KAAI,OAAO,IAAI;AACf,KAAI,SAAS,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE;AACvC,SAAQ,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAC;AAC5F;AACA;AACA,CAAA,QAAA,CAAA,OAAe,GAAG,OAAO;AACzB;;;;;;;;;;;ACtgBA,CAAA,MAAM,CAAC,cAAc,CAAC,gBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,eAAe,SAAS,KAAK,CAAC;KAChC,WAAW,CAAC,MAAM,EAAE;SAChB,KAAK,CAAC,mBAAmB,CAAC;AAClC,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;SACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;AACzC;AACA;AACA,CAAA,gBAAA,CAAA,OAAe,GAAG,eAAe;AACjC;;;;;;;;;;;ACTA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGZ,cAAoB,EAAA;CACtC,MAAM,eAAe,SAAS,KAAK,CAAC;KAChC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;AAC5C,SAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AACxE,SAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;SAClE,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9G;AACA;AACA,CAAA,SAAA,CAAA,OAAe,GAAG,eAAe;AACjC;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAqB,OAAA,CAAA,aAAA,GAAG,OAA0B,CAAA,kBAAA,GAAG,OAAkB,CAAA,UAAA,GAAG,qBAAqB,GAAG,OAAA,CAAA,SAAiB,GAAG,MAAM;CAC5H,MAAM,SAAS,GAAGA,cAAoB,EAAA;CACtC,MAAM,kBAAkB,GAAGD,uBAAsC,EAAA;CACjE,MAAM,OAAO,GAAGE,YAAkB,EAAA;CAClC,MAAM,SAAS,GAAGC,cAAoB,EAAA;CACtC,MAAM,MAAM,GAAGM,WAAiB,EAAA;CAChC,MAAM,UAAU,GAAGC,eAAqB,EAAA;AACxC,CAAA,MAAM,SAAS,CAAC;KACZ,WAAW,CAAC,GAAG,EAAE;AACrB,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,SAAQ,IAAI,CAAC,cAAc,GAAG,EAAE;AAChC,SAAQ,IAAI,MAAM;AAClB,SAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,IAAI,QAAQ;AACzC,aAAY,MAAM,GAAG,GAAG,CAAC,MAAM;AAC/B,SAAQ,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AAChC,SAAQ,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;SAC5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI;SAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;AAClL,SAAQ,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;AACxC,SAAQ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS;AACtC,SAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AAC5B,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM;AACnF,SAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB;AACA;AACA,CAAA,OAAA,CAAA,SAAiB,GAAG,SAAS;AAC7B;AACA;AACA;CACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B;KACI,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnD,KAAI,IAAI,IAAI;AACZ,SAAQ,OAAO,IAAI;KACf,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClF,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;AACzC,KAAI,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI;AACvC,KAAI,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAChF,KAAI,IAAI,gBAAgB;AACxB,KAAI,IAAI,GAAG,CAAC,MAAM,EAAE;AACpB,SAAQ,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE;AACnD,aAAY,GAAG,EAAE,kBAAkB,CAAC,OAAO;aAC/B,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,oDAAoD,CAAC;AACzF,UAAS,CAAC;AACV;KACI,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;AAClD,KAAI,GAAG,CAAC,YAAY,GAAG,YAAY;KAC/B,MAAM,SAAS,GAAG;AACtB,SAAQ,GAAG;AACX,SAAQ,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;AACtC,SAAQ,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;AAClC,SAAQ,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;AAC9C,SAAQ,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB;SACtD,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACzC,SAAQ,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;SAC5B,SAAS,EAAE,CAAC;SACZ,SAAS,EAAE,EAAE;AACrB,SAAQ,iBAAiB,EAAE,IAAI,GAAG,EAAE;AACpC,SAAQ,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK;AACzE,eAAc,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC;AAC3E,eAAc,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAClC,SAAQ,YAAY;SACZ,eAAe,EAAE,gBAAgB;AACzC,SAAQ,MAAM,EAAE,GAAG,CAAC,MAAM;SAClB,SAAS,EAAE,GAAG;AACtB,SAAQ,MAAM;AACd,SAAQ,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM;AACpC,SAAQ,UAAU,EAAE,SAAS,CAAC,GAAG;AACjC,SAAQ,aAAa,EAAE,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;SAC3D,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACxC,SAAQ,IAAI,EAAE,IAAI,CAAC,IAAI;SACf,IAAI,EAAE,IAAI;MACb;AACL,KAAI,IAAI,UAAU;AAClB,KAAI,IAAI;AACR,SAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;SAC3B,CAAC,CAAC,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC;SAC/C,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7C;AACA,SAAQ,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE;AAC3C,SAAQ,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AACpF;AACA,SAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AAClC,aAAY,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AAChE;SACQ,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AAC5G,SAAQ,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAC7D,SAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACzD,SAAQ,QAAQ,CAAC,MAAM,GAAG,IAAI;AAC9B,SAAQ,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AACpC,SAAQ,QAAQ,CAAC,SAAS,GAAG,GAAG;SACxB,IAAI,GAAG,CAAC,MAAM;AACtB,aAAY,QAAQ,CAAC,MAAM,GAAG,IAAI;SAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;AAC5C,aAAY,QAAQ,CAAC,MAAM,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE;AACtF;AACA,SAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnC,aAAY,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS;aAClC,QAAQ,CAAC,SAAS,GAAG;iBACjB,KAAK,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,KAAK;iBAC1D,KAAK,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI,GAAG,SAAS,GAAG,KAAK;AAC1E,iBAAgB,YAAY,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI;AAC7D,iBAAgB,YAAY,EAAE,KAAK,YAAY,SAAS,CAAC,IAAI;cAChD;aACD,IAAI,QAAQ,CAAC,MAAM;AAC/B,iBAAgB,QAAQ,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;AACxF;AACA,SAAQ,GAAG,CAAC,QAAQ,GAAG,QAAQ;AAC/B,SAAQ,OAAO,GAAG;AAClB;KACI,OAAO,CAAC,EAAE;SACN,OAAO,GAAG,CAAC,QAAQ;SACnB,OAAO,GAAG,CAAC,YAAY;AAC/B,SAAQ,IAAI,UAAU;aACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC;AACnF;AACA,SAAQ,MAAM,CAAC;AACf;aACY;AACZ,SAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC;AACA;AACA,CAAA,OAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAA,SAAS,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;AACvC,KAAI,IAAI,EAAE;AACV,KAAI,GAAG,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC;KACnE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,KAAI,IAAI,SAAS;AACjB,SAAQ,OAAO,SAAS;AACxB,KAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC5C,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;SACpB,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1F,SAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AACtC,SAAQ,IAAI,MAAM;AAClB,aAAY,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE;KACI,IAAI,IAAI,KAAK,SAAS;SAClB;AACR,KAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC7D;AACA,CAAA,OAAA,CAAA,UAAkB,GAAG,UAAU;CAC/B,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,KAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;SAC1D,OAAO,GAAG,CAAC,MAAM;AACzB,KAAI,OAAO,GAAG,CAAC,QAAQ,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D;AACA;CACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC,KAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AAC1C,SAAQ,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC;AACtC,aAAY,OAAO,GAAG;AACtB;AACA;AACA,CAAA,OAAA,CAAA,kBAA0B,GAAG,kBAAkB;AAC/C,CAAA,SAAS,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;KAC3B,OAAO,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;AACpF;AACA;AACA;CACA,SAAS,OAAO,CAAC,IAAI;CACrB,GAAG;GACD;AACF,KAAI,IAAI,GAAG;AACX,KAAI,OAAO,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ;SAC5C,GAAG,GAAG,GAAG;AACjB,KAAI,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC1E;AACA;CACA,SAAS,aAAa,CAAC,IAAI;CAC3B,GAAG;GACD;AACF,KAAI,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9C,KAAI,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;KACrE,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;AAC1F;AACA,KAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;SAC3D,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;AACjD;KACI,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;AAClD,KAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACtD,KAAI,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;AACrC,SAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC5D,SAAQ,IAAI,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ;aAC1E;SACJ,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;AAChD;AACA,KAAI,IAAI,QAAQ,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ;SACzF;AACR,KAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC1B,SAAQ,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1C,KAAI,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE;AAChD,SAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ;AACnC,SAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AACtC,SAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;AACtC,SAAQ,IAAI,KAAK;AACjB,aAAY,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;AACpF,SAAQ,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE;KACI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;AACjD;AACA,CAAA,OAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAA,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;AACrC,KAAI,YAAY;AAChB,KAAI,mBAAmB;AACvB,KAAI,MAAM;AACV,KAAI,cAAc;AAClB,KAAI,aAAa;AACjB,EAAC,CAAC;CACF,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;AAC7D,KAAI,IAAI,EAAE;KACN,IAAI,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG;SAC9E;AACR,KAAI,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC/D,SAAQ,IAAI,OAAO,MAAM,KAAK,SAAS;aAC3B;AACZ,SAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC7D,IAAI,UAAU,KAAK,SAAS;aACxB;SACJ,MAAM,GAAG,UAAU;AAC3B;AACA,SAAQ,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SACtE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE;AACtD,aAAY,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC;AACpF;AACA;AACA,KAAI,IAAI,GAAG;KACP,IAAI,OAAO,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;SACpG,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;SAClF,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAClD;AACA;AACA;AACA,KAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAClC,KAAI,GAAG,GAAG,GAAG,IAAI,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM;AACtC,SAAQ,OAAO,GAAG;AAClB,KAAI,OAAO,SAAS;AACpB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChPA,CAAA,MAAM,CAAC,cAAc,CAACiT,GAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAMsC,KAAG,GAAGhW,cAAmB,EAAA;CAC/BgW,KAAG,CAAC,IAAI,GAAG,yCAAyC;AACpD,CAAAtC,GAAA,CAAA,OAAe,GAAGsC,KAAG;AACrB;;;;;;;;;;ECJA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,OAAA,GAAkB,eAAe,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,cAAc,OAAY,CAAA,CAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,MAAM;EACxH,IAAI,UAAU,GAAGhW,eAA6B,EAAA;EAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EACtH,IAAI,SAAS,GAAGD,cAA4B,EAAA;EAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACnG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EACnH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACzG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EAC/G,MAAM,kBAAkB,GAAGE,uBAAqC,EAAA;EAChE,MAAM,WAAW,GAAGC,gBAA8B,EAAA;EAClD,MAAM,OAAO,GAAGM,YAA0B,EAAA;EAC1C,MAAM,SAAS,GAAGC,cAAoB,EAAA;EACtC,MAAM,SAAS,GAAGV,cAA4B,EAAA;EAC9C,MAAM,SAAS,GAAGI,cAA4B,EAAA;EAC9C,MAAM,UAAU,GAAGO,eAAsC,EAAA;EACzD,MAAM,MAAM,GAAGM,WAAyB,EAAA;EACxC,MAAM,cAAc,GAAG,UAA2B;EAClD,MAAM,KAAK,GAAGJ,UAAwB,EAAA;AACtC,EAAA,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;EAC5D,aAAa,CAAC,IAAI,GAAG,YAAY;EACjC,MAAM,mBAAmB,GAAG,CAAC,kBAAkB,EAAE,aAAa,EAAE,aAAa,CAAC;AAC9E,EAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;AAChC,MAAI,UAAU;AACd,MAAI,WAAW;AACf,MAAI,OAAO;AACX,MAAI,SAAS;AACb,MAAI,MAAM;AACV,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,eAAe;AACnB,MAAI,MAAM;AACV,MAAI,KAAK;AACT,MAAI,OAAO;AACX,GAAC,CAAC;AACF,EAAA,MAAM,cAAc,GAAG;MACnB,aAAa,EAAE,EAAE;MACjB,MAAM,EAAE,+CAA+C;MACvD,QAAQ,EAAE,6CAA6C;MACvD,YAAY,EAAE,kDAAkD;MAChE,UAAU,EAAE,uDAAuD;MACnE,WAAW,EAAE,qEAAqE;MAClF,WAAW,EAAE,mEAAmE;MAChF,UAAU,EAAE,mCAAmC;MAC/C,cAAc,EAAE,yCAAyC;MACzD,cAAc,EAAE,yCAAyC;MACzD,WAAW,EAAE,4CAA4C;MACzD,cAAc,EAAE,8EAA8E;MAC9F,KAAK,EAAE,6CAA6C;MACpD,SAAS,EAAE,6CAA6C;MACxD,SAAS,EAAE,oBAAoB;GAClC;AACD,EAAA,MAAM,iBAAiB,GAAG;MACtB,qBAAqB,EAAE,EAAE;MACzB,gBAAgB,EAAE,EAAE;MACpB,OAAO,EAAE,oEAAoE;GAChF;EACD,MAAM,cAAc,GAAG,GAAG;AAC1B;EACA,SAAS,eAAe,CAAC,CAAC,EAAE;MACxB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1G,MAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM;MAClB,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ;AAChF,MAAI,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAC3E,MAAI,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,aAAa;MACjI,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO;AAC3F,MAAI,OAAO;AACX,UAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC3H,UAAQ,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC7H,UAAQ,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC1H,UAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC5H,UAAQ,cAAc,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;UACxH,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC7E,UAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,cAAc;AAC3F,UAAQ,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,cAAc;AACnF,UAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACjE,UAAQ,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACzE,UAAQ,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AAC7E,UAAQ,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;AAC1E,UAAQ,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACnF,UAAQ,cAAc,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,cAAc,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACrF,UAAQ,eAAe,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACvF,UAAQ,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;AACnF,UAAQ,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI;UACrE,WAAW,EAAE,WAAW;OAC3B;AACL;AACA,EAAA,MAAM,GAAG,CAAC;AACV,MAAI,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE;AAC3B,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,UAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,UAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAAE;AACtC,UAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,UAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE;AAC/B,UAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE;UACxD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;UACrC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;UAC3F,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C,UAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe;AAC9C,UAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;UAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG;UACpC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,CAAC;AACtE,UAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC;UACtE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;UAChD,IAAI,IAAI,CAAC,OAAO;AACxB,cAAY,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;UAChC,IAAI,CAAC,gBAAgB,EAAE;UACvB,IAAI,CAAC,qBAAqB,EAAE;UAC5B,IAAI,IAAI,CAAC,QAAQ;cACb,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;AACxD,UAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ;AACxC,cAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,UAAQ,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC,UAAQ,IAAI,CAAC,eAAe,GAAG,SAAS;AACxC;AACA,MAAI,gBAAgB,GAAG;AACvB,UAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;AACjC;AACA,MAAI,qBAAqB,GAAG;UACpB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;UAC3C,IAAI,cAAc,GAAG,cAAc;AAC3C,UAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC/B,cAAY,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE;AAClD,cAAY,cAAc,CAAC,EAAE,GAAG,cAAc,CAAC,GAAG;cACtC,OAAO,cAAc,CAAC,GAAG;AACrC;UACQ,IAAI,IAAI,IAAI,KAAK;AACzB,cAAY,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;AAC/E;AACA,MAAI,WAAW,GAAG;UACV,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAC5C,UAAQ,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,SAAS;AACpG;MACI,QAAQ,CAAC,YAAY;AACzB;AACA,MAAI,IAAI;QACF;AACN,UAAQ,IAAI,CAAC;AACb,UAAQ,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;AAC7C,cAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;cAChC,IAAI,CAAC,CAAC;kBACF,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAC9E;eACa;AACb,cAAY,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC1C;AACA,UAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7B,UAAQ,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC;AAC5B,cAAY,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AAClC,UAAQ,OAAO,KAAK;AACpB;AACA,MAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;UACnB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC;UAC1C,QAAQ,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAC3D;AACA,MAAI,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE;UACvB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE;AACvD,cAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AACtE;AACA,UAAQ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI;UAChC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;AACvD,UAAQ,eAAe,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE;cAC3C,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;cAChD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;AACvD,cAAY,OAAO,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAChE;AACA,UAAQ,eAAe,cAAc,CAAC,IAAI,EAAE;cAChC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC/C,kBAAgB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC;AAChE;AACA;AACA,UAAQ,eAAe,aAAa,CAAC,GAAG,EAAE;AAC1C,cAAY,IAAI;AAChB,kBAAgB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAClD;cACY,OAAO,CAAC,EAAE;AACtB,kBAAgB,IAAI,EAAE,CAAC,YAAY,WAAW,CAAC,OAAO,CAAC;AACvD,sBAAoB,MAAM,CAAC;AAC3B,kBAAgB,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;kBACzB,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;kBACnD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACpD;AACA;UACQ,SAAS,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;AACjE,cAAY,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAChC,kBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAClG;AACA;AACA,UAAQ,eAAe,iBAAiB,CAAC,GAAG,EAAE;cAClC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7D,cAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;kBACf,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;AAChE,cAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;kBACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;AAClD;AACA,UAAQ,eAAe,WAAW,CAAC,GAAG,EAAE;cAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACxC,cAAY,IAAI,CAAC;AACjB,kBAAgB,OAAO,CAAC;AACxB,cAAY,IAAI;AAChB,kBAAgB,OAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACnE;sBACoB;AACpB,kBAAgB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC;AACA;AACA;AACA;MACI,SAAS,CAAC,MAAM;AACpB,MAAI,GAAG;AACP,MAAI,KAAK;AACT,MAAI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;QACxC;AACN,UAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnC,cAAY,KAAK,MAAM,GAAG,IAAI,MAAM;kBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;AACtE,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC,cAAY,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAC1C,cAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;cACrB,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;kBAC3C,MAAM,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;AACpE;AACA;AACA,UAAQ,GAAG,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACnD,UAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;UACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC;AACtF,UAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA,MAAI,aAAa,CAAC,MAAM,EAAE,GAAG;AAC7B,MAAI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;QACxC;UACE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC;AAC1D,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AAC5C,UAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;AACtC,cAAY,OAAO,IAAI;AACvB,UAAQ,IAAI,OAAO;AACnB,UAAQ,OAAO,GAAG,MAAM,CAAC,OAAO;UACxB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;AACjE,cAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD;AACA,UAAQ,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;UAChE,IAAI,CAAC,OAAO,EAAE;AACtB,cAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC;AACzD,cAAY,IAAI,CAAC,MAAM,GAAG,IAAI;AAC9B,cAAY,OAAO,IAAI;AACvB;UACQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;AACpD,UAAQ,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;cAC3B,MAAM,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE;AACrE,cAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK;AAClD,kBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1C;AACA,kBAAgB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AACxC;AACA,UAAQ,OAAO,KAAK;AACpB;AACA;AACA;MACI,SAAS,CAAC,MAAM,EAAE;AACtB,UAAQ,IAAI,GAAG;AACf,UAAQ,OAAO,QAAQ,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,QAAQ;cAC1D,MAAM,GAAG,GAAG;AACxB,UAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;AAC/B,cAAY,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AAC1C,cAAY,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1E,cAAY,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;cACtD,IAAI,CAAC,GAAG;kBACJ;AAChB,cAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;AACnC;UACQ,QAAQ,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAC3D;AACA;AACA;AACA;AACA;MACI,YAAY,CAAC,YAAY,EAAE;AAC/B,UAAQ,IAAI,YAAY,YAAY,MAAM,EAAE;cAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;cAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;AAC3D,cAAY,OAAO,IAAI;AACvB;UACQ,QAAQ,OAAO,YAAY;AACnC,cAAY,KAAK,WAAW;AAC5B,kBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;AACpD,kBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACjD,kBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACnC,kBAAgB,OAAO,IAAI;cACf,KAAK,QAAQ,EAAE;kBACX,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;AAC9D,kBAAgB,IAAI,OAAO,GAAG,IAAI,QAAQ;sBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,kBAAgB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACjD,kBAAgB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9C,kBAAgB,OAAO,IAAI;AAC3B;cACY,KAAK,QAAQ,EAAE;kBACX,MAAM,QAAQ,GAAG,YAAY;AAC7C,kBAAgB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;kBAC5B,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;kBACzC,IAAI,EAAE,EAAE;sBACJ,EAAE,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;AACvD,sBAAoB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3C,sBAAoB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxC;AACA,kBAAgB,OAAO,IAAI;AAC3B;cACY;AACZ,kBAAgB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AACtE;AACA;AACA;MACI,aAAa,CAAC,WAAW,EAAE;AAC/B,UAAQ,KAAK,MAAM,GAAG,IAAI,WAAW;AACrC,cAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAChC,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,UAAU,CAAC,QAAQ,EAAE,GAAG;QACtB;AACN,UAAQ,IAAI,OAAO;AACnB,UAAQ,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;cAC7B,OAAO,GAAG,QAAQ;AAC9B,cAAY,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AACxC,kBAAgB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC;AAC5F,kBAAgB,GAAG,CAAC,OAAO,GAAG,OAAO;AACrC;AACA;eACa,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,GAAG,KAAK,SAAS,EAAE;cACvD,GAAG,GAAG,QAAQ;AAC1B,cAAY,OAAO,GAAG,GAAG,CAAC,OAAO;AACjC,cAAY,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC3D,kBAAgB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACzF;AACA;eACa;AACb,cAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AAC7D;UACQ,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC;UACrC,IAAI,CAAC,GAAG,EAAE;cACN,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3E,cAAY,OAAO,IAAI;AACvB;AACA,UAAQ,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;UACjC,MAAM,UAAU,GAAG;AAC3B,cAAY,GAAG,GAAG;AAClB,cAAY,IAAI,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC;AACxD,cAAY,UAAU,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;WAC3D;AACT,UAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK;gBACnD,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU;gBACvC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,UAAQ,OAAO,IAAI;AACnB;MACI,UAAU,CAAC,OAAO,EAAE;UAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,UAAQ,OAAO,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI;AACjE;AACA;MACI,aAAa,CAAC,OAAO,EAAE;AAC3B;AACA,UAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAC9B,UAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AACtC,UAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;AACjC,UAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;AACzC,cAAY,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;cACnE,IAAI,CAAC,IAAI,CAAC;kBACN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACxC;AACA,UAAQ,OAAO,IAAI;AACnB;AACA;AACA,MAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5B,UAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ;AACrC,cAAY,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;AACvC,UAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM;AACnC,UAAQ,OAAO,IAAI;AACnB;AACA,MAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;MAC/B,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,EAAE;QACzC;UACE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1C,cAAY,OAAO,WAAW;AAC9B,UAAQ,OAAO;eACF,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,eAAa,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC;AAC1D;AACA,MAAI,eAAe,CAAC,UAAU,EAAE,oBAAoB,EAAE;AACtD,UAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;AACpC,UAAQ,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3D,UAAQ,KAAK,MAAM,WAAW,IAAI,oBAAoB,EAAE;AACxD,cAAY,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;cACjD,IAAI,QAAQ,GAAG,UAAU;AACrC,cAAY,KAAK,MAAM,GAAG,IAAI,QAAQ;AACtC,kBAAgB,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;AACxC,cAAY,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACrC,kBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;AACvC,kBAAgB,IAAI,OAAO,IAAI,IAAI,QAAQ;sBACvB;AACpB,kBAAgB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU;AACjD,kBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;kBAC5B,IAAI,KAAK,IAAI,MAAM;sBACf,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;AACxD;AACA;AACA,UAAQ,OAAO,UAAU;AACzB;AACA,MAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE;AACtC,UAAQ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AACtC,cAAY,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;cAC3B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9C,kBAAgB,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;AAC5C,sBAAoB,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1C;AACA,uBAAqB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;sBACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,sBAAoB,OAAO,OAAO,CAAC,MAAM,CAAC;AAC1C;AACA;AACA;AACA;MACI,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrH,UAAQ,IAAI,EAAE;AACd,UAAQ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;AACtC,UAAQ,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;AACvC,cAAY,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjC;eACa;AACb,cAAY,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG;AAC7B,kBAAgB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AACxD,mBAAiB,IAAI,OAAO,MAAM,IAAI,SAAS;AAC/C,kBAAgB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;AACnE;UACQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;UACjC,IAAI,GAAG,KAAK,SAAS;AAC7B,cAAY,OAAO,GAAG;AACtB,UAAQ,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,MAAM,CAAC;AACzD,UAAQ,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5E,UAAQ,GAAG,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;UAC5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;UAChC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClD;AACA,cAAY,IAAI,MAAM;AACtB,kBAAgB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACzC,cAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;AACnC;AACA,UAAQ,IAAI,cAAc;AAC1B,cAAY,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7C,UAAQ,OAAO,GAAG;AAClB;MACI,YAAY,CAAC,EAAE,EAAE;AACrB,UAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;cACnC,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC3E;AACA;MACI,iBAAiB,CAAC,GAAG,EAAE;UACnB,IAAI,GAAG,CAAC,IAAI;AACpB,cAAY,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACxC;cACY,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnD;AACA,UAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ;AACzB,cAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;UAC/C,OAAO,GAAG,CAAC,QAAQ;AAC3B;MACI,kBAAkB,CAAC,GAAG,EAAE;AAC5B,UAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI;AACrC,UAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS;AAClC,UAAQ,IAAI;cACA,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;AACnD;kBACgB;AAChB,cAAY,IAAI,CAAC,IAAI,GAAG,WAAW;AACnC;AACA;AACA;AACA,EAAA,GAAG,CAAC,eAAe,GAAG,kBAAkB,CAAC,OAAO;AAChD,EAAA,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,OAAO;AACzC,EAAA,OAAA,CAAA,OAAA,GAAkB,GAAG;EACrB,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,EAAE;AAC9D,MAAI,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;UACzB,MAAM,GAAG,GAAG,GAAG;UACf,IAAI,GAAG,IAAI,OAAO;cACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE;AACA;EACA,SAAS,SAAS,CAAC,MAAM,EAAE;MACvB,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAChD,MAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACpD;AACA,EAAA,SAAS,iBAAiB,GAAG;AAC7B,MAAI,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;MACrC,IAAI,CAAC,WAAW;UACZ;AACR,MAAI,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAClC,UAAQ,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACnC;AACA,UAAQ,KAAK,MAAM,GAAG,IAAI,WAAW;cACzB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACjD;AACA,EAAA,SAAS,iBAAiB,GAAG;MACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;UAClC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9C,UAAQ,IAAI,MAAM;AAClB,cAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC;AACA;EACA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,MAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC7B,UAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;UACxB;AACR;AACA,MAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC;AACxE,MAAI,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;AAChC,UAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,UAAQ,IAAI,CAAC,GAAG,CAAC,OAAO;AACxB,cAAY,GAAG,CAAC,OAAO,GAAG,OAAO;AACjC,UAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAC5B;AACA;AACA,EAAA,SAAS,oBAAoB,GAAG;MAC5B,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE;AACrC,MAAI,KAAK,MAAM,GAAG,IAAI,mBAAmB;AACzC,UAAQ,OAAO,QAAQ,CAAC,GAAG,CAAC;AAC5B,MAAI,OAAO,QAAQ;AACnB;AACA,EAAA,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE;EACrD,SAAS,SAAS,CAAC,MAAM,EAAE;MACvB,IAAI,MAAM,KAAK,KAAK;AACxB,UAAQ,OAAO,MAAM;MACjB,IAAI,MAAM,KAAK,SAAS;AAC5B,UAAQ,OAAO,OAAO;MAClB,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;AACjD,UAAQ,OAAO,MAAM;AACrB,MAAI,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AACxE;EACA,MAAM,YAAY,GAAG,yBAAyB;AAC9C,EAAA,SAAS,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE;AACpC,MAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;MACtB,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;AAC3C,UAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;cACnB,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAChE,UAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;cACvB,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC9D,OAAK,CAAC;MACF,IAAI,CAAC,GAAG;UACJ;AACR,MAAI,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,CAAC,EAAE;AAC5D,UAAQ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC;AAChF;AACA;AACA,EAAA,SAAS,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;AAChD,MAAI,IAAI,EAAE;AACV,MAAI,MAAM,IAAI,GAAG,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,IAAI;MACpF,IAAI,QAAQ,IAAI,IAAI;AACxB,UAAQ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;AACtE,MAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;MACtB,IAAI,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,QAAQ,CAAC;MACrF,IAAI,CAAC,SAAS,EAAE;UACZ,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;AACjD,UAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACnC;AACA,MAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI;MAC9B,IAAI,CAAC,UAAU;UACX;MACJ,MAAM,IAAI,GAAG;AACjB,UAAQ,OAAO;AACf,UAAQ,UAAU,EAAE;AACpB,cAAY,GAAG,UAAU;AACzB,cAAY,IAAI,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;AAC/D,cAAY,UAAU,EAAE,IAAI,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC;WAClE;OACJ;MACD,IAAI,UAAU,CAAC,MAAM;AACzB,UAAQ,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;AACpE;AACA,UAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,MAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,MAAI,CAAC,EAAE,GAAG,UAAU,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/G;AACA,EAAA,SAAS,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;AAChD,MAAI,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;AAC5E,MAAI,IAAI,CAAC,IAAI,CAAC,EAAE;UACR,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AAC1C;WACS;AACT,UAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,UAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AACzD;AACA;EACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,MAAI,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;MACxB,IAAI,UAAU,KAAK,SAAS;UACxB;MACJ,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;AACpC,UAAQ,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;MACzC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;AACvD;AACA,EAAA,MAAM,QAAQ,GAAG;MACb,IAAI,EAAE,gFAAgF;GACzF;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;MAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACxC;AACA;;;;;;;;;;;;;;;;ACxmBA,CAAA,MAAM,CAAC,cAAc,CAAC,EAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,IAAI;AACjB,KAAI,IAAI,GAAG;AACX,SAAQ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;MAC1E;EACJ;AACD,CAAA,EAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACRA,CAAA,MAAM,CAAC,cAAc,CAAC,GAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,GAAA,CAAA,OAAe,GAAG,GAAA,CAAA,WAAmB,GAAG,MAAM;CAC9C,MAAM,WAAW,GAAGZ,gBAAkC,EAAA;CACtD,MAAM,MAAM,GAAGD,WAAkB,EAAA;CACjC,MAAM,SAAS,GAAGE,cAAgC,EAAA;CAClD,MAAM,OAAO,GAAGC,YAA8B,EAAA;CAC9C,MAAM,SAAS,GAAGM,cAAwB,EAAA;CAC1C,MAAM,MAAM,GAAGC,WAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,MAAM;KACf,UAAU,EAAE,QAAQ;KACpB,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AAC7C,SAAQ,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AACvE,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG;AAC5B,SAAQ,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM;aACzD,OAAO,WAAW,EAAE;AAChC,SAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;SACpE,IAAI,QAAQ,KAAK,SAAS;AAClC,aAAY,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC;AAC5E,SAAQ,IAAI,QAAQ,YAAY,SAAS,CAAC,SAAS;AACnD,aAAY,OAAO,YAAY,CAAC,QAAQ,CAAC;AACzC,SAAQ,OAAO,eAAe,CAAC,QAAQ,CAAC;SAChC,SAAS,WAAW,GAAG;aACnB,IAAI,GAAG,KAAK,IAAI;AAC5B,iBAAgB,OAAO,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;AAClE,aAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aACtD,OAAO,OAAO,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3F;AACA,SAAQ,SAAS,YAAY,CAAC,GAAG,EAAE;aACvB,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;aAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;AAC5C;AACA,SAAQ,SAAS,eAAe,CAAC,GAAG,EAAE;AACtC,aAAY,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;aACtI,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;iBACzB,MAAM,EAAE,GAAG;iBACX,SAAS,EAAE,EAAE;AAC7B,iBAAgB,UAAU,EAAE,SAAS,CAAC,GAAG;iBACzB,YAAY,EAAE,OAAO;iBACrB,aAAa,EAAE,IAAI;cACtB,EAAE,KAAK,CAAC;AACrB,aAAY,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB;MACK;EACJ;AACD,CAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,KAAI,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG;KACnB,OAAO,GAAG,CAAC;AACf,WAAU,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;WAChD,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC;AAChF;AACA,CAAA,GAAA,CAAA,WAAmB,GAAG,WAAW;CACjC,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;AACtC,KAAI,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG;KACvB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AAClD,KAAI,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG;AAC3E,KAAI,IAAI,MAAM;AACd,SAAQ,YAAY,EAAE;AACtB;AACA,SAAQ,WAAW,EAAE;KACjB,SAAS,YAAY,GAAG;AAC5B,SAAQ,IAAI,CAAC,GAAG,CAAC,MAAM;AACvB,aAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;SAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,SAAQ,GAAG,CAAC,GAAG,CAAC,MAAM;AACtB,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/F,aAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACpB,IAAI,CAAC,SAAS;AAC1B,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;UAC9B,EAAE,CAAC,CAAC,KAAK;AAClB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACvF,aAAa,CAAC,CAAC,CAAC;aAChB,IAAI,CAAC,SAAS;AAC1B,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;AACxC,UAAS,CAAC;AACV,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB;KACI,SAAS,WAAW,GAAG;AAC3B,SAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC;AACpH;AACA,KAAI,SAAS,aAAa,CAAC,MAAM,EAAE;AACnC,SAAQ,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;SAChD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACnJ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChG;AACA,KAAI,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACtC,SAAQ,IAAI,EAAE;AACd,SAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW;aACpB;AACZ,SAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,SAAS;AAC5I;AACA,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;AAC/B,aAAY,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC5D,iBAAgB,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE;AACtD,qBAAoB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAC7F;AACA;kBACiB;iBACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBAC5E,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;AAC5F;AACA;AACA,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;AAC/B,aAAY,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC5D,iBAAgB,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE;AACtD,qBAAoB,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAC7F;AACA;kBACiB;iBACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBAC5E,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;AAC5F;AACA;AACA;AACA;AACA,CAAA,GAAA,CAAA,OAAe,GAAG,OAAO;AACzB,CAAA,GAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;ACxHA,CAAA,MAAM,CAAC,cAAc,CAACoT,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,IAAI,GAAG7T,SAAe,EAAA;CAC5B,MAAM,KAAK,GAAGD,UAAgB,EAAA;AAC9B,CAAA,MAAM,IAAI,GAAG;AACb,KAAI,SAAS;AACb,KAAI,KAAK;AACT,KAAI,OAAO;AACX,KAAI,aAAa;AACjB,KAAI,EAAE,OAAO,EAAE,UAAU,EAAE;AAC3B,KAAI,aAAa;KACb,IAAI,CAAC,OAAO;KACZ,KAAK,CAAC,OAAO;EAChB;AACD,CAAA8T,MAAA,CAAA,OAAe,GAAG,IAAI;AACtB;;;;;;;;;;;;;ACdA,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAG7T,cAAgC,EAAA;AAClD,CAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS;AAC/B,CAAA,MAAM,IAAI,GAAG;AACb,KAAI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;AACvD,KAAI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;AACvD,KAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;AAC/D,KAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;EAC9D;AACD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC3G,KAAI,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;EACrH;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1B,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;AACjD,SAAQ,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAClG;EACJ;AACD,CAAA,WAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACzBA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGA,cAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;KACnF,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;EAC7E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,YAAY;KACrB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AACjD;AACA,SAAQ,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB;SACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;SAC1B,MAAM,OAAO,GAAG;AACxB,eAAc,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAClF,eAAc,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,SAAQ,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;MAC1G;EACJ;AACD,CAAA,UAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;ACxBA,CAAA,MAAM,CAAC,cAAc,CAACgU,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;AACA;CACA,SAASiC,YAAU,CAAC,GAAG,EAAE;AACzB,KAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;KACtB,IAAI,MAAM,GAAG,CAAC;KACd,IAAI,GAAG,GAAG,CAAC;AACf,KAAI,IAAI,KAAK;AACb,KAAI,OAAO,GAAG,GAAG,GAAG,EAAE;AACtB,SAAQ,MAAM,EAAE;SACR,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACrC,SAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;AAC7D;AACA,aAAY,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;AACvC,aAAY,IAAI,CAAC,KAAK,GAAG,MAAM,MAAM,MAAM;iBAC3B,GAAG,EAAE,CAAC;AACtB;AACA;AACA,KAAI,OAAO,MAAM;AACjB;AACA,CAAAjC,UAAA,CAAA,OAAe,GAAGiC,YAAU;CAC5BA,YAAU,CAAC,IAAI,GAAG,gDAAgD;AAClE;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGjW,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;CAC5C,MAAM,YAAY,GAAGE,iBAAmC,EAAA;AACxD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO;AAC/D,SAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;MAClF;KACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACxE;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;KACnC,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AACrD,SAAQ,MAAM,EAAE,GAAG,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE;SACpF,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SAC7J,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;MAC/D;EACJ;AACD,CAAA,WAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACzBA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGD,WAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,cAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;KACpF,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;EAC1E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,SAAS;KAClB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D;SACQ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,GAAG,EAAE;AAClD,SAAQ,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC;SACjH,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAC7D;EACJ;AACD,CAAA,OAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAAC,eAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGC,cAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,eAAe,GAAG,MAAM,GAAG,OAAO;AACnE,SAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;MAClF;KACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACxE;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;KAC3C,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;AACjD,SAAQ,MAAM,EAAE,GAAG,OAAO,KAAK,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE;SACxF,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;MACpF;EACJ;AACD,CAAA,eAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGA,WAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGE,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC,CAAC;KACnH,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAC;EACxG;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,UAAU;KACnB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,OAAO;KACnB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,GAAG;AAChE,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;SACnB,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;aAC7B;SACJ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;SAClD,IAAI,EAAE,CAAC,SAAS;AACxB,aAAY,aAAa,EAAE;AAC3B;AACA,aAAY,eAAe,EAAE;AAC7B,SAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,aAAY,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU;AACrD,aAAY,MAAM,EAAE,iBAAiB,EAAE,GAAG,GAAG,CAAC,EAAE;AAChD,aAAY,KAAK,MAAM,WAAW,IAAI,MAAM,EAAE;AAC9C,iBAAgB,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;qBACzH,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,aAAa;AAC7E,qBAAoB,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,EAAE,UAAU,CAAC,kBAAkB,CAAC;AACvH,qBAAoB,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;AAChF;AACA;AACA;SACQ,SAAS,aAAa,GAAG;AACjC,aAAY,IAAI,OAAO,IAAI,KAAK,EAAE;iBAClB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC;AAC9D;kBACiB;AACjB,iBAAgB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;qBACvB,IAAI,MAAM,CAAC,sBAAsB,EAAE,GAAG,EAAE,IAAI,CAAC;AACjE;AACA;AACA;SACQ,SAAS,eAAe,GAAG;aACvB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AAC9C,aAAY,IAAI,OAAO,IAAI,KAAK,EAAE;iBAClB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AACpD,iBAAgB,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7E,iBAAgB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AAC7B;kBACiB;AACjB,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAC1D,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC;iBAC3C,GAAG,CAAC,IAAI,EAAE;AAC1B;AACA;SACQ,SAAS,eAAe,GAAG;aACvB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,IAAI,KAAK;iBACpC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;iBACxC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5G,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE;aACtC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;aAC3C,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM;iBACjC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACrG,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;qBACpC,GAAG,CAAC,KAAK,EAAE;qBACX,GAAG,CAAC,KAAK,EAAE;AAC/B,kBAAiB,CAAC;AAClB,cAAa,EAAE,SAAS,CAAC,GAAG,CAAC;AAC7B;MACK;EACJ;AACD,CAAA,QAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC7EA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGD,cAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;SAC7B,MAAM,IAAI,GAAG,OAAO,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO;AAC9D,SAAQ,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;MAC7E;KACD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACxE;AACD,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KACjC,IAAI,EAAE,OAAO;KACb,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,GAAG;AACjD,SAAQ,MAAM,EAAE,GAAG,OAAO,KAAK,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE;SACnF,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;MACvE;EACJ;AACD,CAAA,UAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;ACtBA,CAAA,MAAM,CAAC,cAAc,CAACqU,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D;CACA,MAAM6B,OAAK,GAAGlW,oBAA0B,EAAA;CACxCkW,OAAK,CAAC,IAAI,GAAG,2CAA2C;AACxD,CAAA7B,KAAA,CAAA,OAAe,GAAG6B,OAAK;AACvB;;;;;;;;;ACLA,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,UAAU,GAAGlW,eAA0C,EAAA;CAC7D,MAAM,SAAS,GAAGD,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGE,WAA6B,EAAA;CAC5C,MAAM,OAAO,GAAGC,YAA8B,EAAA;AAC9C,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,wCAAwC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC;AAChI,KAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;EAC1E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,aAAa;KACtB,IAAI,EAAE,OAAO;KACb,UAAU,EAAE,SAAS;KACrB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;AAC9E,SAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;aACjB;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,SAAQ,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE;SAC9F,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;AAC9F,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;SACb,SAAS,mBAAmB,GAAG;aAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACzD,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;aACtB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnC,aAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AACnC,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F;SACQ,SAAS,WAAW,GAAG;aACnB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,OAAO,CAAC;AAClG;AACA,SAAQ,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;aACjB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;aAC7B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/H,aAAY,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,aAAY,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM;iBACvC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,iBAAgB,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC9D,iBAAgB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;AACxC,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC5F;sBACK,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM;qBACrE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;qBACrD,GAAG,CAAC,KAAK,EAAE;qBACX,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;kBACnC;sBACI,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,aAAY,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;aACrD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3C,aAAY,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM;iBACjL,GAAG,CAAC,KAAK,EAAE;AAC3B,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;cACxC,CAAC,CAAC,CAAC;AAChB;MACK;EACJ;AACD,CAAA,WAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC9DA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGF,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;CAC5C,MAAM,OAAO,GAAGE,YAA8B,EAAA;AAC9C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,2BAA2B;KACpC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;EAC/E;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG;SACpD,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,CAAC,EAAE;AAC5D,aAAY,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACnH;cACa;aACD,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9D;MACK;EACJ;AACD,CAAA,MAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACvBA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGD,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;CAC5C,MAAM,OAAO,GAAGE,YAA8B,EAAA;AAC9C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,4CAA4C;KACrD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC;EAChF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,MAAM;KACf,UAAU,EAAE,OAAO;KACnB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;SACxD,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AACzC,aAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;SACrD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ;AACzD,SAAQ,IAAI,GAAG;AACf,SAAQ,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACvH,SAAQ,IAAI,KAAK;AACjB,SAAQ,IAAI,OAAO,IAAI,KAAK,EAAE;AAC9B,aAAY,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,aAAY,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC3C;cACa;AACb;AACA,aAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,iBAAgB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;aAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;aAChD,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF;AACA,SAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SACf,SAAS,QAAQ,GAAG;AAC5B,aAAY,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;aACxB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3I;AACA,SAAQ,SAAS,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;AACvC,aAAY,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACjC,aAAY,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK;mBACpC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC1E,mBAAkB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvD;MACK;EACJ;AACD,CAAA,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;AC9CA,CAAA,MAAM,CAAC,cAAc,CAACuU,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,aAAa,GAAGxU,kBAAwB,EAAA;CAC9C,MAAM,YAAY,GAAGD,iBAAuB,EAAA;CAC5C,MAAM,aAAa,GAAGE,kBAAwB,EAAA;CAC9C,MAAM,SAAS,GAAGC,cAAoB,EAAA;CACtC,MAAM,iBAAiB,GAAGM,sBAA4B,EAAA;CACtD,MAAM,UAAU,GAAGC,eAAqB,EAAA;CACxC,MAAM,YAAY,GAAGN,iBAAuB,EAAA;CAC5C,MAAM,aAAa,GAAGO,kBAAwB,EAAA;CAC9C,MAAM,OAAO,GAAGM,aAAkB,EAAA;CAClC,MAAM,MAAM,GAAGL,YAAiB,EAAA;AAChC,CAAA,MAAMwV,YAAU,GAAG;AACnB;KACI,aAAa,CAAC,OAAO;KACrB,YAAY,CAAC,OAAO;AACxB;KACI,aAAa,CAAC,OAAO;KACrB,SAAS,CAAC,OAAO;AACrB;KACI,iBAAiB,CAAC,OAAO;KACzB,UAAU,CAAC,OAAO;AACtB;KACI,YAAY,CAAC,OAAO;KACpB,aAAa,CAAC,OAAO;AACzB;AACA,KAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;KACpD,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE;KAC9C,OAAO,CAAC,OAAO;KACf,MAAM,CAAC,OAAO;EACjB;AACD,CAAA3B,UAAA,CAAA,OAAe,GAAG2B,YAAU;AAC5B;;;;;;;;;;;;;AC/BA,CAAA,MAAM,CAAC,cAAc,CAAC,eAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAA+B,eAAA,CAAA,uBAAA,GAAG,MAAM;CACxC,MAAM,SAAS,GAAGnW,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC;KAC3F,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;EACtE;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,iBAAiB;KAC1B,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;KACjC,MAAM,EAAE,aAAa;AACzB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AACxC,SAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY;SAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;aACvB,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,sEAAsE,CAAC;aACvG;AACZ;AACA,SAAQ,uBAAuB,CAAC,GAAG,EAAE,KAAK,CAAC;MACtC;EACJ;AACD,CAAA,SAAS,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE;AAC7C,KAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;AAClD,KAAI,EAAE,CAAC,KAAK,GAAG,IAAI;KACf,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnE,KAAI,IAAI,MAAM,KAAK,KAAK,EAAE;SAClB,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SACpC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9D;AACA,UAAS,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;AACtF,SAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrF,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;AACrE,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB;AACA,KAAI,SAAS,aAAa,CAAC,KAAK,EAAE;AAClC,SAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK;aACxC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC;AACzF,aAAY,IAAI,CAAC,EAAE,CAAC,SAAS;AAC7B,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpE,UAAS,CAAC;AACV;AACA;AACA,CAAA,eAAA,CAAA,uBAA+B,GAAG,uBAAuB;AACzD,CAAA,eAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;AC/CA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAqB,KAAA,CAAA,aAAA,GAAG,MAAM;CAC9B,MAAM,SAAS,GAAGC,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;CAC5C,MAAM,MAAM,GAAGE,WAAkB,EAAA;AACjC,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,IAAI,EAAE,OAAO;KACb,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;KAC1C,MAAM,EAAE,aAAa;KACrB,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;AAClC,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;aACrB,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAChE,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;SACf,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aACzC;AACZ,SAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;MACzC;EACJ;CACD,SAAS,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;AAC7D,KAAI,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;KACpD,gBAAgB,CAAC,YAAY,CAAC;AAClC,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;AACnE,SAAQ,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC;AAC5E;KACI,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;SACvB,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC;aACtC;SACJ,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,SAAS,CAAC;AACrE,aAAY,OAAO;aACP,UAAU,EAAE,CAAC;aACb,QAAQ,EAAE,CAAC;UACd,EAAE,KAAK,CAAC,CAAC;AAClB,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB,MAAK,CAAC;AACN,KAAI,SAAS,gBAAgB,CAAC,GAAG,EAAE;AACnC,SAAQ,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE;AAC1C,SAAQ,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM;SACvB,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC;AACjG,SAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE;aACjC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,iCAAiC,EAAE,UAAU,CAAC,yCAAyC,EAAE,aAAa,CAAC,CAAC,CAAC;AACtJ,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC;AACnE;AACA;AACA;AACA,CAAA,KAAA,CAAA,aAAqB,GAAG,aAAa;AACrC,CAAA,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;AClDA,CAAA,MAAM,CAAC,cAAc,CAAC,WAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,OAAO,GAAGD,YAAkB,EAAA;AAClC,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,aAAa;KACtB,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,OAAO,CAAC;KACrB,MAAM,EAAE,aAAa;AACzB,KAAI,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC;EAC1D;AACD,CAAA,WAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGA,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;CAC5C,MAAM,MAAM,GAAGE,WAAkB,EAAA;CACjC,MAAM,iBAAiB,GAAGC,sBAA4B,EAAA;AACtD,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC;KAC3F,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;EACtE;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,MAAM,EAAE,aAAa;AACzB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAChD,SAAQ,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY;AAC5C,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;SACf,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aACzC;AACZ,SAAQ,IAAI,WAAW;aACX,IAAI,iBAAiB,CAAC,uBAAuB,EAAE,GAAG,EAAE,WAAW,CAAC;AAC5E;AACA,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;MAC7C;EACJ;AACD,CAAA,SAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC5BA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGF,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK;AACnD,WAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,cAAc;AACxE,WAAU,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,sBAAsB,EAAE,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,cAAc,CAAC;KAC7F,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;EACrK;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,UAAU;KACnB,IAAI,EAAE,OAAO;AACjB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,MAAM,EAAE,aAAa;KACrB,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,IAAI,GAAG;AACf,SAAQ,IAAI,GAAG;AACf,SAAQ,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY;AACzD,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;aACd,GAAG,GAAG,WAAW,KAAK,SAAS,GAAG,CAAC,GAAG,WAAW;aACjD,GAAG,GAAG,WAAW;AAC7B;cACa;aACD,GAAG,GAAG,CAAC;AACnB;SACQ,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/D,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE;AAC5C,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,oEAAoE,CAAC,CAAC;aACvG;AACZ;SACQ,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE;AAC5C,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,+CAA+C,CAAC,CAAC;aAClF,GAAG,CAAC,IAAI,EAAE;aACV;AACZ;AACA,SAAQ,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;AACvD,aAAY,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAC9C,IAAI,GAAG,KAAK,SAAS;iBACjB,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACrE,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aACd;AACZ;AACA,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;SACf,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,EAAE;AAC5C,aAAY,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACxE;AACA,cAAa,IAAI,GAAG,KAAK,CAAC,EAAE;AAC5B,aAAY,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;aACpB,IAAI,GAAG,KAAK,SAAS;AACjC,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC;AACrF;cACa;AACb,aAAY,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;AACjC,aAAY,sBAAsB,EAAE;AACpC;SACQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;SACpC,SAAS,sBAAsB,GAAG;aAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,aAAY,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF;AACA,SAAQ,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE;AAC9C,aAAY,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK;iBAC7B,GAAG,CAAC,SAAS,CAAC;qBACV,OAAO,EAAE,UAAU;qBACnB,QAAQ,EAAE,CAAC;AAC/B,qBAAoB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;qBAC7B,aAAa,EAAE,IAAI;kBACtB,EAAE,MAAM,CAAC;AAC1B,iBAAgB,KAAK,EAAE;AACvB,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,WAAW,CAAC,KAAK,EAAE;AACpC,aAAY,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACnD,aAAY,IAAI,GAAG,KAAK,SAAS,EAAE;AACnC,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AACpG;kBACiB;AACjB,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;iBACpF,IAAI,GAAG,KAAK,CAAC;AAC7B,qBAAoB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C;AACA,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAChG;AACA;MACK;EACJ;AACD,CAAA,QAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;EC7FA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAA6B,CAAA,kBAAA,GAAA,OAAA,CAAA,oBAAA,GAA+B,OAAgB,CAAA,KAAA,GAAA,MAAM;EAClF,MAAM,SAAS,GAAGC,cAAgC,EAAA;EAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;EAC5C,MAAM,MAAM,GAAGE,WAAkB,EAAA;EACjC,OAAgB,CAAA,KAAA,GAAA;AAChB,MAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK;UACpD,MAAM,YAAY,GAAG,SAAS,KAAK,CAAC,GAAG,UAAU,GAAG,YAAY;UAChE,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,WAAW,CAAC;OACrG;AACL,MAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;AACpH,qBAAqB,EAAE,eAAe,CAAC;AACvC,eAAe,EAAE,SAAS,CAAC;AAC3B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;GAClB;AACD,EAAA,MAAM,GAAG,GAAG;MACR,OAAO,EAAE,cAAc;MACvB,IAAI,EAAE,QAAQ;MACd,UAAU,EAAE,QAAQ;AACxB,MAAI,KAAK,EAAE,OAAO,CAAC,KAAK;MACpB,IAAI,CAAC,GAAG,EAAE;UACN,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC;AAC1D,UAAQ,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC3C,UAAQ,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC;OACnC;GACJ;AACD,EAAA,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE;MACnC,MAAM,YAAY,GAAG,EAAE;MACvB,MAAM,UAAU,GAAG,EAAE;AACzB,MAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;UACtB,IAAI,GAAG,KAAK,WAAW;cACnB;AACZ,UAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,UAAU;UACnE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B;AACA,MAAI,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC;AACrC;EACA,SAAS,oBAAoB,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE;MAC1D,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;MAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;UACtC;MACJ,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;AACtC,MAAI,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;AACrC,UAAQ,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AACvC,UAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;cACjB;UACJ,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC;UACtF,GAAG,CAAC,SAAS,CAAC;cACV,QAAQ,EAAE,IAAI;AAC1B,cAAY,SAAS,EAAE,IAAI,CAAC,MAAM;AAClC,cAAY,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,WAAS,CAAC;AACV,UAAQ,IAAI,EAAE,CAAC,SAAS,EAAE;AAC1B,cAAY,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM;AACtC,kBAAgB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;sBACxB,IAAI,MAAM,CAAC,sBAAsB,EAAE,GAAG,EAAE,OAAO,CAAC;AACpE;AACA,eAAa,CAAC;AACd;eACa;AACb,cAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;cAClG,IAAI,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE,OAAO,CAAC;cAC3C,GAAG,CAAC,IAAI,EAAE;AACtB;AACA;AACA;AACA,EAAA,OAAA,CAAA,oBAAA,GAA+B,oBAAoB;EACnD,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE;MACtD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;MACtC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,MAAI,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACnC,UAAQ,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;cACnD;UACJ,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM;AACzF,cAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;AAC9E,cAAY,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;WACzC,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;WAC5B;AACT,UAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACrB;AACA;AACA,EAAA,OAAA,CAAA,kBAAA,GAA6B,kBAAkB;AAC/C,EAAA,OAAA,CAAA,OAAA,GAAkB,GAAG;AACrB;;;;;;;;;;;;ACnFA,CAAA,MAAM,CAAC,cAAc,CAAC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGD,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,6BAA6B;KACtC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;EACpF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,eAAe;KACxB,IAAI,EAAE,QAAQ;AAClB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;AACrC,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;SACrC,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aACzC;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;aAC5B,GAAG,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;aACpC,GAAG,CAAC,SAAS,CAAC;iBACV,OAAO,EAAE,eAAe;iBACxB,IAAI,EAAE,GAAG;AACzB,iBAAgB,SAAS,EAAE,CAAC,QAAQ,CAAC;iBACrB,YAAY,EAAE,GAAG;iBACjB,aAAa,EAAE,IAAI;cACtB,EAAE,KAAK,CAAC;AACrB,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;AACpD,iBAAgB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,iBAAgB,IAAI,CAAC,EAAE,CAAC,SAAS;qBACb,GAAG,CAAC,KAAK,EAAE;AAC/B,cAAa,CAAC;AACd,UAAS,CAAC;AACV,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;MAChB;EACJ;AACD,CAAA,aAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACpCA,CAAA,MAAM,CAAC,cAAc,CAAC,oBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGC,WAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,cAAgC,EAAA;CAClD,MAAM,OAAO,GAAGE,YAA8B,EAAA;CAC9C,MAAM,MAAM,GAAGC,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,qCAAqC;KAC9C,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;EAChG;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,sBAAsB;AACnC,KAAI,IAAI,EAAE,CAAC,QAAQ,CAAC;AACpB,KAAI,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;KACjC,cAAc,EAAE,IAAI;KACpB,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,GAAG;AACtE;SACQ,IAAI,CAAC,SAAS;AACtB,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AACvD,SAAQ,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AACtC,SAAQ,EAAE,CAAC,KAAK,GAAG,IAAI;AACvB,SAAQ,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;aAC5E;AACZ,SAAQ,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,UAAU,CAAC;AAC9E,SAAQ,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,iBAAiB,CAAC;AACxF,SAAQ,yBAAyB,EAAE;SAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;SACrE,SAAS,yBAAyB,GAAG;aACjC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;iBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM;qBACjC,sBAAsB,CAAC,GAAG,CAAC;AAC/C;AACA,qBAAoB,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAChF,cAAa,CAAC;AACd;AACA,SAAQ,SAAS,YAAY,CAAC,GAAG,EAAE;AACnC,aAAY,IAAI,WAAW;AAC3B,aAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC;AACA,iBAAgB,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC;AACzG,iBAAgB,WAAW,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC;AAC9E;AACA,kBAAiB,IAAI,KAAK,CAAC,MAAM,EAAE;AACnC,iBAAgB,WAAW,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG;kBACiB;AACjB,iBAAgB,WAAW,GAAG,SAAS,CAAC,GAAG;AAC3C;AACA,aAAY,IAAI,QAAQ,CAAC,MAAM,EAAE;iBACjB,WAAW,GAAG,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvJ;aACY,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC;AAClD;AACA,SAAQ,SAAS,gBAAgB,CAAC,GAAG,EAAE;aAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D;AACA,SAAQ,SAAS,sBAAsB,CAAC,GAAG,EAAE;AAC7C,aAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,KAAK,IAAI,CAAC,gBAAgB,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;iBAChF,gBAAgB,CAAC,GAAG,CAAC;iBACrB;AAChB;AACA,aAAY,IAAI,MAAM,KAAK,KAAK,EAAE;iBAClB,GAAG,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;iBAC1C,GAAG,CAAC,KAAK,EAAE;iBACX,IAAI,CAAC,SAAS;qBACV,GAAG,CAAC,KAAK,EAAE;iBACf;AAChB;AACA,aAAY,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;iBACzE,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/C,iBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACzD,qBAAoB,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;AAC5D,qBAAoB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM;yBACpC,GAAG,CAAC,KAAK,EAAE;yBACX,gBAAgB,CAAC,GAAG,CAAC;AAC7C,sBAAqB,CAAC;AACtB;sBACqB;AACrB,qBAAoB,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC;qBACjC,IAAI,CAAC,SAAS;AAClC,yBAAwB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5E;AACA;AACA;SACQ,SAAS,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;aAC/C,MAAM,SAAS,GAAG;iBACd,OAAO,EAAE,sBAAsB;iBAC/B,QAAQ,EAAE,GAAG;AAC7B,iBAAgB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;cAChC;AACb,aAAY,IAAI,MAAM,KAAK,KAAK,EAAE;AAClC,iBAAgB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;qBACrB,aAAa,EAAE,IAAI;qBACnB,YAAY,EAAE,KAAK;qBACnB,SAAS,EAAE,KAAK;AACpC,kBAAiB,CAAC;AAClB;AACA,aAAY,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC;AAC3C;MACK;EACJ;AACD,CAAA,oBAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACxGA,CAAA,MAAM,CAAC,cAAc,CAAC8U,YAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,UAAU,GAAGhV,eAAiC,EAAA;CACpD,MAAM,MAAM,GAAGD,WAAkB,EAAA;CACjC,MAAM,MAAM,GAAGE,WAA6B,EAAA;CAC5C,MAAM,sBAAsB,GAAGC,2BAAiC,EAAA;AAChE,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,YAAY;KACrB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,gBAAgB,KAAK,KAAK,IAAI,YAAY,CAAC,oBAAoB,KAAK,SAAS,EAAE;AACnG,aAAY,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACtI;SACQ,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;AAChE,SAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AACrC,aAAY,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C;AACA,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;aAC7D,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AAC/F;SACQ,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChG,SAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;aACvB;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,SAAQ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AACvC,aAAY,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;iBAClB,mBAAmB,CAAC,IAAI,CAAC;AACzC;kBACiB;iBACD,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBAC1E,mBAAmB,CAAC,IAAI,CAAC;AACzC,iBAAgB,IAAI,CAAC,EAAE,CAAC,SAAS;qBACb,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC;iBAC/B,GAAG,CAAC,KAAK,EAAE;AAC3B;aACY,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB;AACA,SAAQ,SAAS,UAAU,CAAC,IAAI,EAAE;AAClC,aAAY,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;AACjG;AACA,SAAQ,SAAS,mBAAmB,CAAC,IAAI,EAAE;aAC/B,GAAG,CAAC,SAAS,CAAC;iBACV,OAAO,EAAE,YAAY;iBACrB,UAAU,EAAE,IAAI;iBAChB,QAAQ,EAAE,IAAI;cACjB,EAAE,KAAK,CAAC;AACrB;MACK;EACJ;AACD,CAAA8U,YAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACpDA,CAAA,MAAM,CAAC,cAAc,CAAC,iBAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGhV,WAAkB,EAAA;CACjC,MAAM,SAAS,GAAGD,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGE,WAA6B,EAAA;CAC5C,MAAM,MAAM,GAAGA,WAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,mBAAmB;KAC5B,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;KACpB,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;SACnB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACxD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,SAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;AACjC,cAAa,mBAAmB,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;AAC3D,kBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE;aAClD;AACZ;AACA,SAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,uBAAuB,IAAI,YAAY,CAAC,UAAU;SACrG,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,SAAQ,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,KAAK,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE;AACxE,aAAY,EAAE,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC;AACtE;AACA,SAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;AAC5B,SAAQ,yBAAyB,EAAE;SAC3B,SAAS,yBAAyB,GAAG;AAC7C,aAAY,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AACxC,iBAAgB,IAAI,eAAe;qBACf,uBAAuB,CAAC,GAAG,CAAC;AAChD,iBAAgB,IAAI,EAAE,CAAC,SAAS,EAAE;qBACd,kBAAkB,CAAC,GAAG,CAAC;AAC3C;sBACqB;qBACD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;qBACrB,kBAAkB,CAAC,GAAG,CAAC;AAC3C,qBAAoB,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACjC;AACA;AACA;AACA,SAAQ,SAAS,uBAAuB,CAAC,GAAG,EAAE;AAC9C,aAAY,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;iBAChC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC5B,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC5H;AACA;AACA;AACA,SAAQ,SAAS,kBAAkB,CAAC,GAAG,EAAE;aAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK;AAC5C,iBAAgB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;qBAC9E,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;qBACrD,IAAI,CAAC,WAAW,EAAE;yBACd,GAAG,CAAC,SAAS,CAAC;6BACV,OAAO,EAAE,mBAAmB;6BAC5B,UAAU,EAAE,GAAG;6BACf,QAAQ,EAAE,GAAG;AACzC,6BAA4B,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG;0BAChC,EAAE,KAAK,CAAC;AACjC;qBACoB,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,KAAK,KAAK,IAAI,EAAE;yBACvC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7E;0BACyB,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;AAC5D;AACA;AACA,yBAAwB,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5E;AACA,kBAAiB,CAAC;AAClB,cAAa,CAAC;AACd;MACK;EACJ;AACD,CAAA,iBAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACzEA,CAAA,MAAM,CAAC,cAAc,CAAC,GAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGD,WAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,KAAK;AAClB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,WAAW,EAAE,IAAI;KACjB,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;AACvC,SAAQ,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE;aAC3C,GAAG,CAAC,IAAI,EAAE;aACV;AACZ;SACQ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,GAAG,CAAC,SAAS,CAAC;aACV,OAAO,EAAE,KAAK;aACd,aAAa,EAAE,IAAI;aACnB,YAAY,EAAE,KAAK;aACnB,SAAS,EAAE,KAAK;UACnB,EAAE,KAAK,CAAC;AACjB,SAAQ,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;MAC9D;AACL,KAAI,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;EAC1C;AACD,CAAA,GAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACxBA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGA,WAAkB,EAAA;AACjC,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,UAAU,EAAE,OAAO;KACnB,WAAW,EAAE,IAAI;AACrB,KAAI,IAAI,EAAE,MAAM,CAAC,aAAa;AAC9B,KAAI,KAAK,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE;EACrD;AACD,CAAA,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGA,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,wCAAwC;KACjD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;EACjF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,UAAU,EAAE,OAAO;KACnB,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AACrD;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;SAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,aAAa;aACnD;SACJ,MAAM,MAAM,GAAG,MAAM;SACrB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;SACrC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;SACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,SAAQ,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AAClC;AACA,SAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;AAChC,SAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC3D,SAAS,aAAa,GAAG;aACrB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AACvC,iBAAgB,IAAI,MAAM;AAC1B,iBAAgB,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;AAC5D,qBAAoB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC3C;sBACqB;AACrB,qBAAoB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;yBACnB,OAAO,EAAE,OAAO;yBAChB,UAAU,EAAE,CAAC;yBACb,aAAa,EAAE,IAAI;sBACtB,EAAE,QAAQ,CAAC;AAChC;AACA,iBAAgB,IAAI,CAAC,GAAG,CAAC,EAAE;qBACP;AACpB,0BAAyB,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtE,0BAAyB,MAAM,CAAC,KAAK,EAAE,KAAK;0BACnB,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,0BAAyB,IAAI,EAAE;AAC/B;AACA,iBAAgB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM;AACvC,qBAAoB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AAC3C,qBAAoB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1C,qBAAoB,IAAI,MAAM;yBACN,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;AAClE,kBAAiB,CAAC;AAClB,cAAa,CAAC;AACd;MACK;EACJ;AACD,CAAA,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AC1DA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGC,WAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,OAAO;KAChB,UAAU,EAAE,OAAO;KACnB,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG;AACvC;AACA,SAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,aAAY,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;SAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;aACvB,IAAI,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,GAAG,CAAC;iBACtC;AAChB,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;AACpF,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB,aAAY,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,UAAS,CAAC;MACL;EACJ;AACD,CAAA,KAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;ACrBA,CAAA,MAAM,CAAC,cAAc,CAAC,GAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGA,cAAgC,EAAA;CAClD,MAAM,MAAM,GAAGD,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACpF,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;EAClF;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,IAAI;AACjB,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,WAAW,EAAE,IAAI;AACrB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC7C,SAAQ,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE;aACpE,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,2CAA2C,CAAC;AACxF;SACQ,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;SACrC,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;AAC7C,SAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;aACpB;SACJ,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;SACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,SAAQ,UAAU,EAAE;SACZ,GAAG,CAAC,KAAK,EAAE;AACnB,SAAQ,IAAI,OAAO,IAAI,OAAO,EAAE;aACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;AAChD,aAAY,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;AACvC,aAAY,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChG;cACa,IAAI,OAAO,EAAE;aACd,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AACpD;cACa;AACb,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AACxE;AACA,SAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACtC,SAAS,UAAU,GAAG;AAC9B,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC;iBACzB,OAAO,EAAE,IAAI;iBACb,aAAa,EAAE,IAAI;iBACnB,YAAY,EAAE,KAAK;iBACnB,SAAS,EAAE,KAAK;cACnB,EAAE,QAAQ,CAAC;AACxB,aAAY,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC;AACA,SAAQ,SAAS,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnD,aAAY,OAAO,MAAM;AACzB,iBAAgB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC;AACnE,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC3C,iBAAgB,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;AACtD,iBAAgB,IAAI,QAAQ;AAC5B,qBAAoB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvE;qBACoB,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;cAC3C;AACb;MACK;EACJ;AACD,CAAA,SAAS,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE;KAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;AACrC,KAAI,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC;AAC7E;AACA,CAAA,GAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;AChEA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAGC,WAA6B,EAAA;AAC5C,CAAA,MAAM,GAAG,GAAG;AACZ,KAAI,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC7B,KAAI,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;KACjC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE;AACxC,SAAQ,IAAI,YAAY,CAAC,EAAE,KAAK,SAAS;AACzC,aAAY,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;MAC9E;EACJ;AACD,CAAA,QAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;ACXA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,iBAAiB,GAAGA,sBAA4B,EAAA;CACtD,MAAM,aAAa,GAAGD,kBAAwB,EAAA;CAC9C,MAAM,OAAO,GAAGE,YAAkB,EAAA;CAClC,MAAM,WAAW,GAAGC,gBAAsB,EAAA;CAC1C,MAAM,UAAU,GAAGM,eAAqB,EAAA;CACxC,MAAM,cAAc,GAAGC,mBAAyB,EAAA;CAChD,MAAM,eAAe,GAAGN,oBAA0B,EAAA;CAClD,MAAM,sBAAsB,GAAGO,2BAAiC,EAAA;CAChE,MAAM,YAAY,GAAGM,iBAAuB,EAAA;CAC5C,MAAM,mBAAmB,GAAGL,wBAA8B,EAAA;CAC1D,MAAM,KAAK,GAAGC,UAAgB,EAAA;CAC9B,MAAM,OAAO,GAAGK,YAAkB,EAAA;CAClC,MAAM,OAAO,GAAGC,YAAkB,EAAA;CAClC,MAAM,OAAO,GAAGE,YAAkB,EAAA;CAClC,MAAM,IAAI,GAAGC,UAAe,EAAA;CAC5B,MAAM,UAAU,GAAGC,eAAqB,EAAA;AACxC,CAAA,SAAS,aAAa,CAAC,SAAS,GAAG,KAAK,EAAE;KACtC,MAAM,UAAU,GAAG;AACvB;SACQ,KAAK,CAAC,OAAO;SACb,OAAO,CAAC,OAAO;SACf,OAAO,CAAC,OAAO;SACf,OAAO,CAAC,OAAO;SACf,IAAI,CAAC,OAAO;SACZ,UAAU,CAAC,OAAO;AAC1B;SACQ,eAAe,CAAC,OAAO;SACvB,sBAAsB,CAAC,OAAO;SAC9B,cAAc,CAAC,OAAO;SACtB,YAAY,CAAC,OAAO;SACpB,mBAAmB,CAAC,OAAO;MAC9B;AACL;AACA,KAAI,IAAI,SAAS;SACT,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;AACnE;SACQ,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;AACnE,KAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AACvC,KAAI,OAAO,UAAU;AACrB;AACA,CAAA,UAAA,CAAA,OAAe,GAAG,aAAa;AAC/B;;;;;;;;;;;;;AC1CA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGtB,cAAgC,EAAA;AAClD,CAAA,MAAM,KAAK,GAAG;KACV,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC;KACnF,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;EACzE;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,QAAQ;AACrB,KAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KAC1B,UAAU,EAAE,QAAQ;KACpB,KAAK,EAAE,IAAI;AACf,KAAI,KAAK;AACT,KAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE;AACxB,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,GAAG;SACxD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3D,SAAQ,IAAI,CAAC,IAAI,CAAC,eAAe;aACrB;AACZ,SAAQ,IAAI,KAAK;AACjB,aAAY,mBAAmB,EAAE;AACjC;AACA,aAAY,cAAc,EAAE;SACpB,SAAS,mBAAmB,GAAG;aAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;AACnD,iBAAgB,GAAG,EAAE,IAAI,CAAC,OAAO;AACjC,iBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AACvC,cAAa,CAAC;aACF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;aACzE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;aAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC5C;AACA,aAAY,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtS,aAAY,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;aAC5D,SAAS,UAAU,GAAG;AAClC,iBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK;qBAC3B,OAAO,SAAS,CAAC,GAAG;AACxC,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrE;aACY,SAAS,UAAU,GAAG;AAClC,iBAAgB,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7C,uBAAsB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;AACvG,uBAAsB,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,iBAAgB,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;AAC/H,iBAAgB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtH;AACA;SACQ,SAAS,cAAc,GAAG;aACtB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACtC,IAAI,CAAC,SAAS,EAAE;AAC5B,iBAAgB,aAAa,EAAE;iBACf;AAChB;aACY,IAAI,SAAS,KAAK,IAAI;iBAClB;AAChB,aAAY,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC;aACtD,IAAI,OAAO,KAAK,QAAQ;AACpC,iBAAgB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;aAC9B,SAAS,aAAa,GAAG;AACrC,iBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;qBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;qBAC9B;AACpB;AACA,iBAAgB,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;iBAC7B,SAAS,UAAU,GAAG;qBAClB,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC,CAAC;AACpG;AACA;AACA,aAAY,SAAS,SAAS,CAAC,MAAM,EAAE;AACvC,iBAAgB,MAAM,IAAI,GAAG,MAAM,YAAY;AAC/C,uBAAsB,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM;uBAChC,IAAI,CAAC,IAAI,CAAC;2BACN,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACrG,2BAA0B,SAAS;iBACnB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBACzE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,EAAE,MAAM,YAAY,MAAM,CAAC,EAAE;qBAC1D,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AACzG;AACA,iBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;AAC9C;aACY,SAAS,cAAc,GAAG;AACtC,iBAAgB,IAAI,OAAO,SAAS,IAAI,QAAQ,IAAI,EAAE,SAAS,YAAY,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE;AACvG,qBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM;AACzC,yBAAwB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;AACtE,qBAAoB,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE;AACA,iBAAgB,OAAO,OAAO,MAAM,IAAI,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACvI;AACA;MACK;EACJ;AACD,CAAA,MAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;AC1FA,CAAA,MAAM,CAAC,cAAc,CAAC0V,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,QAAQ,GAAG1V,eAAmB,EAAA;AACpC,CAAA,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;AACjC,CAAA0V,QAAA,CAAA,OAAe,GAAG,MAAM;AACxB;;;;;;;;;;;ACJA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAA,QAAA,CAAA,iBAAyB,GAAG,QAAA,CAAA,kBAA0B,GAAG,MAAM;AAC/D,CAAA,QAAA,CAAA,kBAA0B,GAAG;AAC7B,KAAI,OAAO;AACX,KAAI,aAAa;AACjB,KAAI,SAAS;AACb,KAAI,YAAY;AAChB,KAAI,UAAU;AACd,KAAI,WAAW;AACf,KAAI,UAAU;EACb;AACD,CAAA,QAAA,CAAA,iBAAyB,GAAG;AAC5B,KAAI,kBAAkB;AACtB,KAAI,iBAAiB;AACrB,KAAI,eAAe;EAClB;AACD;;;;;;;;;AChBA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,MAAM,GAAG1V,WAAiB,EAAA;CAChC,MAAM,YAAY,GAAGD,iBAAuB,EAAA;CAC5C,MAAM,YAAY,GAAGE,iBAAuB,EAAA;CAC5C,MAAM,QAAQ,GAAGC,aAAmB,EAAA;CACpC,MAAM,UAAU,GAAGM,eAAqB,EAAA;AACxC,CAAA,MAAM,kBAAkB,GAAG;KACvB,MAAM,CAAC,OAAO;KACd,YAAY,CAAC,OAAO;AACxB,KAAI,IAAI,YAAY,CAAC,OAAO,GAAG;KAC3B,QAAQ,CAAC,OAAO;KAChB,UAAU,CAAC,kBAAkB;KAC7B,UAAU,CAAC,iBAAiB;EAC/B;AACD,CAAA,MAAA,CAAA,OAAe,GAAG,kBAAkB;AACpC;;;;;;;;;;;;;ACfA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAkB,KAAA,CAAA,UAAA,GAAG,MAAM;AAC3B,CAAA,IAAI,UAAU;CACd,CAAC,UAAU,UAAU,EAAE;AACvB,KAAI,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK;AAC7B,KAAI,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS;EACpC,EAAE,UAAU,KAAK,KAAA,CAAA,UAAkB,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;AACxD;;;;;;;;;ACPA,CAAA,MAAM,CAAC,cAAc,CAAC,aAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,MAAM,SAAS,GAAGR,cAAgC,EAAA;CAClD,MAAM,OAAO,GAAGD,YAAiC,EAAA;CACjD,MAAM,SAAS,GAAGE,cAAwB,EAAA;CAC1C,MAAM,WAAW,GAAGC,gBAAkC,EAAA;CACtD,MAAM,MAAM,GAAGM,WAA6B,EAAA;AAC5C,CAAA,MAAM,KAAK,GAAG;AACd,KAAI,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,KAAK,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;AACxF,WAAU,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB;AAC1C,WAAU,CAAC,cAAc,EAAE,OAAO,CAAC,kBAAkB,CAAC;AACtD,KAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;EACrI;AACD,CAAA,MAAM,GAAG,GAAG;KACR,OAAO,EAAE,eAAe;KACxB,IAAI,EAAE,QAAQ;KACd,UAAU,EAAE,QAAQ;AACxB,KAAI,KAAK;KACL,IAAI,CAAC,GAAG,EAAE;AACd,SAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG;AAC3D,SAAQ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY;AACtC,SAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;AACpC,aAAY,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AAC3E;AACA,SAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY;AAC3C,SAAQ,IAAI,OAAO,OAAO,IAAI,QAAQ;AACtC,aAAY,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;SAC3D,IAAI,MAAM,CAAC,OAAO;AAC1B,aAAY,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;SAC9D,IAAI,CAAC,KAAK;AAClB,aAAY,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;SAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AAC7C,SAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;SAC9F,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,MAAM,eAAe,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AACnK,SAAQ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;SACb,SAAS,eAAe,GAAG;AACnC,aAAY,MAAM,OAAO,GAAG,UAAU,EAAE;AACxC,aAAY,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB,aAAY,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;iBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrE,iBAAgB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE;aACY,GAAG,CAAC,IAAI,EAAE;AACtB,aAAY,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;aAC1E,GAAG,CAAC,KAAK,EAAE;AACvB;AACA,SAAQ,SAAS,cAAc,CAAC,UAAU,EAAE;aAChC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5C,aAAY,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC;aACtE,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;AACtD,aAAY,OAAO,MAAM;AACzB;SACQ,SAAS,UAAU,GAAG;AAC9B,aAAY,IAAI,EAAE;aACN,MAAM,YAAY,GAAG,EAAE;AACnC,aAAY,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC;aAC7C,IAAI,WAAW,GAAG,IAAI;AAClC,aAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,iBAAgB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAClC,iBAAgB,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnI,qBAAoB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI;qBACpB,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;AAC/F,qBAAoB,IAAI,GAAG,YAAY,SAAS,CAAC,SAAS;AAC1D,yBAAwB,GAAG,GAAG,GAAG,CAAC,MAAM;qBACpB,IAAI,GAAG,KAAK,SAAS;AACzC,yBAAwB,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;AAC1F;AACA,iBAAgB,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;AAChJ,iBAAgB,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;qBAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,8EAA8E,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChI;iBACgB,WAAW,GAAG,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9E,iBAAgB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC;aACY,IAAI,CAAC,WAAW;iBACZ,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/E,aAAY,OAAO,YAAY;AAC/B,aAAY,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;AAC/C,iBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5E;AACA,aAAY,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;AACzC,iBAAgB,IAAI,GAAG,CAAC,KAAK,EAAE;AAC/B,qBAAoB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5C;AACA,sBAAqB,IAAI,GAAG,CAAC,IAAI,EAAE;AACnC,qBAAoB,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE;AACrD,yBAAwB,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C;AACA;sBACqB;qBACD,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACzG;AACA;AACA,aAAY,SAAS,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE;iBAC7B,IAAI,OAAO,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,YAAY,EAAE;qBACzD,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAChG;AACA,iBAAgB,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC1C;AACA;MACK;EACJ;AACD,CAAA,aAAA,CAAA,OAAe,GAAG,GAAG;AACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECtGA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,OAA0B,CAAA,eAAA,GAAA,OAAA,CAAA,eAAA,GAA0B,OAAkB,CAAA,OAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAc,CAAA,GAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,cAAc,OAAY,CAAA,CAAA,GAAA,OAAA,CAAA,UAAA,GAAqB,OAAc,CAAA,GAAA,GAAA,MAAM;EAC1L,MAAM,MAAM,GAAGR,aAAiB,EAAA;EAChC,MAAM,QAAQ,GAAGD,aAAgC,EAAA;EACjD,MAAM,eAAe,GAAGE,oBAAuC,EAAA;EAC/D,MAAM,gBAAgB,GAAG,UAA2C;AACpE,EAAA,MAAM,iBAAiB,GAAG,CAAC,aAAa,CAAC;EACzC,MAAM,cAAc,GAAG,wCAAwC;AAC/D,EAAA,MAAM,GAAG,SAAS,MAAM,CAAC,OAAO,CAAC;AACjC,MAAI,gBAAgB,GAAG;UACf,KAAK,CAAC,gBAAgB,EAAE;AAChC,UAAQ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9D,UAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa;AACnC,cAAY,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC;AACpD;AACA,MAAI,qBAAqB,GAAG;UACpB,KAAK,CAAC,qBAAqB,EAAE;AACrC,UAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;cACf;AACZ,UAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;AACrC,gBAAc,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,iBAAiB;AACtE,gBAAc,gBAAgB;UACtB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC;AAC7D,UAAQ,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,GAAG,cAAc;AACnE;AACA,MAAI,WAAW,GAAG;AAClB,UAAQ,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW;AACrC,cAAY,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,SAAS,CAAC;AAChG;AACA;AACA,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;EACjB,MAAiB,CAAA,OAAA,GAAA,OAAO,GAAG,GAAG;AAC9B,EAAA,MAAA,CAAA,OAAA,CAAA,GAAA,GAAqB,GAAG;EACxB,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,OAAA,GAAkB,GAAG;EACrB,IAAI,UAAU,GAAGO,eAA6B,EAAA;EAC9C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;EACtH,IAAI,SAAS,GAAGC,cAA4B,EAAA;EAC5C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACnG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;EACnH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;EACvG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACzG,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EAC/G,IAAI,kBAAkB,GAAGN,uBAAqC,EAAA;EAC9D,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EAChI,IAAI,WAAW,GAAGO,gBAA8B,EAAA;EAChD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AACzH;;;;;;;;;;;EChDA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,qBAAA,GAAgC,MAAM;EACtC,MAAM,KAAK,GAAGV,UAAc,EAAA;EAC5B,MAAM,SAAS,GAAGD,cAAmC,EAAA;AACrD,EAAA,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS;AAC/B,EAAA,MAAM,IAAI,GAAG;AACb,MAAI,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;AAC7D,MAAI,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE;AAC7D,MAAI,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;AACrE,MAAI,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;GACpE;AACD,EAAA,MAAM,KAAK,GAAG;AACd,MAAI,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7G,MAAI,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;GACrH;EACD,OAAgC,CAAA,qBAAA,GAAA;AAChC,MAAI,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;MAC1B,IAAI,EAAE,QAAQ;MACd,UAAU,EAAE,QAAQ;MACpB,KAAK,EAAE,IAAI;AACf,MAAI,KAAK;MACL,IAAI,CAAC,GAAG,EAAE;AACd,UAAQ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG;AAC1D,UAAQ,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;AACjC,UAAQ,IAAI,CAAC,IAAI,CAAC,eAAe;cACrB;UACJ,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;UACjF,IAAI,IAAI,CAAC,KAAK;AACtB,cAAY,mBAAmB,EAAE;AACjC;AACA,cAAY,cAAc,EAAE;UACpB,SAAS,mBAAmB,GAAG;cAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;AACnD,kBAAgB,GAAG,EAAE,IAAI,CAAC,OAAO;AACjC,kBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;AACvC,eAAa,CAAC;AACd,cAAY,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxF,cAAY,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,kBAAkB,CAAC,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,sBAAsB,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACjN;UACQ,SAAS,cAAc,GAAG;AAClC,cAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;cAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC/C,cAAY,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI;kBAC1B;AAChB,cAAY,IAAI,OAAO,MAAM,IAAI,QAAQ;kBACzB,MAAM,YAAY,MAAM;AACxC,kBAAgB,OAAO,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE;AACrD,kBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,oCAAoC,CAAC,CAAC;AACtG;cACY,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE;kBAClC,GAAG,EAAE,MAAM;kBACX,GAAG,EAAE,MAAM;AAC3B,kBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS;AAClI,eAAa,CAAC;cACF,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC3C;AACA,UAAQ,SAAS,WAAW,CAAC,GAAG,EAAE;AAClC,cAAY,OAAO,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACpG;OACK;AACL,MAAI,YAAY,EAAE,CAAC,QAAQ,CAAC;GAC3B;AACD,EAAA,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK;AACnC,MAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,CAAC;AACjD,MAAI,OAAO,GAAG;GACb;AACD,EAAA,OAAA,CAAA,OAAA,GAAkB,iBAAiB;AACnC;;;;;;;;;;;ECnEA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC7D,MAAM,SAAS,GAAGC,cAAoB,EAAA;EACtC,MAAM,OAAO,GAAGD,YAAkB,EAAA;EAClC,MAAM,SAAS,GAAGE,cAAmC,EAAA;EACrD,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;EAClD,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AAClD,EAAA,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK;AAC1D,MAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;UACrB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC9D,UAAQ,OAAO,GAAG;AAClB;MACI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;MAC1H,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,WAAW;MAClD,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;MAC1C,IAAI,IAAI,CAAC,QAAQ;UACb,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACjC,MAAI,OAAO,GAAG;GACb;EACD,aAAa,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,KAAK;AAC7C,MAAI,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW;AACnF,MAAI,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;MACvB,IAAI,CAAC,CAAC;UACF,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD,MAAI,OAAO,CAAC;GACX;EACD,SAAS,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE;AAC/C,MAAI,IAAI,EAAE;AACV,MAAI,IAAI,EAAE;AACV,MAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,oCAAoC,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5J,MAAI,KAAK,MAAM,CAAC,IAAI,IAAI;UAChB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/B;EACA,MAAiB,CAAA,OAAA,GAAA,OAAO,GAAG,aAAa;EACxC,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,OAAA,GAAkB,aAAa;AAC/B;;;;;;;;ACpCA;AACA;AACA;AAGA,SAAS,wBAAwB,GAAG;AACpC,IAAI,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACxB,QAAQ,MAAM,EAAE,KAAK;AACrB,QAAQ,eAAe,EAAE,IAAI;AAC7B,QAAQ,cAAc,EAAE,KAAK;AAC7B,QAAQ,SAAS,EAAE;AACnB,KAAK,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,WAAW;AAClC,IAAI,UAAU,CAAC,GAAG,CAAC;AACnB,IAAI,OAAO,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,wBAAwB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB;AACA,QAAQ,MAAM,YAAY,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK;AACtE,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3E,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACvC,QAAQ,OAAO,CAAC,KAAK,KAAK;AAC1B,YAAY,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAC7C,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO;AACvB,oBAAoB,KAAK,EAAE,IAAI;AAC/B,oBAAoB,IAAI,EAAE,KAAK;AAC/B,oBAAoB,YAAY,EAAE;AAClC,iBAAiB;AACjB;AACA,iBAAiB;AACjB,gBAAgB,OAAO;AACvB,oBAAoB,KAAK,EAAE,KAAK;AAChC,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM;AAC1E,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,oBAAoB,EAAE,OAAO,EAAE;AAChF;AACA,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO;AAC3C;AACA,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,GAAG,OAAO;AACtB;AACA;AACA,YAAY,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC3F,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,eAAe,CAAC;AACpH;AACA,QAAQ,MAAM,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5E;AACA,QAAQ,WAAW,MAAM,OAAO,IAAI,MAAM,EAAE;AAC5C;AACA,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,EAAE;AACxD,gBAAgB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;AAC7C;AACA,gBAAgB,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAClE,oBAAoB,MAAM;AAC1B,wBAAwB,IAAI,EAAE,OAAO;AACrC,wBAAwB,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC;AACtJ,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC9C,oBAAoB,IAAI;AACxB;AACA,wBAAwB,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;AACpF,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrD,4BAA4B,MAAM;AAClC,gCAAgC,IAAI,EAAE,OAAO;AAC7C,gCAAgC,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,4DAA4D,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAC3K,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACA,oBAAoB,OAAO,KAAK,EAAE;AAClC,wBAAwB,IAAI,KAAK,YAAY,QAAQ,EAAE;AACvD,4BAA4B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1D,4BAA4B;AAC5B;AACA,wBAAwB,MAAM;AAC9B,4BAA4B,IAAI,EAAE,OAAO;AACzC,4BAA4B,KAAK,EAAE,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,uCAAuC,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3K,yBAAyB;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,YAAY,MAAM,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE;AACvD;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AACtC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;AAClD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC;AACzE;AACA;;ACtLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;AAC5E,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG;AACA,IAAI,QAAQ,MAAM;AAClB,QAAQ,KAAK,YAAY;AACzB,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;AACvC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,6DAA6D,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvH;AACA,YAAY;AAIZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;AAChF,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG;AACA,IAAI,QAAQ,MAAM;AAClB,QAAQ,KAAK,wBAAwB;AACrC,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE;AACnD,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,yEAAyE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACnI;AACA,YAAY;AACZ,QAAQ,KAAK,oBAAoB;AACjC,YAAY,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE;AAC/C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,qEAAqE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/H;AACA,YAAY;AAIZ;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE;AAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;AAC5D,QAAQ;AACR;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE;AAChG,QAAQ,MAAM,GAAG,GAAG,IAAI;AACxB,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU;AACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,YAAY,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;AACzC;AACA,YAAY,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE;AACvG,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO;AAC7C;AACA;AACA,YAAY,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;AACxC,gBAAgB,wBAAwB,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9D;AACA;AACA;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AACxC;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;AAC1C,gBAAgB,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC;AACnD;AACA;AACA;AACA;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE;AACxC;AACA,YAAY,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE;AAC1C,gBAAgB,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,4BAA4B,CAAC,YAAY,EAAE;AAC3D,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;AAClE;AACA,IAAI,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,KAAK,SAAS;AAC7D,IAAI,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,KAAK,SAAS;AAC3D;AACA,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,KAAK,CAAC,iBAAiB,IAAI,CAAC,gBAAgB,CAAC;AAC3F,IAAI,MAAM,eAAe,GAAG,gBAAgB;AAC5C,IAAI,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,MAAM,SAAS,QAAQ,CAAC;AACrC;AACA;AACA;AACA,IAAI,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE;AACtC,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC,QAAQ,IAAI,CAAC,2BAA2B,GAAG,IAAI,GAAG,EAAE;AACpD,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAE;AAC9C,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,GAAG,EAAE;AACjD,QAAQ,IAAI,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAE;AACnD,QAAQ,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,YAAY,IAAI,EAAE;AACxD,QAAQ,IAAI,CAAC,oBAAoB,GAAG,OAAO,EAAE,mBAAmB,IAAI,IAAI,sBAAsB,EAAE;AAChG;AACA,QAAQ,IAAI,OAAO,EAAE,WAAW,EAAE;AAClC,YAAY,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAyB,CAAC,MAAM,EAAE;AACtC,QAAQ,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,WAAW,EAAE;AAC1E,YAAY,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,iCAAiC,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY;AAChH,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE;AACrD,gBAAgB,OAAO,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE;AAC9E,YAAY,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,mCAAmC,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY;AACtH,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AACvD,gBAAgB,OAAO,MAAM,CAAC,OAAO;AACrC,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE;AAClF,YAAY,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,qCAAqC,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY;AAC5H,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE;AACzD,gBAAgB,OAAO,MAAM,CAAC,SAAS;AACvC,aAAa,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY,IAAI,CAAC,aAAa,GAAG;AACjC,gBAAgB,KAAK,EAAE,IAAI,uBAAuB,CAAC,IAAI;AACvD,aAAa;AACb;AACA,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,YAAY,EAAE;AACvC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;AACzF;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC;AAChF;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,aAAa,EAAE,OAAO,EAAE;AAC9C,QAAQ,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC;AACnD,QAAQ,MAAM,YAAY,GAAG,KAAK,EAAE,MAAM;AAC1C,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;AACjE;AACA;AACA,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE;AACtC,YAAY,MAAM,QAAQ,GAAG,YAAY;AACzC,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG;AAC5C,YAAY,WAAW,GAAG,KAAK,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK;AACxD;AACA,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,YAAY;AACzC,YAAY,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI;AAC3C,YAAY,WAAW,GAAG,SAAS,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC5D;AACA,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC7C,YAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACrE;AACA,QAAQ,MAAM,MAAM,GAAG,WAAW;AAClC,QAAQ,IAAI,MAAM,KAAK,oBAAoB,EAAE;AAC7C,YAAY,MAAM,cAAc,GAAG,OAAO,OAAO,EAAE,KAAK,KAAK;AAC7D,gBAAgB,MAAM,gBAAgB,GAAGwD,WAAS,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAChF,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/C;AACA,oBAAoB,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,YAAY,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAClJ,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC,CAAC;AAC/G;AACA,gBAAgB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI;AACxD,gBAAgB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM;AACnD,gBAAgB,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAC1H,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,gBAAgB,EAAE;AACjE,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,wDAAwD,CAAC;AACzH;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;AAC/D,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,uDAAuD,CAAC;AACxH;AACA,gBAAgB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7E;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE;AACjC,oBAAoB,MAAM,oBAAoB,GAAGA,WAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;AAC1F,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;AACvD,wBAAwB,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,YAAY;AACnF,8BAA8B,oBAAoB,CAAC,KAAK,CAAC;AACzD,8BAA8B,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAChE,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC,CAAC;AACpH;AACA,oBAAoB,OAAO,oBAAoB,CAAC,IAAI;AACpD;AACA;AACA,gBAAgB,MAAM,gBAAgB,GAAGA,WAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;AAC9E,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/C;AACA,oBAAoB,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,YAAY,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAClJ,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC,CAAC;AAC9G;AACA,gBAAgB,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI;AAC7D,gBAAgB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,CAAC,eAAe,GAAG,SAAS;AACnG,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe,CAAC,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,OAAO,IAAI,eAAe,EAAE;AACjI,oBAAoB,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE;AAC7E,wBAAwB,IAAI;AAC5B,4BAA4B,wBAAwB,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC;AAC9F;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,OAAO,eAAe;AACtC,aAAa;AACb;AACA,YAAY,OAAO,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC;AACzE;AACA,QAAQ,IAAI,MAAM,KAAK,wBAAwB,EAAE;AACjD,YAAY,MAAM,cAAc,GAAG,OAAO,OAAO,EAAE,KAAK,KAAK;AAC7D,gBAAgB,MAAM,gBAAgB,GAAGA,WAAS,CAAC,0BAA0B,EAAE,OAAO,CAAC;AACvF,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/C,oBAAoB,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,YAAY,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAClJ,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC,CAAC;AAC5G;AACA,gBAAgB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI;AACxD,gBAAgB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC7E;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,EAAE;AACjC,oBAAoB,MAAM,oBAAoB,GAAGA,WAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;AAC1F,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE;AACvD,wBAAwB,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,YAAY;AACnF,8BAA8B,oBAAoB,CAAC,KAAK,CAAC;AACzD,8BAA8B,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAChE,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC,CAAC;AACpH;AACA,oBAAoB,OAAO,oBAAoB,CAAC,IAAI;AACpD;AACA;AACA,gBAAgB,MAAM,gBAAgB,GAAGA,WAAS,CAAC,yBAAyB,EAAE,MAAM,CAAC;AACrF,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/C,oBAAoB,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,YAAY,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAClJ,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC,CAAC;AAC3G;AACA,gBAAgB,OAAO,gBAAgB,CAAC,IAAI;AAC5C,aAAa;AACb;AACA,YAAY,OAAO,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC;AACzE;AACA;AACA,QAAQ,OAAO,KAAK,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC;AAC9D;AACA,IAAI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,EAAE;AACrD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA;AACA,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACtC;AACA;AACA,QAAQ,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE;AAC/C,YAAY;AACZ;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAC9C,gBAAgB,MAAM,EAAE,YAAY;AACpC,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,eAAe,EAAE,uBAAuB;AAC5D,oBAAoB,YAAY,EAAE,IAAI,CAAC,aAAa;AACpD,oBAAoB,UAAU,EAAE,IAAI,CAAC;AACrC;AACA,aAAa,EAAE,sBAAsB,EAAE,OAAO,CAAC;AAC/C,YAAY,IAAI,MAAM,KAAK,SAAS,EAAE;AACtC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC,CAAC;AACnF;AACA,YAAY,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;AAC/E,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AACxG;AACA,YAAY,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,YAAY;AAC1D,YAAY,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU;AACnD;AACA,YAAY,IAAI,SAAS,CAAC,kBAAkB,EAAE;AAC9C,gBAAgB,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC;AACpE;AACA,YAAY,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY;AACpD,YAAY,MAAM,IAAI,CAAC,YAAY,CAAC;AACpC,gBAAgB,MAAM,EAAE;AACxB,aAAa,CAAC;AACd;AACA,YAAY,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChD,gBAAgB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,yBAAyB,CAAC;AAC9E,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,SAAS;AAC1D;AACA;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAY,MAAM,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,mBAAmB;AACvC;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC;AACA,IAAI,yBAAyB,CAAC,MAAM,EAAE;AACtC,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,kBAAkB;AACnC,gBAAgB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE;AACxD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/F;AACA,gBAAgB;AAChB,YAAY,KAAK,aAAa;AAC9B,YAAY,KAAK,cAAc;AAC/B,gBAAgB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE;AACxD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/F;AACA,gBAAgB;AAChB,YAAY,KAAK,gBAAgB;AACjC,YAAY,KAAK,0BAA0B;AAC3C,YAAY,KAAK,gBAAgB;AACjC,YAAY,KAAK,qBAAqB;AACtC,YAAY,KAAK,uBAAuB;AACxC,gBAAgB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,EAAE;AAC1D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjG;AACA,gBAAgB,IAAI,MAAM,KAAK,qBAAqB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,EAAE;AACvG,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,6DAA6D,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9G;AACA,gBAAgB;AAChB,YAAY,KAAK,YAAY;AAC7B,YAAY,KAAK,YAAY;AAC7B,gBAAgB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE;AACtD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7F;AACA,gBAAgB;AAChB,YAAY,KAAK,qBAAqB;AACtC,gBAAgB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE;AAC5D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,kDAAkD,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACnG;AACA,gBAAgB;AAOhB;AACA;AACA,IAAI,4BAA4B,CAAC,MAAM,EAAE;AACzC,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,kCAAkC;AACnD,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE;AAC5D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,uEAAuE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxH;AACA,gBAAgB;AAUhB;AACA;AACA,IAAI,8BAA8B,CAAC,MAAM,EAAE;AAC3C;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY;AACZ;AACA,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,wBAAwB;AACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAClD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,0DAA0D,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3G;AACA,gBAAgB;AAChB,YAAY,KAAK,oBAAoB;AACrC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AACrD,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,6DAA6D,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9G;AACA,gBAAgB;AAChB,YAAY,KAAK,YAAY;AAC7B,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC/C,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,uDAAuD,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,gBAAgB;AAChB,YAAY,KAAK,WAAW;AAC5B,YAAY,KAAK,YAAY;AAC7B,YAAY,KAAK,cAAc;AAC/B,YAAY,KAAK,cAAc;AAC/B,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC/C,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,uDAAuD,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,gBAAgB;AAIhB;AACA;AACA,IAAI,oBAAoB,CAAC,MAAM,EAAE;AACjC,QAAQ,6BAA6B,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;AAClG;AACA,IAAI,2BAA2B,CAAC,MAAM,EAAE;AACxC;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY;AACZ;AACA,QAAQ,iCAAiC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC/F;AACA,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC;AAC3E;AACA,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,OAAO,CAAC;AACrG;AACA,IAAI,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC;AAC1G;AACA,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC;AAC9F;AACA,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,uBAAuB,EAAE,OAAO,CAAC;AACjG;AACA,IAAI,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,yBAAyB,EAAE,OAAO,CAAC;AACrG;AACA,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE;AACjD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,iCAAiC,EAAE,OAAO,CAAC;AACvH;AACA,IAAI,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,wBAAwB,EAAE,OAAO,CAAC;AACpG;AACA,IAAI,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC;AAClG;AACA,IAAI,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,oBAAoB,EAAE,OAAO,EAAE;AACzE;AACA,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAClD,YAAY,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;AACxK;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC;AAClG;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC;AAClE,QAAQ,IAAI,SAAS,EAAE;AACvB;AACA,YAAY,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AAC9D,gBAAgB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;AAC9I;AACA;AACA,YAAY,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC1C,gBAAgB,IAAI;AACpB;AACA,oBAAoB,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAChF,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACjD,wBAAwB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,4DAA4D,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;AACnK;AACA;AACA,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,IAAI,KAAK,YAAY,QAAQ,EAAE;AACnD,wBAAwB,MAAM,KAAK;AACnC;AACA,oBAAoB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,uCAAuC,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnK;AACA;AACA;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,UAAU,CAAC,QAAQ,EAAE;AACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;AACrE,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1D;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE;AAChD,QAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;AAC1C,QAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE;AAC7C,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC;AACA,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/F,gBAAgB,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;AAC9E;AACA;AACA,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW;AAC3D,YAAY,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,UAAU,EAAE;AAC1E,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACzD;AACA,YAAY,IAAI,WAAW,KAAK,UAAU,EAAE;AAC5C,gBAAgB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,QAAQ,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7D;AACA,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC;AAC3G;AACA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5C,QAAQ,OAAO,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7E;AACA,QAAQ,MAAM,WAAW,GAAG,4BAA4B,CAAC,SAAS,CAAC,OAAO,CAAC;AAC3E,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAClC,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACpG;AACA;AACA,QAAQ,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;AACrD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,kDAAkD,CAAC,CAAC;AACpG;AACA,QAAQ,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC,IAAI;AAC5D,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO;AACrC,QAAQ,MAAM,OAAO,GAAG,YAAY;AACpC,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,gBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC;AACrC,gBAAgB;AAChB;AACA,YAAY,IAAI;AAChB,gBAAgB,MAAM,KAAK,GAAG,MAAM,OAAO,EAAE;AAC7C,gBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;AACtC;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3E,gBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;AACtC;AACA,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,MAAM;AAC9B,YAAY,IAAI,UAAU,EAAE;AAC5B;AACA,gBAAgB,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnF,gBAAgB,IAAI,aAAa,EAAE;AACnC,oBAAoB,YAAY,CAAC,aAAa,CAAC;AAC/C;AACA;AACA,gBAAgB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC;AAC7D,gBAAgB,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AACpE;AACA,iBAAiB;AACjB;AACA,gBAAgB,OAAO,EAAE;AACzB;AACA,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,CAAC;AAChE;AACA,IAAI,MAAM,oBAAoB,GAAG;AACjC,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;AAChF;AACA;;AC5mBA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,CAAC,OAAO,EAAE;AAC1C,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ,OAAO,EAAE;AACjB,IAAI,IAAI,OAAO,YAAY,OAAO,EAAE;AACpC,QAAQ,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACpD;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAChC,QAAQ,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;AAC1C;AACA,IAAI,OAAO,EAAE,GAAG,OAAO,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,EAAE;AACjE,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,OAAO,SAAS;AACxB;AACA;AACA,IAAI,OAAO,OAAO,GAAG,EAAE,IAAI,KAAK;AAChC,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,GAAG,QAAQ;AACvB,YAAY,GAAG,IAAI;AACnB;AACA,YAAY,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC;AAC7H,SAAS;AACT,QAAQ,OAAO,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;AACzC,KAAK;AACL;;ACrCA,IAAI2S,QAAM;AACVA,QAAM;AACN,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS;AAChC,QAAQ,UAAU,CAAC,MAAM;AACzB,QAAQ,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,CAAC,IAAI,EAAE;AACrC,IAAI,OAAO,CAAC,MAAMA,QAAM,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM,CAAC,IAAI,EAAE;AAC5B,IAAI,MAAM,IAAI,GAAG,oEAAoE;AACrF,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC;AACnD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC;AACA,QAAQ,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM;AACxD,QAAQ,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;AACnC;AACA,IAAI,OAAO,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,CAAC,MAAM,EAAE;AACxC,IAAI,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACO,eAAe,iBAAiB,CAAC,aAAa,EAAE;AACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAMA,QAAM,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACzG;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAC9D,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG;AAC3B,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG;AAC3B,SAAS,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1B;AACA;AACA;AACA;AACA;AACe,eAAe,aAAa,CAAC,MAAM,EAAE;AACpD,IAAI,IAAI,CAAC,MAAM;AACf,QAAQ,MAAM,GAAG,EAAE;AACnB,IAAI,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,EAAE;AACrC,QAAQ,MAAM,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC,CAAC;AACzE;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC;AACnD,IAAI,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC;AACvD,IAAI,OAAO;AACX,QAAQ,aAAa,EAAE,QAAQ;AAC/B,QAAQ,cAAc,EAAE,SAAS;AACjC,KAAK;AACL;;AChEA;AACA;AACA;AACO,MAAM,aAAa,GAAGC,GACrB;AACR,KAAK,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC;AACrB,YAAY,IAAI,EAAEC,YAAc,CAAC,MAAM;AACvC,YAAY,OAAO,EAAE,uBAAuB;AAC5C,YAAY,KAAK,EAAE;AACnB,SAAS,CAAC;AACV,QAAQ,OAAOC,KAAO;AACtB;AACA,CAAC;AACD,KAAK,MAAM,CAAC,GAAG,IAAI;AACnB,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC1B,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,aAAa,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW;AAC/F,CAAC,EAAE,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;AACzE;AACA;AACA;AACO,MAAM,oCAAoC,GAAGhF,WAAa,CAAC;AAClE,IAAI,QAAQ,EAAEF,MAAQ,EAAE,CAAC,GAAG,EAAE;AAC9B,IAAI,qBAAqB,EAAEQ,KAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,QAAQ,EAAER,MAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AACzC,IAAI,gBAAgB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpD,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,qCAAqC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzE,IAAI,aAAa,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACxC,IAAI,sBAAsB,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACjD,IAAI,mBAAmB,EAAEA,MAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AACpD,IAAI,gBAAgB,EAAEA,MAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AACjD,IAAI,0CAA0C,EAAEW,OAAS,EAAE,CAAC,QAAQ,EAAE;AACtE,IAAI,qCAAqC,EAAEH,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzE,IAAI,iCAAiC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACrE,IAAI,iCAAiC,EAAEW,OAAS,EAAE,CAAC,QAAQ;AAC3D,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,mBAAmB,GAAGT,WAAa,CAAC;AACjD,IAAI,MAAM,EAAEF,MAAQ,EAAE;AACtB,IAAI,sBAAsB,EAAE,aAAa;AACzC,IAAI,cAAc,EAAE,aAAa;AACjC,IAAI,qBAAqB,EAAE,aAAa,CAAC,QAAQ,EAAE;AACnD,IAAI,gBAAgB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpD,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC;AACjD,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,qBAAqB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzD,IAAI,qCAAqC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzE,IAAI,gDAAgD,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpF,IAAI,qBAAqB,EAAE,aAAa,CAAC,QAAQ,EAAE;AACnD,IAAI,mBAAmB,EAAE,aAAa,CAAC,QAAQ,EAAE;AACjD,IAAI,0CAA0C,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC9E,IAAI,qDAAqD,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzF,IAAI,sBAAsB,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACjD,IAAI,6CAA6C,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACjF,IAAI,wDAAwD,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5F,IAAI,gCAAgC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpE,IAAI,qCAAqC,EAAEW,OAAS,EAAE,CAAC,QAAQ;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACO,MAAM,4BAA4B,GAAGT,WAAa,CAAC;AAC1D,IAAI,MAAM,EAAEF,MAAQ,EAAE;AACtB,IAAI,sBAAsB,EAAE,aAAa;AACzC,IAAI,cAAc,EAAE,aAAa;AACjC,IAAI,iBAAiB,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC/C,IAAI,QAAQ,EAAE,aAAa;AAC3B,IAAI,qBAAqB,EAAE,aAAa,CAAC,QAAQ,EAAE;AACnD,IAAI,gBAAgB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpD,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC;AACjD,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,qBAAqB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzD,IAAI,oBAAoB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACxD,IAAI,uBAAuB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC;AAChD,IAAI,qCAAqC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC;AAC9D,IAAI,wCAAwC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5E,IAAI,wCAAwC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5E,IAAI,qCAAqC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzE,IAAI,wCAAwC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5E,IAAI,wCAAwC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5E,IAAI,2CAA2C,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC/E,IAAI,8CAA8C,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAClF,IAAI,8CAA8C,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAClF,IAAI,qCAAqC,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzE,IAAI,gDAAgD,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpF,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,qBAAqB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACzD,IAAI,gBAAgB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACpD,IAAI,qBAAqB,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChD,IAAI,wBAAwB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5D,IAAI,oBAAoB,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AACxD,IAAI,0BAA0B,EAAEW,OAAS,EAAE,CAAC,QAAQ,EAAE;AACtD,IAAI,2BAA2B,EAAEA,OAAS,EAAE,CAAC,QAAQ,EAAE;AACvD,IAAI,+BAA+B,EAAEA,OAAS,EAAE,CAAC,QAAQ,EAAE;AAC3D,IAAI,gCAAgC,EAAEA,OAAS,EAAE,CAAC,QAAQ,EAAE;AAC5D,IAAI,aAAa,EAAE,aAAa,CAAC,QAAQ,EAAE;AAC3C,IAAI,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE;AACxC,IAAI,qCAAqC,EAAEA,OAAS,EAAE,CAAC,QAAQ;AAC/D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,MAAM,qCAAqC,GAAGP,MAAQ,CAAC;AAC9D,IAAI,GAAG,4BAA4B,CAAC,KAAK;AACzC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;AAChC,QAAQ,gCAAgC,EAAE;AAC1C,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,iBAAiB,GAAGC,MACtB,CAAC;AACZ,IAAI,YAAY,EAAEL,MAAQ,EAAE;AAC5B,IAAI,QAAQ,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACnC,IAAI,UAAU,EAAEA,MAAQ,EAAE;AAC1B,IAAI,UAAU,EAAEmF,MAAe,EAAE,CAAC,QAAQ,EAAE;AAC5C,IAAI,KAAK,EAAEnF,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,aAAa,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AACtC,CAAC;AACD,KAAK,KAAK,EAAE;AACZ;AACA;AACA;AACO,MAAM,wBAAwB,GAAGI,MAAQ,CAAC;AACjD,IAAI,KAAK,EAAEJ,MAAQ,EAAE;AACrB,IAAI,iBAAiB,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAC5C,IAAI,SAAS,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,CAACM,OAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC;AAC1G;AACA;AACA;AACO,MAAM,yBAAyB,GAAGD,MAC9B,CAAC;AACZ,IAAI,aAAa,EAAEG,KAAO,CAAC,aAAa,CAAC;AACzC,IAAI,0BAA0B,EAAER,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACrD,IAAI,WAAW,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC/C,IAAI,cAAc,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAClD,IAAI,WAAW,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE;AACxC,IAAI,QAAQ,EAAE,qBAAqB;AACnC,IAAI,KAAK,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAChC,IAAI,QAAQ,EAAEQ,KAAO,CAACR,MAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;AAC5C,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,UAAU,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACrC,IAAI,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE;AACtC,IAAI,IAAI,EAAEoF,GAAK,EAAE,CAAC,QAAQ,EAAE;AAC5B,IAAI,WAAW,EAAEpF,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACtC,IAAI,gBAAgB,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AAC3C,IAAI,kBAAkB,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAC3C,CAAC;AACD,KAAK,KAAK,EAAE;AACZ;AACA;AACA;AACO,MAAM,4BAA4B,GAAGK,MACjC,CAAC;AACZ,IAAI,SAAS,EAAEL,MAAQ,EAAE;AACzB,IAAI,aAAa,EAAEA,MAAQ,EAAE,CAAC,QAAQ,EAAE;AACxC,IAAI,mBAAmB,EAAEC,QAAQ,EAAE,CAAC,QAAQ,EAAE;AAC9C,IAAI,wBAAwB,EAAEA,QAAQ,EAAE,CAAC,QAAQ;AACjD,CAAC;AACD,KAAK,KAAK,EAAE;AACZ;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,yBAAyB,CAAC,KAAK,CAAC,4BAA4B,CAAC;AAC7G;AACA;AACA;AACkDI,MACvC,CAAC;AACZ,IAAI,KAAK,EAAEL,MAAQ,EAAE;AACrB,IAAI,iBAAiB,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AAC1C,CAAC;AACD,KAAK,KAAK;AACV;AACA;AACA;AACiDK,MACtC,CAAC;AACZ,IAAI,KAAK,EAAEL,MAAQ,EAAE;AACrB,IAAI,eAAe,EAAEA,MAAQ,EAAE,CAAC,QAAQ;AACxC,CAAC;AACD,KAAK,KAAK;;ACpMV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,wBAAwB,CAAC,GAAG,EAAE;AAC9C,IAAI,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAClF,IAAI,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC;AAC1B,IAAI,OAAO,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,EAAE;AAChF,IAAI,MAAM,SAAS,GAAG,OAAO,iBAAiB,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1H,IAAI,MAAM,UAAU,GAAG,OAAO,kBAAkB,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC9H;AACA,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE;AAChD,QAAQ,OAAO,KAAK;AACpB;AACA;AACA,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;AAChE,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,GAAG;AAC1G,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,GAAG;AAC9G,IAAI,OAAO,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC;AACnD;;AC1CA;AACA;AACA;AACO,MAAM,UAAU,SAAS,KAAK,CAAC;AACtC,IAAI,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACnC,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI;AACzC;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,KAAK,EAAE,IAAI,CAAC,SAAS;AACjC,YAAY,iBAAiB,EAAE,IAAI,CAAC;AACpC,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;AAC9C;AACA,QAAQ,OAAO,QAAQ;AACvB;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,SAAS,UAAU,CAAC;AACpD;AACA,mBAAmB,CAAC,SAAS,GAAG,iBAAiB;AACjD;AACA;AACA;AACA;AACO,MAAM,kBAAkB,SAAS,UAAU,CAAC;AACnD;AACA,kBAAkB,CAAC,SAAS,GAAG,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACO,MAAM,iBAAiB,SAAS,UAAU,CAAC;AAClD;AACA,iBAAiB,CAAC,SAAS,GAAG,eAAe;AAC7C;AACA;AACA;AACA;AACO,MAAM,uBAAuB,SAAS,UAAU,CAAC;AACxD;AACA,uBAAuB,CAAC,SAAS,GAAG,qBAAqB;AACzD;AACA;AACA;AACA;AACO,MAAM,yBAAyB,SAAS,UAAU,CAAC;AAC1D;AACA,yBAAyB,CAAC,SAAS,GAAG,wBAAwB;AAC9D;AACA;AACA;AACA;AACO,MAAM,iBAAiB,SAAS,UAAU,CAAC;AAClD;AACA,iBAAiB,CAAC,SAAS,GAAG,eAAe;AAC7C;AACA;AACA;AACO,MAAM,iBAAiB,SAAS,UAAU,CAAC;AAClD;AACA,iBAAiB,CAAC,SAAS,GAAG,eAAe;AAC7C;AACA;AACA;AACA;AACO,MAAM,WAAW,SAAS,UAAU,CAAC;AAC5C;AACA,WAAW,CAAC,SAAS,GAAG,cAAc;AACtC;AACA;AACA;AACA;AACO,MAAM,2BAA2B,SAAS,UAAU,CAAC;AAC5D;AACA,2BAA2B,CAAC,SAAS,GAAG,yBAAyB;AACjE;AACA;AACA;AACA;AACO,MAAM,4BAA4B,SAAS,UAAU,CAAC;AAC7D;AACA,4BAA4B,CAAC,SAAS,GAAG,2BAA2B;AACpE;AACA;AACA;AACA;AACO,MAAM,yBAAyB,SAAS,UAAU,CAAC;AAC1D;AACA,yBAAyB,CAAC,SAAS,GAAG,wBAAwB;AAC9D;AACA;AACA;AACA;AACO,MAAM,iBAAiB,SAAS,UAAU,CAAC;AAClD;AACA,iBAAiB,CAAC,SAAS,GAAG,eAAe;AAC7C;AACA;AACA;AACA;AACO,MAAM,qBAAqB,SAAS,UAAU,CAAC;AACtD;AACA,qBAAqB,CAAC,SAAS,GAAG,oBAAoB;AACtD;AACA;AACA;AACA;AACO,MAAM,oBAAoB,SAAS,UAAU,CAAC;AACrD;AACA,oBAAoB,CAAC,SAAS,GAAG,mBAAmB;AACpD;AACA;AACA;AACA;AACO,MAAM,0BAA0B,SAAS,UAAU,CAAC;AAC3D;AACA,0BAA0B,CAAC,SAAS,GAAG,yBAAyB;AAChE;AACA;AACA;AACO,MAAM,sBAAsB,SAAS,UAAU,CAAC;AACvD;AACA,sBAAsB,CAAC,SAAS,GAAG,oBAAoB;AACvD;AACA;AACA;AACA;AACO,MAAM,kBAAkB,SAAS,UAAU,CAAC;AACnD;AACA,kBAAkB,CAAC,SAAS,GAAG,gBAAgB;AAa/C;AACA;AACA;AACO,MAAM,YAAY,GAAG;AAC5B,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,mBAAmB;AACxD,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG,kBAAkB;AACtD,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,iBAAiB;AACpD,IAAI,CAAC,uBAAuB,CAAC,SAAS,GAAG,uBAAuB;AAChE,IAAI,CAAC,yBAAyB,CAAC,SAAS,GAAG,yBAAyB;AACpE,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,iBAAiB;AACpD,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,iBAAiB;AACpD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,WAAW;AACxC,IAAI,CAAC,2BAA2B,CAAC,SAAS,GAAG,2BAA2B;AACxE,IAAI,CAAC,4BAA4B,CAAC,SAAS,GAAG,4BAA4B;AAC1E,IAAI,CAAC,yBAAyB,CAAC,SAAS,GAAG,yBAAyB;AACpE,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,iBAAiB;AACpD,IAAI,CAAC,qBAAqB,CAAC,SAAS,GAAG,qBAAqB;AAC5D,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,oBAAoB;AAC1D,IAAI,CAAC,0BAA0B,CAAC,SAAS,GAAG,0BAA0B;AACtE,IAAI,CAAC,sBAAsB,CAAC,SAAS,GAAG,sBAAsB;AAC9D,IAAI,CAAC,kBAAkB,CAAC,SAAS,GAAG;AACpC,CAAC;;AC5KM,MAAM,iBAAiB,SAAS,KAAK,CAAC;AAC7C,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,IAAI,cAAc,CAAC;AACxC;AACA;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE;AACpC,IAAI,OAAO,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjF;AACA,MAAM,gCAAgC,GAAG,MAAM;AAC/C,MAAM,mCAAmC,GAAG,MAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,CAAC,iBAAiB,EAAE,gBAAgB,EAAE;AAC5E,IAAI,MAAM,eAAe,GAAG,iBAAiB,CAAC,aAAa,KAAK,SAAS;AACzE;AACA,IAAI,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,QAAQ,OAAO,eAAe,GAAG,oBAAoB,GAAG,MAAM;AAC9D;AACA;AACA,IAAI,IAAI,4BAA4B,IAAI,iBAAiB;AACzD,QAAQ,iBAAiB,CAAC,0BAA0B;AACpD,QAAQ,kBAAkB,CAAC,iBAAiB,CAAC,0BAA0B,CAAC;AACxE,QAAQ,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,EAAE;AACjF,QAAQ,OAAO,iBAAiB,CAAC,0BAA0B;AAC3D;AACA;AACA,IAAI,IAAI,eAAe,IAAI,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;AAC7E,QAAQ,OAAO,qBAAqB;AACpC;AACA,IAAI,IAAI,eAAe,IAAI,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;AAC5E,QAAQ,OAAO,oBAAoB;AACnC;AACA,IAAI,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3C,QAAQ,OAAO,MAAM;AACrB;AACA;AACA,IAAI,OAAO,eAAe,GAAG,oBAAoB,GAAG,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE;AAC/E,IAAI,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,iBAAiB;AAC1D,IAAI,QAAQ,MAAM;AAClB,QAAQ,KAAK,qBAAqB;AAClC,YAAY,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC;AAC7D,YAAY;AACZ,QAAQ,KAAK,oBAAoB;AACjC,YAAY,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC3D,YAAY;AACZ,QAAQ,KAAK,MAAM;AACnB,YAAY,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC;AAC9C,YAAY;AACZ,QAAQ;AACR,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE;AACzD,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;AACtF;AACA,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AACxD;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;AACvD,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AACrC,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,kBAAkB,CAAC,KAAK,EAAE;AAChD,IAAI,MAAM,UAAU,GAAG,KAAK,YAAY,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS;AAC3E,IAAI,MAAM,IAAI,GAAG,KAAK,YAAY,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK;AACvE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvE,QAAQ,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,MAAM;AAC9D,QAAQ,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,WAAW;AAC7D,QAAQ,OAAO,IAAI,UAAU,CAAC,iBAAiB,IAAI,EAAE,EAAE,SAAS,CAAC;AACjE;AACA,IAAI,OAAO,KAAK,EAAE;AAClB;AACA,QAAQ,MAAM,YAAY,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,8BAA8B,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACnI,QAAQ,OAAO,IAAI,WAAW,CAAC,YAAY,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9C,IAAI,IAAI;AACR,QAAQ,OAAO,MAAM,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;AACpD;AACA,IAAI,OAAO,KAAK,EAAE;AAClB;AACA,QAAQ,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,YAAY,uBAAuB,EAAE;AAC7F,YAAY,MAAM,QAAQ,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACzD,YAAY,OAAO,MAAM,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;AACxD;AACA,aAAa,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACrD,YAAY,MAAM,QAAQ,CAAC,qBAAqB,GAAG,QAAQ,CAAC;AAC5D,YAAY,OAAO,MAAM,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;AACxD;AACA;AACA,QAAQ,MAAM,KAAK;AACnB;AACA;AACA,eAAe,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE;AAC7G,IAAI,IAAI,gBAAgB;AACxB,IAAI,IAAI,sBAAsB;AAC9B,IAAI,IAAI;AACR,QAAQ,gBAAgB,GAAG,MAAM,sCAAsC,CAAC,SAAS,EAAE,EAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC;AACpH,QAAQ,IAAI,gBAAgB,CAAC,qBAAqB,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;AACzG,YAAY,sBAAsB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC9E;AACA;AACA,IAAI,MAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AACjC,QAAQ,sBAAsB,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;AACxD;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC;AACnF,IAAI,MAAM,QAAQ,GAAG,MAAM,mCAAmC,CAAC,sBAAsB,EAAE;AACvF,QAAQ;AACR,KAAK,CAAC;AACN;AACA,IAAI,IAAI,iBAAiB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;AAC/E,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC5B,QAAQ,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAC7C,YAAY,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;AAClH;AACA,QAAQ,MAAM,wBAAwB,GAAG,QAAQ,EAAE,qCAAqC,KAAK,IAAI;AACjG,QAAQ,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB;AAC5D,QAAQ,IAAI,iBAAiB,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;AACjE,YAAY,MAAM,IAAI,0BAA0B,CAAC,CAAC,2EAA2E,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACnJ;AACA,QAAQ,MAAM,yBAAyB,GAAG,wBAAwB,IAAI,iBAAiB;AACvF,QAAQ,IAAI,yBAAyB,EAAE;AACvC;AACA,YAAY,iBAAiB,GAAG;AAChC,gBAAgB,SAAS,EAAE;AAC3B,aAAa;AACb,YAAY,MAAM,QAAQ,CAAC,qBAAqB,GAAG,iBAAiB,CAAC;AACrE;AACA,aAAa;AACb;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;AACjD,gBAAgB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;AACrG;AACA,YAAY,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,sBAAsB,EAAE;AACjF,gBAAgB,QAAQ;AACxB,gBAAgB,cAAc,EAAE,QAAQ,CAAC,cAAc;AACvD,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,MAAM,QAAQ,CAAC,qBAAqB,CAAC,eAAe,CAAC;AACjE,YAAY,iBAAiB,GAAG,eAAe;AAC/C;AACA;AACA;AACA,IAAI,MAAM,kBAAkB,GAAG,CAAC,QAAQ,CAAC,WAAW;AACpD;AACA,IAAI,IAAI,iBAAiB,KAAK,SAAS,IAAI,kBAAkB,EAAE;AAC/D,QAAQ,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,sBAAsB,EAAE;AAC1E,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,iBAAiB;AAC7B,YAAY;AACZ,SAAS,CAAC;AACV,QAAQ,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;AACzC,QAAQ,OAAO,YAAY;AAC3B;AACA,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;AAC1C;AACA,IAAI,IAAI,MAAM,EAAE,aAAa,EAAE;AAC/B,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,sBAAsB,EAAE;AACjF,gBAAgB,QAAQ;AACxB,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY,EAAE,MAAM,CAAC,aAAa;AAClD,gBAAgB,QAAQ;AACxB,gBAAgB,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB;AACzE,gBAAgB;AAChB,aAAa,CAAC;AACd,YAAY,MAAM,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;AAChD,YAAY,OAAO,YAAY;AAC/B;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB;AACA,YAAY,IAAI,EAAE,KAAK,YAAY,UAAU,CAAC,IAAI,KAAK,YAAY,WAAW,EAAE;AAGhF,iBAAiB;AACjB;AACA,gBAAgB,MAAM,KAAK;AAC3B;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,GAAG,SAAS;AACrE;AACA,IAAI,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC,sBAAsB,EAAE;AAChG,QAAQ,QAAQ;AAChB,QAAQ,iBAAiB;AACzB,QAAQ,KAAK;AACb,QAAQ,WAAW,EAAE,QAAQ,CAAC,WAAW;AACzC,QAAQ,KAAK,EAAE,KAAK,IAAI,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK;AACtG,QAAQ;AACR,KAAK,CAAC;AACN,IAAI,MAAM,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC;AACjD,IAAI,MAAM,QAAQ,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC5D,IAAI,OAAO,UAAU;AACrB;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,CAAC,KAAK;AACd,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI;AACR,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AAClC,QAAQ,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG;AAChE;AACA,IAAI,MAAM;AACV,QAAQ,OAAO,KAAK;AACpB;AACA;AACO,eAAe,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE;AAC/E,IAAI,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,CAAC;AAC/D;AACA,IAAI,IAAI,QAAQ,CAAC,mBAAmB,EAAE;AACtC,QAAQ,OAAO,MAAM,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,EAAE,QAAQ,CAAC;AAC9F;AACA;AACA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3B,QAAQ,OAAO,SAAS;AACxB;AACA;AACA,IAAI,IAAI,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE;AACtH,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,yBAAyB,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;AACjI;AACA;AACA,IAAI,OAAO,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC7C;AACA;AACA;AACA;AACO,SAAS,4BAA4B,CAAC,GAAG,EAAE;AAClD,IAAI,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAClE,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;AACxD,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE;AACpD,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,SAAS;AAChG,IAAI,IAAI,mBAAmB;AAC3B,IAAI,IAAI,qBAAqB,EAAE;AAC/B,QAAQ,IAAI;AACZ,YAAY,mBAAmB,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC;AAChE;AACA,QAAQ,MAAM;AACd;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS;AACpE,IAAI,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS;AACpE,IAAI,OAAO;AACX,QAAQ,mBAAmB;AAC3B,QAAQ,KAAK;AACb,QAAQ;AACR,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE;AACtD,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAClE,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC;AACvE,IAAI,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C,IAAI,IAAI,KAAK,EAAE;AACf;AACA,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACnC;AACA,IAAI,OAAO,IAAI;AACf;AA0BA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,sCAAsC,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE;AAC/F,IAAI,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE;AACxG,QAAQ,eAAe,EAAE,IAAI,EAAE,eAAe;AAC9C,QAAQ,WAAW,EAAE,IAAI,EAAE;AAC3B,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AAC9C,QAAQ,MAAM,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;AACtC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,yEAAyE,CAAC,CAAC;AACpG;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACtB,QAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AACrC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC;AAC/G;AACA,IAAI,OAAO,oCAAoC,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC5E;AACA;AACA;AACA;AACA,eAAe,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,EAAE;AACjE,IAAI,IAAI;AACR,QAAQ,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;AAC9C;AACA,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,KAAK,YAAY,SAAS,EAAE;AACxC,YAAY,IAAI,OAAO,EAAE;AACzB;AACA,gBAAgB,OAAO,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC;AAClE;AACA,iBAAiB;AACjB;AACA,gBAAgB,OAAO,SAAS;AAChC;AACA;AACA,QAAQ,MAAM,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,eAAe,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE;AAC1E;AACA,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChC,QAAQ,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACxC;AACA,IAAI,OAAO,OAAO,CAAC,eAAe,GAAG,CAAC,EAAE,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChI;AACA;AACA;AACA;AACA,eAAe,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,GAAG,KAAK,EAAE;AAC3E,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,sBAAsB,EAAE;AAChC,KAAK;AACL,IAAI,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AAC1D;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE;AACnD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC;AAC7F;AACA;AACA;AACA;AACA,eAAe,4BAA4B,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE;AACrF,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AACrC,IAAI,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,uBAAuB;AAC5E,IAAI,IAAI,GAAG;AACX,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE;AAC3B,QAAQ,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC;AACA,SAAS;AACT;AACA,QAAQ,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC;AAChF,QAAQ,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,IAAI,MAAM,CAAC;AACvE,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAClC;AACA,IAAI,IAAI,QAAQ,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC;AAC5E;AACA,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AAChF,QAAQ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;AACxE,QAAQ,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC;AAChF;AACA,IAAI,OAAO,QAAQ;AACnB;AAkCA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,sBAAsB,EAAE;AAC3D,IAAI,MAAM,GAAG,GAAG,OAAO,sBAAsB,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;AACrH,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG;AACxC,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB;AACA,QAAQ,SAAS,CAAC,IAAI,CAAC;AACvB,YAAY,GAAG,EAAE,IAAI,GAAG,CAAC,yCAAyC,EAAE,GAAG,CAAC,MAAM,CAAC;AAC/E,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV;AACA,QAAQ,SAAS,CAAC,IAAI,CAAC;AACvB,YAAY,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,iCAAiC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;AACzE,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV,QAAQ,OAAO,SAAS;AACxB;AACA;AACA,IAAI,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC/B,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAChC,QAAQ,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACxC;AACA;AACA;AACA,IAAI,SAAS,CAAC,IAAI,CAAC;AACnB,QAAQ,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,uCAAuC,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;AACtF,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC;AACN;AACA;AACA,IAAI,SAAS,CAAC,IAAI,CAAC;AACnB,QAAQ,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;AAChF,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC;AACN;AACA,IAAI,SAAS,CAAC,IAAI,CAAC;AACnB,QAAQ,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,iCAAiC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;AAChF,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC;AACN,IAAI,OAAO,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,mCAAmC,CAAC,sBAAsB,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,eAAe,GAAG,uBAAuB,EAAE,GAAG,EAAE,EAAE;AACvJ,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,sBAAsB,EAAE,eAAe;AAC/C,QAAQ,MAAM,EAAE;AAChB,KAAK;AACL;AACA,IAAI,MAAM,SAAS,GAAG,kBAAkB,CAAC,sBAAsB,CAAC;AAChE;AACA,IAAI,KAAK,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE;AACxD,QAAQ,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC;AAChF,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC1B,YAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AACzC;AACA,YAAY,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;AACjE,gBAAgB,SAAS;AACzB;AACA,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,KAAK,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;AACpJ;AACA;AACA,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE;AAC9B,YAAY,OAAO,mBAAmB,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACnE;AACA,aAAa;AACb,YAAY,OAAO,qCAAqC,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrF;AACA;AACA,IAAI,OAAO,SAAS;AACpB;AACA;AACA;AACA;AACO,eAAe,kBAAkB,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;AACvI,IAAI,IAAI,gBAAgB;AACxB,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC;AACnE,QAAQ,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE;AAC3F,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,yDAAyD,EAAE,gCAAgC,CAAC,CAAC,CAAC;AAC3H;AACA,QAAQ,IAAI,QAAQ,CAAC,gCAAgC;AACrD,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE;AACtG,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,iEAAiE,EAAE,mCAAmC,CAAC,CAAC,CAAC;AACtI;AACA;AACA,SAAS;AACT,QAAQ,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;AACxE;AACA;AACA,IAAI,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE;AAC3C,IAAI,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa;AAChD,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc;AAClD,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,gCAAgC,CAAC;AACxF,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,SAAS,CAAC;AAC/E,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACtE,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,mCAAmC,CAAC;AACnG,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1E,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AACzD;AACA,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AACzD;AACA,IAAI,IAAI,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AAC3C;AACA;AACA;AACA,QAAQ,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;AACjE;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC;AACpE;AACA,IAAI,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,+BAA+B,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE;AAC9F,IAAI,OAAO,IAAI,eAAe,CAAC;AAC/B,QAAQ,UAAU,EAAE,oBAAoB;AACxC,QAAQ,IAAI,EAAE,iBAAiB;AAC/B,QAAQ,aAAa,EAAE,YAAY;AACnC,QAAQ,YAAY,EAAE,MAAM,CAAC,WAAW;AACxC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;AAC5J,IAAI,MAAM,QAAQ,GAAG,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC;AAC5H,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;AAChC,QAAQ,cAAc,EAAE,mCAAmC;AAC3D,QAAQ,MAAM,EAAE;AAChB,KAAK,CAAC;AACN,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC;AACzD;AACA,IAAI,IAAI,uBAAuB,EAAE;AACjC,QAAQ,MAAM,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACtF;AACA,SAAS,IAAI,iBAAiB,EAAE;AAChC,QAAQ,MAAM,gBAAgB,GAAG,QAAQ,EAAE,qCAAqC,IAAI,EAAE;AACtF,QAAQ,MAAM,UAAU,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AACtF,QAAQ,yBAAyB,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,kBAAkB,CAAC;AAC7F;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,QAAQ,EAAE;AACxD,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO;AACf,QAAQ,IAAI,EAAE;AACd,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACtB,QAAQ,MAAM,MAAM,kBAAkB,CAAC,QAAQ,CAAC;AAChD;AACA,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzD;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,oBAAoB,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,EAAE;AAC9J,IAAI,MAAM,kBAAkB,GAAG,IAAI,eAAe,CAAC;AACnD,QAAQ,UAAU,EAAE,eAAe;AACnC,QAAQ,aAAa,EAAE;AACvB,KAAK,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,sBAAsB,EAAE;AACrE,QAAQ,QAAQ;AAChB,QAAQ,kBAAkB;AAC1B,QAAQ,iBAAiB;AACzB,QAAQ,uBAAuB;AAC/B,QAAQ,QAAQ;AAChB,QAAQ;AACR,KAAK,CAAC;AACN;AACA,IAAI,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,UAAU,CAAC,QAAQ,EAAE,sBAAsB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;AAC5H,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK;AAC/C;AACA,IAAI,IAAI,kBAAkB;AAC1B,IAAI,IAAI,QAAQ,CAAC,mBAAmB,EAAE;AACtC,QAAQ,kBAAkB,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACtE;AACA;AACA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,YAAY,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC;AACrG;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACnC,YAAY,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAClF;AACA,QAAQ,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE;AAC1D,QAAQ,kBAAkB,GAAG,+BAA+B,CAAC,iBAAiB,EAAE,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC;AACnH;AACA,IAAI,MAAM,iBAAiB,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE;AAChE,IAAI,OAAO,mBAAmB,CAAC,sBAAsB,EAAE;AACvD,QAAQ,QAAQ;AAChB,QAAQ,kBAAkB;AAC1B,QAAQ,iBAAiB,EAAE,iBAAiB,IAAI,SAAS;AACzD,QAAQ,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB;AACjE,QAAQ,QAAQ;AAChB,QAAQ;AACR,KAAK,CAAC;AACN;AACA;AACA;AACA;AACO,eAAe,cAAc,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;AACpG,IAAI,IAAI,eAAe;AACvB,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;AAC7C,YAAY,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC;AACrG;AACA,QAAQ,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACjE;AACA,SAAS;AACT,QAAQ,eAAe,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,sBAAsB,CAAC;AACtE;AACA,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,eAAe,EAAE;AAC/D,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,OAAO,EAAE;AACjB,YAAY,cAAc,EAAE;AAC5B,SAAS;AACT,QAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc;AAC3C,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACtB,QAAQ,MAAM,MAAM,kBAAkB,CAAC,QAAQ,CAAC;AAChD;AACA,IAAI,OAAO,gCAAgC,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AACxE;;ACtzBA,MAAM,UAAU,SAAS,KAAK,CAAC;AAC/B,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;AAChC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;AACxJ;AACA;AACA,SAASqF,MAAI,CAAC,IAAI,EAAE;AACpB;AACA,SAAS,YAAY,CAAC,SAAS,EAAE;AACjC,EAAE,IAAI,OAAO,SAAS,IAAI,UAAU;AACpC,IAAI,MAAM,IAAI,SAAS;AACvB,MAAM;AACN,KAAK;AACL,EAAE,MAAM,EAAE,OAAO,GAAGA,MAAI,EAAE,OAAO,GAAGA,MAAI,EAAE,OAAO,GAAGA,MAAI,EAAE,SAAS,EAAE,GAAG,SAAS;AACjF,EAAE,IAAI,cAAc,GAAG,EAAE,EAAE,YAAY,GAAG,IAAE,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE;AAC3E,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE;AAC1B,IAAI,MAAM,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACnJ,IAAI,KAAK,MAAM,IAAI,IAAI,QAAQ;AAC/B,MAAM,SAAS,CAAC,IAAI,CAAC;AACrB,IAAI,cAAc,GAAG,UAAU,EAAE,YAAY,GAAG,KAAE;AAClD;AACA,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE;AAC3B,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;AACrB,MAAM,aAAa,EAAE;AACrB,MAAM;AACN;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC9B,MAAM,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,MAAM;AACN;AACA,IAAI,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACjD,IAAI,IAAI,mBAAmB,KAAK,EAAE,EAAE;AACpC,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC;AAChK,MAAM,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;AACtC,MAAM;AACN;AACA,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC;AAChC;AACA,EAAE,SAAS,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5C,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,OAAO;AAClB,QAAQ,SAAS,GAAG,KAAK;AACzB,QAAQ;AACR,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK;AAC9B,CAAC;AACD,QAAQ;AACR,MAAM,KAAK,IAAI;AACf,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK;AAClD,QAAQ;AACR,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO;AACpE,UAAU,IAAI,UAAU,CAAC,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AAChE,YAAY,IAAI,EAAE,eAAe;AACjC,YAAY,KAAK;AACjB,YAAY;AACZ,WAAW;AACX,SAAS;AACT,QAAQ;AACR,MAAM;AACN,QAAQ,OAAO;AACf,UAAU,IAAI,UAAU;AACxB,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1F,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;AACvD;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,EAAE,SAAS,aAAa,GAAG;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC;AAC/B,MAAM,EAAE;AACR,MAAM,KAAK,EAAE,SAAS,IAAI,MAAM;AAChC;AACA;AACA,MAAM,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC1B,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;AACzB,KAAK,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE;AAC9C;AACA,EAAE,SAAS,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE;AAC/B,IAAI,cAAc,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,YAAY,GAAG,IAAE,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE;AAClJ;AACA,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;AACxB;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,EAAE,MAAM,KAAK,GAAG,EAAE;AAClB,EAAE,IAAI,cAAc,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC;AAC1C,EAAE,OAAO,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI;AACvC,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9E,CAAC,EAAE,WAAW,CAAC;AACf,IAAI,IAAI,OAAO,GAAG,EAAE;AACpB,IAAI,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,OAAO,KAAK,EAAE,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,KAAK,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,EAAE,OAAO,KAAK,EAAE,EAAE;AAC9K,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;AAC/C,MAAM;AACN,KAAK,MAAM;AACX,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;AACpD,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK;AAC7G,CAAC,IAAI,WAAW,EAAE;AAClB;AACA;AACA,EAAE,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC;AAChC;;AClGA,MAAM,uBAAuB,SAAS,eAAe,CAAC;AACtD,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE;AACpD,IAAI,IAAI,MAAM;AACd,IAAI,KAAK,CAAC;AACV,MAAM,KAAK,CAAC,UAAU,EAAE;AACxB,QAAQ,MAAM,GAAG,YAAY,CAAC;AAC9B,UAAU,OAAO,EAAE,CAAC,KAAK,KAAK;AAC9B,YAAY,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC,WAAW;AACX,UAAU,OAAO,CAAC,KAAK,EAAE;AACzB,YAAY,OAAO,KAAK,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,OAAO,IAAI,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;AAC9G,WAAW;AACX,UAAU,OAAO;AACjB,UAAU;AACV,SAAS,CAAC;AACV,OAAO;AACP,MAAM,SAAS,CAAC,KAAK,EAAE;AACvB,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B;AACA,KAAK,CAAC;AACN;AACA;;ACnBA;AACA,MAAM,4CAA4C,GAAG;AACrD,IAAI,wBAAwB,EAAE,IAAI;AAClC,IAAI,oBAAoB,EAAE,KAAK;AAC/B,IAAI,2BAA2B,EAAE,GAAG;AACpC,IAAI,UAAU,EAAE;AAChB,CAAC;AACM,MAAM,mBAAmB,SAAS,KAAK,CAAC;AAC/C,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/B,QAAQ,KAAK,CAAC,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,6BAA6B,CAAC;AAC3C,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;AAC3B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AAC3C,QAAQ,IAAI,CAAC,IAAI,GAAG,GAAG;AACvB,QAAQ,IAAI,CAAC,oBAAoB,GAAG,SAAS;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,SAAS;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,WAAW;AAC7C,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,YAAY;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK;AACjC,QAAQ,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC;AACjF,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,SAAS;AACzC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,EAAE,mBAAmB,IAAI,4CAA4C;AAC7G;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,CAAC;AAC3D;AACA,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI;AACZ,YAAY,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACpD,gBAAgB,SAAS,EAAE,IAAI,CAAC,IAAI;AACpC,gBAAgB,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;AAC9D,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM;AAClC,gBAAgB,OAAO,EAAE,IAAI,CAAC;AAC9B,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,YAAY,MAAM,KAAK;AACvB;AACA,QAAQ,IAAI,MAAM,KAAK,YAAY,EAAE;AACrC,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACzE;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC5D,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1E;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,UAAU;AACvD;AACA,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,gBAAgB;AACnE;AACA,QAAQ,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;AACzE,QAAQ,OAAO,IAAI,OAAO,CAAC;AAC3B,YAAY,GAAG,OAAO;AACtB,YAAY,GAAG;AACf,SAAS,CAAC;AACV;AACA,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO;AAC3C,QAAQ,IAAI;AACZ;AACA;AACA,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACvD,YAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC;AACtD;AACA,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC;AAC7D;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;AACrE,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,OAAO;AACvB,gBAAgB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC/C,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC9B,gBAAgB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AAC7C,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AACnE;AACA,oBAAoB,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE;AACtD;AACA;AACA;AACA,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AAC7C,oBAAoB;AACpB;AACA,gBAAgB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,2BAA2B,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACnH;AACA,YAAY,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAC/D;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,YAAY,MAAM,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAyB,CAAC,OAAO,EAAE;AACvC;AACA,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;AAC/C,YAAY,OAAO,IAAI,CAAC,cAAc;AACtC;AACA;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,wBAAwB;AAC/E,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,2BAA2B;AAChF,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,oBAAoB;AACvE;AACA,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,CAAC,EAAE;AACrD;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU;AAC/D;AACA,QAAQ,IAAI,YAAY,IAAI,UAAU,EAAE;AACxC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,+BAA+B,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AAChG,YAAY;AACZ;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC;AAClE;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,MAAM;AACrD;AACA,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI;AACzD,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtI;AACA,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,CAAC,CAAC;AACrE,aAAa,CAAC;AACd,SAAS,EAAE,KAAK,CAAC;AACjB;AACA,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE;AACvD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY;AACZ;AACA,QAAQ,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,OAAO;AAC9D,QAAQ,IAAI,WAAW;AACvB;AACA;AACA,QAAQ,IAAI,eAAe,GAAG,KAAK;AACnC;AACA;AACA,QAAQ,IAAI,gBAAgB,GAAG,KAAK;AACpC,QAAQ,MAAM,aAAa,GAAG,YAAY;AAC1C;AACA;AACA,YAAY,IAAI;AAChB;AACA,gBAAgB,MAAM,MAAM,GAAG;AAC/B,qBAAqB,WAAW,CAAC,IAAI,iBAAiB,EAAE;AACxD,qBAAqB,WAAW,CAAC,IAAI,uBAAuB,CAAC;AAC7D,oBAAoB,OAAO,EAAE,CAAC,OAAO,KAAK;AAC1C;AACA,wBAAwB,IAAI,CAAC,cAAc,GAAG,OAAO;AACrD;AACA,iBAAiB,CAAC;AAClB,qBAAqB,SAAS,EAAE;AAChC,gBAAgB,OAAO,IAAI,EAAE;AAC7B,oBAAoB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AACtE,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB;AACxB;AACA;AACA,oBAAoB,IAAI,KAAK,CAAC,EAAE,EAAE;AAClC,wBAAwB,WAAW,GAAG,KAAK,CAAC,EAAE;AAC9C;AACA,wBAAwB,eAAe,GAAG,IAAI;AAC9C,wBAAwB,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC;AACrD;AACA;AACA,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACrC,wBAAwB;AACxB;AACA,oBAAoB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;AACnE,wBAAwB,IAAI;AAC5B,4BAA4B,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9F,4BAA4B,IAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE;AAClE;AACA,gCAAgC,gBAAgB,GAAG,IAAI;AACvD,gCAAgC,IAAI,eAAe,KAAK,SAAS,EAAE;AACnE,oCAAoC,OAAO,CAAC,EAAE,GAAG,eAAe;AAChE;AACA;AACA,4BAA4B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AACrD;AACA,wBAAwB,OAAO,KAAK,EAAE;AACtC,4BAA4B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM,SAAS,GAAG,eAAe,IAAI,eAAe;AACpE,gBAAgB,MAAM,cAAc,GAAG,SAAS,IAAI,CAAC,gBAAgB;AACrE,gBAAgB,IAAI,cAAc,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE;AACtG,oBAAoB,IAAI,CAAC,qBAAqB,CAAC;AAC/C,wBAAwB,eAAe,EAAE,WAAW;AACpD,wBAAwB,iBAAiB;AACzC,wBAAwB;AACxB,qBAAqB,EAAE,CAAC,CAAC;AACzB;AACA;AACA,YAAY,OAAO,KAAK,EAAE;AAC1B;AACA,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9E;AACA;AACA;AACA,gBAAgB,MAAM,SAAS,GAAG,eAAe,IAAI,eAAe;AACpE,gBAAgB,MAAM,cAAc,GAAG,SAAS,IAAI,CAAC,gBAAgB;AACrE,gBAAgB,IAAI,cAAc,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE;AACtG;AACA,oBAAoB,IAAI;AACxB,wBAAwB,IAAI,CAAC,qBAAqB,CAAC;AACnD,4BAA4B,eAAe,EAAE,WAAW;AACxD,4BAA4B,iBAAiB;AAC7C,4BAA4B;AAC5B,yBAAyB,EAAE,CAAC,CAAC;AAC7B;AACA,oBAAoB,OAAO,KAAK,EAAE;AAClC,wBAAwB,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnI;AACA;AACA;AACA,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,MAAM,IAAI,KAAK,CAAC,wHAAwH,CAAC;AACrJ;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE;AACrD;AACA;AACA;AACA;AACA,IAAI,MAAM,UAAU,CAAC,iBAAiB,EAAE;AACxC,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,CAAC;AAC3D;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACtD,YAAY,SAAS,EAAE,IAAI,CAAC,IAAI;AAChC,YAAY,iBAAiB;AAC7B,YAAY,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;AAC1D,YAAY,KAAK,EAAE,IAAI,CAAC,MAAM;AAC9B,YAAY,OAAO,EAAE,IAAI,CAAC;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,MAAM,KAAK,YAAY,EAAE;AACrC,YAAY,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,CAAC;AAC9D;AACA;AACA,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACvC,YAAY,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACnD,YAAY,IAAI,CAAC,oBAAoB,GAAG,SAAS;AACjD;AACA,QAAQ,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE;AACtC,QAAQ,IAAI,CAAC,OAAO,IAAI;AACxB;AACA,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,OAAO,IAAI,EAAE;AACxE,YAAY,IAAI,eAAe,EAAE;AACjC;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;AAChK,gBAAgB;AAChB;AACA,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACvD,YAAY,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC;AAC3D,YAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,qCAAqC,CAAC;AACxE,YAAY,MAAM,IAAI,GAAG;AACzB,gBAAgB,GAAG,IAAI,CAAC,YAAY;AACpC,gBAAgB,MAAM,EAAE,MAAM;AAC9B,gBAAgB,OAAO;AACvB,gBAAgB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC7C,gBAAgB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC/C,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1E;AACA,YAAY,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpE,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3C;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC9B,gBAAgB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;AACpE,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AACnE;AACA,oBAAoB,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACpD,wBAAwB,MAAM,IAAI,mBAAmB,CAAC,GAAG,EAAE,qDAAqD,CAAC;AACjH;AACA,oBAAoB,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,QAAQ,CAAC;AACjG,oBAAoB,IAAI,CAAC,oBAAoB,GAAG,mBAAmB;AACnE,oBAAoB,IAAI,CAAC,MAAM,GAAG,KAAK;AACvC,oBAAoB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAClE,wBAAwB,SAAS,EAAE,IAAI,CAAC,IAAI;AAC5C,wBAAwB,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;AACtE,wBAAwB,KAAK,EAAE,IAAI,CAAC,MAAM;AAC1C,wBAAwB,OAAO,EAAE,IAAI,CAAC;AACtC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,MAAM,KAAK,YAAY,EAAE;AACjD,wBAAwB,MAAM,IAAI,iBAAiB,EAAE;AACrD;AACA;AACA,oBAAoB,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACrD;AACA,oBAAoB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7C;AACA,gBAAgB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;AACnE,oBAAoB,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,QAAQ,CAAC;AACxG,oBAAoB,IAAI,KAAK,KAAK,oBAAoB,EAAE;AACxD,wBAAwB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACtF;AACA,wBAAwB,IAAI,IAAI,CAAC,oBAAoB,KAAK,aAAa,EAAE;AACzE,4BAA4B,MAAM,IAAI,mBAAmB,CAAC,GAAG,EAAE,4CAA4C,CAAC;AAC5G;AACA,wBAAwB,IAAI,KAAK,EAAE;AACnC,4BAA4B,IAAI,CAAC,MAAM,GAAG,KAAK;AAC/C;AACA,wBAAwB,IAAI,mBAAmB,EAAE;AACjD,4BAA4B,IAAI,CAAC,oBAAoB,GAAG,mBAAmB;AAC3E;AACA;AACA,wBAAwB,IAAI,CAAC,oBAAoB,GAAG,aAAa,IAAI,SAAS;AAC9E,wBAAwB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACtE,4BAA4B,SAAS,EAAE,IAAI,CAAC,IAAI;AAChD,4BAA4B,mBAAmB,EAAE,IAAI,CAAC,oBAAoB;AAC1E,4BAA4B,KAAK,EAAE,IAAI,CAAC,MAAM;AAC9C,4BAA4B,OAAO,EAAE,IAAI,CAAC;AAC1C,yBAAyB,CAAC;AAC1B,wBAAwB,IAAI,MAAM,KAAK,YAAY,EAAE;AACrD,4BAA4B,MAAM,IAAI,iBAAiB,EAAE;AACzD;AACA,wBAAwB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD;AACA;AACA,gBAAgB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;AACpG;AACA;AACA,YAAY,IAAI,CAAC,qBAAqB,GAAG,KAAK;AAC9C,YAAY,IAAI,CAAC,oBAAoB,GAAG,SAAS;AACjD;AACA,YAAY,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AACzC,gBAAgB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AAC7C;AACA;AACA,gBAAgB,IAAI,yBAAyB,CAAC,OAAO,CAAC,EAAE;AACxD;AACA,oBAAoB,IAAI,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;AAC1G;AACA,gBAAgB;AAChB;AACA;AACA,YAAY,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC;AACzE,YAAY,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;AACzH;AACA,YAAY,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACpE,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,IAAI,WAAW,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;AAChE;AACA;AACA;AACA,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC;AACtF;AACA,qBAAqB,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AACpE;AACA,oBAAoB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACtD,oBAAoB,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI;AAC/D,0BAA0B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC;AACzE,0BAA0B,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5D,oBAAoB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;AACxD,wBAAwB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AAC7C;AACA;AACA,qBAAqB;AACrB,oBAAoB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AACjD,oBAAoB,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC,CAAC;AAChG;AACA;AACA,iBAAiB;AACjB;AACA,gBAAgB,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AAC7C;AACA;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,YAAY,MAAM,KAAK;AACvB;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAY,OAAO;AACnB;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACvD,YAAY,MAAM,IAAI,GAAG;AACzB,gBAAgB,GAAG,IAAI,CAAC,YAAY;AACpC,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,OAAO;AACvB,gBAAgB,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC/C,aAAa;AACb,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1E,YAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AACzC;AACA;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AACzD,gBAAgB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,6BAA6B,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACrH;AACA,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS;AACvC;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,YAAY,MAAM,KAAK;AACvB;AACA;AACA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,OAAO;AACvC;AACA,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,IAAI,CAAC,eAAe,CAAC;AACnC,YAAY,eAAe,EAAE,WAAW;AACxC,YAAY,iBAAiB,EAAE,OAAO,EAAE;AACxC,SAAS,CAAC;AACV;AACA;;ACzbA;;AAEG;AACI,eAAe,kBAAkB,CAAC,KAAa,EAAE,QAAiB,EAAA;IACvE,MAAM,YAAY,GAAG,oCAAoC;AAEzD,IAAAC,gBAAS,CAAC,oCAAoC,CAAC;AAE/C,IAAA,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,CAAU,OAAA,EAAA,KAAK,CAAE,CAAA;AAChC,QAAA,gBAAgB,EAAE,MAAM;KACzB;;IAGD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACtC,QAAA,OAAO,CAAC,gBAAgB,CAAC,GAAG,QAAQ;AACpC,QAAAA,gBAAS,CAAC,8BAA8B,QAAQ,CAAA,CAAE,CAAC;;SAC9C;AACL,QAAAA,gBAAS,CAAC,mCAAmC,CAAC;;IAGhD,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE;AACzE,QAAA,WAAW,EAAE;YACX,OAAO;AACR,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AACxB,QAAA,IAAI,EAAE,qBAAqB;AAC3B,QAAA,OAAO,EAAE,OAAO;QAChB,SAAS;AACV,KAAA,CAAC;AAEF,IAAA,IAAI;AACF,QAAA,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;;IAC/B,OAAO,QAAQ,EAAE;AACjB,QAAAC,mBAAY,CAAC,2CAA2C,QAAQ,CAAA,CAAE,CAAC;AACnE,QAAA,OAAO,IAAI;;AAGb,IAAAD,gBAAS,CAAC,6CAA6C,CAAC;AAExD,IAAA,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE;AAC9C,IAAAA,gBAAS,CAAC,CAAA,UAAA,EAAa,aAAa,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAA,6BAAA,CAA+B,CAAC;;AAGvF,IAAA,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK;AAClD,QAAA,IAAI,EAAE,UAAmB;AACzB,QAAA,QAAQ,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,WAAW;AAC1B,SAAA;AACF,KAAA,CAAC,CAAC;IAEHA,gBAAS,CAAC,CAAA,OAAA,EAAU,KAAK,CAAC,MAAM,CAA0C,wCAAA,CAAA,CAAC;AAE3E,IAAA,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC;AACxB;AAEA;;AAEG;AACI,eAAe,eAAe,CAAC,eAAuB,EAAE,QAAkB,EAAA;AAC/E,IAAAA,gBAAS,CAAC,CAA8B,2BAAA,EAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAA,YAAA,EAAe,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAA,CAAE,CAAC;AAE3G,IAAA,IAAI;AACF,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AAEpD,QAAA,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AAC5C,YAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;AAC5B,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;QAEFA,gBAAS,CAAC,CAAmB,gBAAA,EAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAwB,sBAAA,CAAA,CAAC;QAE5E,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,EAAE;AACzB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;SACxC;;IACD,OAAO,SAAS,EAAE;AAClB,QAAAC,mBAAY,CAAC,CAAA,kCAAA,EAAqC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAA,EAAA,EAAK,SAAS,CAAA,CAAE,CAAC;QAEzF,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,EAAE;AACzB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAC5B,OAAO,EAAE,CAAU,OAAA,EAAA,SAAS,CAAE,CAAA;SAC/B;;AAEL;AAEA;;AAEG;AACI,eAAe,gBAAgB,CAAC,eAAuB,EAAE,SAAqB,EAAA;IACnF,MAAM,WAAW,GAAiB,EAAE;AAEpC,IAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC;AAC/D,QAAA,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;AAG1B,IAAA,OAAO,WAAW;AACpB;;AC5IA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;AAKjE,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,IAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAQ,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC;AACtG,IAAI,OAAwE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK;AAC7G;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;AAC1D,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;AAC1B,QAAQ,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;AAC5E,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAQ,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC;AACvG,IAAI,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjG;;ACfA;AACA;AACA;AACA;AACO,IAAI,KAAK,GAAG,YAAY;AAC/B,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;AACjC,IAAI,IAAI,MAAM,EAAE,UAAU,EAAE;AAC5B,QAAQ,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,QAAQ,OAAO,MAAM,CAAC,UAAU,EAAE;AAClC;AACA,IAAI,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AAChC,IAAI,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI;AACzG,IAAI,OAAO,sCAAsC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjI,CAAC;;ACbD;AACO,SAAS,YAAY,CAAC,GAAG,EAAE;AAClC,IAAI,QAAQ,OAAO,GAAG,KAAK,QAAQ;AACnC,QAAQ,GAAG,KAAK,IAAI;AACpB;AACA,SAAS,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;AACpD;AACA,aAAa,SAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAChG;AACO,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK;AACpC,IAAI,IAAI,GAAG,YAAY,KAAK;AAC5B,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AACjD,QAAQ,IAAI;AACZ,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE;AAC1E;AACA,gBAAgB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;AAC3F,gBAAgB,IAAI,GAAG,CAAC,KAAK;AAC7B,oBAAoB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AAC3C;AACA,gBAAgB,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;AAC7C,oBAAoB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AAC3C,gBAAgB,IAAI,GAAG,CAAC,IAAI;AAC5B,oBAAoB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AACzC,gBAAgB,OAAO,KAAK;AAC5B;AACA;AACA,QAAQ,MAAM;AACd,QAAQ,IAAI;AACZ,YAAY,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACjD;AACA,QAAQ,MAAM;AACd;AACA,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC;AACzB,CAAC;;AClCD;AAEO,MAAM,WAAW,SAAS,KAAK,CAAC;AACvC;AACO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;AACrD,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,MAAM,IAAI,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAClC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;AACpC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAClC;AACA,IAAI,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/C,QAAQ,MAAM,GAAG,GAAG,KAAK,EAAE,OAAO;AAClC,YAAY,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAC7C,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO;AAC9C,cAAc,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;AAC1C,kBAAkB,OAAO;AACzB,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrC;AACA,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC;AACpD;AACA,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,OAAO,GAAG;AACtB;AACA,QAAQ,OAAO,0BAA0B;AACzC;AACA,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7D,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;AACjC,YAAY,OAAO,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;AACzF;AACA,QAAQ,MAAM,KAAK,GAAG,aAAa,GAAG,OAAO,CAAC;AAC9C,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACvE;AACA,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC3E;AACA,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC7E;AACA,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACrE;AACA,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACrE;AACA,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAChF;AACA,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACtE;AACA,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,OAAO,IAAI,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC3E;AACA,QAAQ,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5D;AACA;AACO,MAAM,iBAAiB,SAAS,QAAQ,CAAC;AAChD,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;AAClC,QAAQ,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,IAAI,sBAAsB,EAAE,SAAS,CAAC;AACjF;AACA;AACO,MAAM,kBAAkB,SAAS,QAAQ,CAAC;AACjD,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;AACpC,QAAQ,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,IAAI,mBAAmB,EAAE,SAAS,CAAC;AAC9E;AACA;AACA,QAAQ,IAAI,KAAK;AACjB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B;AACA;AACO,MAAM,yBAAyB,SAAS,kBAAkB,CAAC;AAClE,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;AAClC,QAAQ,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,CAAC;AAC3D;AACA;AACO,MAAM,eAAe,SAAS,QAAQ,CAAC;AAC9C;AACO,MAAM,mBAAmB,SAAS,QAAQ,CAAC;AAClD;AACO,MAAM,qBAAqB,SAAS,QAAQ,CAAC;AACpD;AACO,MAAM,aAAa,SAAS,QAAQ,CAAC;AAC5C;AACO,MAAM,aAAa,SAAS,QAAQ,CAAC;AAC5C;AACO,MAAM,wBAAwB,SAAS,QAAQ,CAAC;AACvD;AACO,MAAM,cAAc,SAAS,QAAQ,CAAC;AAC7C;AACO,MAAM,mBAAmB,SAAS,QAAQ,CAAC;AAClD;AACO,MAAM,uBAAuB,SAAS,WAAW,CAAC;AACzD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,CAAC,gEAAgE,CAAC,CAAC;AACjF;AACA;AACO,MAAM,8BAA8B,SAAS,WAAW,CAAC;AAChE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,CAAC,kFAAkF,CAAC,CAAC;AACnG;AACA;AACO,MAAM,4BAA4B,SAAS,KAAK,CAAC;AACxD,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB;AACA;;ACnHA;AAEA;AACA,MAAM,sBAAsB,GAAG,sBAAsB;AAC9C,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK;AACtC,IAAI,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC;AACM,IAAI,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAChE,IAAI,eAAe,GAAG,OAAO;AACpC;AACO,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC5B,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC/B,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB;AACA;AACO,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,IAAI,CAAC,GAAG;AACZ,QAAQ,OAAO,IAAI;AACnB,IAAI,KAAK,MAAM,EAAE,IAAI,GAAG;AACxB,QAAQ,OAAO,KAAK;AACpB,IAAI,OAAO,IAAI;AACf;AACA;AACO,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;AACjC,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AACzD;AACO,SAAS,KAAK,CAAC,GAAG,EAAE;AAC3B,IAAI,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxE;AAOO,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK;AACpD,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC3D;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACnE;AACA,IAAI,OAAO,CAAC;AACZ,CAAC;AAwCM,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK;AAClC,IAAI,IAAI;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B;AACA,IAAI,OAAO,GAAG,EAAE;AAChB,QAAQ,OAAO,SAAS;AACxB;AACA,CAAC;;AC5FD;AACO,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;;ACDvE,MAAM,OAAO,GAAG,OAAO,CAAC;;ACA/B;AAEO,MAAM,kBAAkB,GAAG,MAAM;AACxC,IAAI;AACJ;AACA,IAAI,OAAO,MAAM,KAAK,WAAW;AACjC;AACA,QAAQ,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;AAC9C;AACA,QAAQ,OAAO,SAAS,KAAK,WAAW;AACxC,CAAC;AACD;AACA;AACA;AACA,SAAS,mBAAmB,GAAG;AAC/B,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AAC3D,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC5C,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,kBAAkB,EAAE;AACnI,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,SAAS;AACpB;AACA,MAAM,qBAAqB,GAAG,MAAM;AACpC,IAAI,MAAM,gBAAgB,GAAG,mBAAmB,EAAE;AAClD,IAAI,IAAI,gBAAgB,KAAK,MAAM,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9D,YAAY,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9D,YAAY,qBAAqB,EAAE,MAAM;AACzC,YAAY,6BAA6B,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS;AAC5H,SAAS;AACT;AACA,IAAI,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC5C,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,SAAS;AACvC,YAAY,kBAAkB,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACtD,YAAY,qBAAqB,EAAE,MAAM;AACzC,YAAY,6BAA6B,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO;AACrE,SAAS;AACT;AACA;AACA,IAAI,IAAI,gBAAgB,KAAK,MAAM,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;AACzF,YAAY,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;AACnF,YAAY,qBAAqB,EAAE,MAAM;AACzC,YAAY,6BAA6B,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS;AAClF,SAAS;AACT;AACA,IAAI,MAAM,WAAW,GAAG,cAAc,EAAE;AACxC,IAAI,IAAI,WAAW,EAAE;AACrB,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,SAAS;AACvC,YAAY,kBAAkB,EAAE,SAAS;AACzC,YAAY,qBAAqB,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AACnE,YAAY,6BAA6B,EAAE,WAAW,CAAC,OAAO;AAC9D,SAAS;AACT;AACA;AACA,IAAI,OAAO;AACX,QAAQ,kBAAkB,EAAE,IAAI;AAChC,QAAQ,6BAA6B,EAAE,OAAO;AAC9C,QAAQ,gBAAgB,EAAE,SAAS;AACnC,QAAQ,kBAAkB,EAAE,SAAS;AACrC,QAAQ,qBAAqB,EAAE,SAAS;AACxC,QAAQ,6BAA6B,EAAE,SAAS;AAChD,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,GAAG;AAC1B,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,EAAE;AACxD,QAAQ,OAAO,IAAI;AACnB;AACA;AACA,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,sCAAsC,EAAE;AACxE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE;AACtE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,4CAA4C,EAAE;AAC5E,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,EAAE;AAC5E,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,yCAAyC,EAAE;AAC9E,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,mEAAmE,EAAE;AACvG,KAAK;AACL;AACA,IAAI,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,eAAe,EAAE;AACpD,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AACvD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AAC1E;AACA;AACA,IAAI,OAAO,IAAI;AACf;AACA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK;AAChC;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,KAAK,KAAK;AACtB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;AAC3C,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,IAAI,KAAK,KAAK;AACtB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO;AAC9C,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,IAAI;AACZ,QAAQ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9B,IAAI,OAAO,SAAS;AACpB,CAAC;AACD,MAAM,iBAAiB,GAAG,CAAC,QAAQ,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE;AACrC;AACA;AACA;AACA;AACA,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,QAAQ;AAC7B,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,QAAQ,KAAK,OAAO;AAC5B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,OAAO;AAC5B,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,QAAQ;AAChB,QAAQ,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClC,IAAI,OAAO,SAAS;AACpB,CAAC;AACD,IAAI,gBAAgB;AACb,MAAM,kBAAkB,GAAG,MAAM;AACxC,IAAI,QAAQ,gBAAgB,KAAK,gBAAgB,GAAG,qBAAqB,EAAE,CAAC;AAC5E,CAAC;;AC3JD;AACO,SAAS,eAAe,GAAG;AAClC,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,mJAAmJ,CAAC;AACxK;AACO,SAAS,kBAAkB,CAAC,GAAG,IAAI,EAAE;AAC5C,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc;AACpD,IAAI,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AAC/C;AACA;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC;AAClJ;AACA,IAAI,OAAO,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC;AACtC;AACO,SAAS,kBAAkB,CAAC,QAAQ,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAChH,IAAI,OAAO,kBAAkB,CAAC;AAC9B,QAAQ,KAAK,GAAG,GAAG;AACnB,QAAQ,MAAM,IAAI,CAAC,UAAU,EAAE;AAC/B,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AACrD,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC;AACA,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACzC;AACA,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,MAAM,IAAI,CAAC,MAAM,IAAI;AACjC,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,6BAA6B,CAAC,MAAM,EAAE;AACtD,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AACpC,QAAQ,OAAO,MAAM;AACrB,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;AACrC,IAAI,OAAO;AACX,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,IAAI;AAChB,gBAAgB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AAClD,gBAAgB,IAAI,MAAM,EAAE,IAAI;AAChC,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC;AACzC,gBAAgB,OAAO,MAAM;AAC7B;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC;AACrC,gBAAgB,MAAM,CAAC;AACvB;AACA,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,CAAC,WAAW,EAAE;AAChC,YAAY,MAAM,aAAa;AAC/B,YAAY,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AACnD,SAAS;AACT,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;AACjC,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACO,eAAe,oBAAoB,CAAC,MAAM,EAAE;AACnD,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AACrD,QAAQ;AACR,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AACtC,QAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI;AACvD,QAAQ;AACR;AACA,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE;AACzC,IAAI,MAAM,CAAC,WAAW,EAAE;AACxB,IAAI,MAAM,aAAa;AACvB;;ACnFA;AACO,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK;AACtD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,cAAc,EAAE,kBAAkB;AAC9C,SAAS;AACT,QAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClC,KAAK;AACL,CAAC;;ACRM,MAAM,cAAc,GAAG,SAAS;AAChC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1C,MAAM,UAAU,GAAG;AAC1B,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAClD,IAAI,OAAO,EAAE,iBAAiB;AAC9B,CAAC;AACM,MAAM,OAAO,GAAG,SAAS;;ACJzB,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACrH,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,SAAS,mBAAmB,CAAC,MAAM;AACzC,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9E;AACA,IAAI,OAAO,KAAK;AAChB,CAAC,GAAG;AAsGJ,MAAM,KAAK,GAAG,IAAI;AACX,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK;AACxE;AACA;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,MAAM,GAAG,GAAG;AACpB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,QAAQ,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACpD;AACA,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACtC,QAAQ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5B;AACA,IAAI,IAAI,OAAO,KAAK,YAAY,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE;AACvE,YAAY,OAAO,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;AAC/D,SAAS,CAAC;AACV;AACA,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE;AACnD,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM;AACpF,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,YAAY,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,KAAK,IAAI;AAC1B,gBAAgB,CAAC,KAAK,IAAI;AAC1B,gBAAgB,CAAC,KAAK,IAAI;AAC1B,gBAAgB,CAAC,KAAK,IAAI;AAC1B,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,iBAAiB,MAAM,KAAK,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAClE,cAAc;AACd,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,gBAAgB;AAChB;AACA,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC9C,gBAAgB;AAChB;AACA,YAAY,IAAI,CAAC,GAAG,KAAK,EAAE;AAC3B,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3F,gBAAgB;AAChB;AACA,YAAY,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;AAC3C,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/B,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpH,gBAAgB;AAChB;AACA,YAAY,CAAC,IAAI,CAAC;AAClB,YAAY,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACjF,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3B,gBAAgB,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3C,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;AACxD,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACvD,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChD;AACA,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B;AACA,IAAI,OAAO,GAAG;AACd,CAAC;AAwBM,SAAS,SAAS,CAAC,GAAG,EAAE;AAC/B,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3F;AAIO,SAAS,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE;AACnC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,YAAY,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC;AAClB;;ACpNA,MAAM,uBAAuB,GAAG;AAChC,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;AACpC,KAAK;AACL,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAC/C,KAAK;AACL,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK;AACL,CAAC;AACD,MAAM,aAAa,GAAG,UAAU,GAAG,EAAE,cAAc,EAAE;AACrD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,CAAC,cAAc,CAAC,CAAC;AAChG,CAAC;AACD,IAAI,WAAW;AACf,MAAM,QAAQ,GAAG;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,WAAW,EAAE,SAAS;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,SAAS,EAAE,GAAG;AAClB,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,SAAS,EAAE,iBAAiB;AAChC;AACA,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,OAAO,CAAC,WAAW,KAAK,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9G,KAAK;AACL,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,kBAAkB,EAAE,KAAK;AAC7B,CAAC;AACD,SAAS,wBAAwB,CAAC,CAAC,EAAE;AACrC,IAAI,QAAQ,OAAO,CAAC,KAAK,QAAQ;AACjC,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B,QAAQ,OAAO,CAAC,KAAK,SAAS;AAC9B,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B;AACA,MAAM,QAAQ,GAAG,EAAE;AACnB,SAAS,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE;AAC5P,IAAI,IAAI,GAAG,GAAG,MAAM;AACpB,IAAI,IAAI,MAAM,GAAG,WAAW;AAC5B,IAAI,IAAI,IAAI,GAAG,CAAC;AAChB,IAAI,IAAI,SAAS,GAAG,KAAK;AACzB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE;AAC7E;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;AACxC,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE;AAC9B,gBAAgB,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC;AAC3D;AACA,iBAAiB;AACjB,gBAAgB,SAAS,GAAG,IAAI,CAAC;AACjC;AACA;AACA,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;AACzD,YAAY,IAAI,GAAG,CAAC;AACpB;AACA;AACA,IAAI,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AACtC,QAAQ,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AACjC;AACA,SAAS,IAAI,GAAG,YAAY,IAAI,EAAE;AAClC,QAAQ,GAAG,GAAG,aAAa,GAAG,GAAG,CAAC;AAClC;AACA,SAAS,IAAI,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9D,QAAQ,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE;AAC9C,YAAY,IAAI,KAAK,YAAY,IAAI,EAAE;AACvC,gBAAgB,OAAO,aAAa,GAAG,KAAK,CAAC;AAC7C;AACA,YAAY,OAAO,KAAK;AACxB,SAAS,CAAC;AACV;AACA,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AACtB,QAAQ,IAAI,kBAAkB,EAAE;AAChC,YAAY,OAAO,OAAO,IAAI,CAAC,gBAAgB;AAC/C;AACA,gBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;AACxE,kBAAkB,MAAM;AACxB;AACA,QAAQ,GAAG,GAAG,EAAE;AAChB;AACA,IAAI,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;AACzD,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,MAAM,SAAS,GAAG,gBAAgB,GAAG;AACjD;AACA,kBAAkB,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;AAC3E,YAAY,OAAO;AACnB,gBAAgB,SAAS,GAAG,SAAS,CAAC;AACtC,oBAAoB,GAAG;AACvB;AACA,oBAAoB,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzF,aAAa;AACb;AACA,QAAQ,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE;AACA,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;AACpC,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,IAAI,QAAQ;AAChB,IAAI,IAAI,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACzD;AACA,QAAQ,IAAI,gBAAgB,IAAI,OAAO,EAAE;AACzC;AACA,YAAY,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;AACzC;AACA,QAAQ,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;AACvF;AACA,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC9B,QAAQ,QAAQ,GAAG,MAAM;AACzB;AACA,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,QAAQ,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AAChD;AACA,IAAI,MAAM,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAClG,IAAI,MAAM,eAAe,GAAG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc;AACvH,IAAI,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9D,QAAQ,OAAO,eAAe,GAAG,IAAI;AACrC;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/B,QAAQ,MAAM,KAAK;AACnB;AACA,QAAQ,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;AAC1F,QAAQ,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAY;AACZ;AACA;AACA,QAAQ,MAAM,WAAW,GAAG,SAAS,IAAI,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG;AAC1F,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;AACvC,YAAY,OAAO,mBAAmB,KAAK,UAAU;AACrD,gBAAgB,mBAAmB,CAAC,eAAe,EAAE,WAAW;AAChE,kBAAkB;AAClB,cAAc,eAAe,IAAI,SAAS,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;AACzF,QAAQ,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACrC,QAAQ,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAC9C,QAAQ,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;AACnD,QAAQ,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe;AACtK;AACA,QAAQ,mBAAmB,KAAK,OAAO,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACtM;AACA,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,2BAA2B,CAAC,IAAI,GAAG,QAAQ,EAAE;AACtD,IAAI,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACpG,QAAQ,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC;AACrG;AACA,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;AAClG,QAAQ,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC;AACpG;AACA,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;AAC5G,QAAQ,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;AAC5D;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;AACpD,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE;AAC1G,QAAQ,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC;AAChG;AACA,IAAI,IAAI,MAAM,GAAG,cAAc;AAC/B,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AAC5C,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;AAC3C,YAAY,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;AAClE;AACA,QAAQ,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B;AACA,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM;AAChC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACnE,QAAQ,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B;AACA,IAAI,IAAI,WAAW;AACnB,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,uBAAuB,EAAE;AACzE,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW;AACtC;AACA,SAAS,IAAI,SAAS,IAAI,IAAI,EAAE;AAChC,QAAQ,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ;AACzD;AACA,SAAS;AACT,QAAQ,WAAW,GAAG,QAAQ,CAAC,WAAW;AAC1C;AACA,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;AAC9E,QAAQ,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;AAC5E;AACA,IAAI,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW;AAC3D,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI;AACvC,YAAY;AACZ,cAAc,QAAQ,CAAC;AACvB,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;AAC1B,IAAI,OAAO;AACX,QAAQ,cAAc,EAAE,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc;AAChH;AACA,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,gBAAgB,EAAE,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;AAC1H,QAAQ,WAAW,EAAE,WAAW;AAChC,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe;AACpH,QAAQ,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;AAC7C,QAAQ,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9F,QAAQ,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AAChF,QAAQ,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe;AACpH,QAAQ,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO;AACrF,QAAQ,gBAAgB,EAAE,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;AACxH,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,aAAa,EAAE,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa;AAC7G,QAAQ,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;AAC5F;AACA,QAAQ,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;AAChE,QAAQ,kBAAkB,EAAE,OAAO,IAAI,CAAC,kBAAkB,KAAK,SAAS,GAAG,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB;AAChI,KAAK;AACL;AACO,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE;AAC7C,IAAI,IAAI,GAAG,GAAG,MAAM;AACpB,IAAI,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC;AACrD,IAAI,IAAI,QAAQ;AAChB,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9C,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM;AAC/B,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAC7B;AACA,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACtC,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM;AAC/B,QAAQ,QAAQ,GAAG,MAAM;AACzB;AACA,IAAI,MAAM,IAAI,GAAG,EAAE;AACnB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AACjD,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC;AAC5E,IAAI,MAAM,cAAc,GAAG,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc;AACpF,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACtB,QAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACnC;AACA,IAAI,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACpD,YAAY;AACZ;AACA,QAAQ,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG;AACzD;AACA,QAAQ,mBAAmB,EAAE,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC3V;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,cAAc,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE;AAC3D,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE;AACjC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,YAAY,EAAE;AAC9C;AACA,YAAY,MAAM,IAAI,sBAAsB;AAC5C;AACA,aAAa;AACb;AACA,YAAY,MAAM,IAAI,iBAAiB;AACvC;AACA;AACA,IAAI,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE;AACnD;;AChRO,SAAS,WAAW,CAAC,OAAO,EAAE;AACrC,IAAI,IAAI,MAAM,GAAG,CAAC;AAClB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,MAAM,IAAI,MAAM,CAAC,MAAM;AAC/B;AACA,IAAI,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACzC,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AACjC,QAAQ,KAAK,IAAI,MAAM,CAAC,MAAM;AAC9B;AACA,IAAI,OAAO,MAAM;AACjB;AACA,IAAI,WAAW;AACR,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,IAAI,OAAO;AACf,IAAI,OAAO,CAAC,WAAW;AACvB,SAAS,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACtG;AACA,IAAI,WAAW;AACR,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,OAAO;AACf,IAAI,OAAO,CAAC,WAAW;AACvB,SAAS,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACxG;;ACxBA,IAAI,mBAAmB,EAAE,gCAAgC;AAGzD;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7C,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,UAAU,EAAO,CAAC;AAChF,QAAQ,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAS,CAAC;AACjF;AACA,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,YAAY,OAAO,EAAE;AACrB;AACA,QAAQ,MAAM,WAAW,GAAG,KAAK,YAAY,WAAW,GAAG,IAAI,UAAU,CAAC,KAAK;AAC/E,cAAc,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,KAAK;AAC1D,kBAAkB,KAAK;AACvB,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAM,CAAC;AAClJ,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,YAAY;AACxB,QAAQ,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;AACvL,YAAY,IAAI,YAAY,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;AACtH;AACA,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,YAAY,CAAC,KAAU,CAAC;AACvG,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,IAAI,IAAI;AAC3F,iBAAiB,YAAY,CAAC,KAAK,KAAK,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;AAC3I,gBAAgB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnL,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAM,CAAC;AAC5M,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAS,CAAC;AACzF,gBAAgB;AAChB;AACA,YAAY,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS;AAC/J,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjH,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,YAAY,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAM,CAAC;AACvJ,YAAY,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAS,CAAC;AACrF;AACA,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;AAC5E,YAAY,OAAO,EAAE;AACrB;AACA,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC;AACA;AACA,mBAAmB,GAAG,IAAI,OAAO,EAAE,EAAE,gCAAgC,GAAG,IAAI,OAAO,EAAE;AACrF;AACA,WAAW,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,WAAW,CAAC,cAAc,GAAG,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE;AAC9C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC;AACzB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1D,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACnC,YAAY,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;AAClE;AACA,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACpC,YAAY,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjE;AACA;AACA,IAAI,OAAO,IAAI;AACf;AACO,SAAS,sBAAsB,CAAC,MAAM,EAAE;AAC/C;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC;AACzB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;AAChE;AACA,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB;AACA,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;AAClE;AACA,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB;AACA,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ;AAClC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO;AACrC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;AACjC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ;AACtC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;AACvC;AACA,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB;AACA;AACA,IAAI,OAAO,EAAE;AACb;;AC1GA;AAEA,MAAM,YAAY,GAAG;AACrB,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,KAAK,EAAE,GAAG;AACd,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,KAAK,EAAE,GAAG;AACd,CAAC;AACM,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK;AACjE,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE;AAC1C,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAClJ,IAAI,OAAO,SAAS;AACpB,CAAC;AACD,SAAS,IAAI,GAAG;AAChB,SAAS,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE;AACnE,QAAQ,OAAO,IAAI;AACnB;AACA,SAAS;AACT;AACA,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C;AACA;AACA,MAAM,UAAU,GAAG;AACnB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,IAAI;AACf,CAAC;AACD,IAAI,aAAa,mBAAmB,IAAI,OAAO,EAAE;AAC1C,SAAS,SAAS,CAAC,MAAM,EAAE;AAClC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAChC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;AAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,UAAU;AACzB;AACA,IAAI,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtD,QAAQ,OAAO,YAAY,CAAC,CAAC,CAAC;AAC9B;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AACnD,QAAQ,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;AACjD,QAAQ,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;AACjD,QAAQ,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AACnD,KAAK;AACL,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACtD,IAAI,OAAO,WAAW;AACtB;AACO,MAAM,oBAAoB,GAAG,CAAC,OAAO,KAAK;AACjD,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;AAChD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1C;AACA,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,YAAY,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;AAClK,YAAY,IAAI;AAChB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe;AACnD,gBAAgB,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ;AAC/C,gBAAgB,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY;AACnD,gBAAgB;AAChB,kBAAkB,KAAK;AACvB,SAAS,CAAC,CAAC;AACX;AACA,IAAI,IAAI,qBAAqB,IAAI,OAAO,EAAE;AAC1C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE;AACzC,YAAY,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,mBAAmB;AACzD;AACA,QAAQ,OAAO,OAAO,CAAC,mBAAmB;AAC1C;AACA,IAAI,OAAO,OAAO;AAClB,CAAC;;AC7ED,IAAI,cAAc;AAUX,MAAM,MAAM,CAAC;AACpB,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;AAC9C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAW,CAAC;AACjE;AACA,IAAI,OAAO,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;AACzD,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO;AAC3D,QAAQ,gBAAgB,QAAQ,GAAG;AACnC,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,IAAI,WAAW,CAAC,0EAA0E,CAAC;AACjH;AACA,YAAY,QAAQ,GAAG,IAAI;AAC3B,YAAY,IAAI,IAAI,GAAG,KAAK;AAC5B,YAAY,IAAI;AAChB,gBAAgB,WAAW,MAAM,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;AAChF,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB;AACxB,oBAAoB,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACvD,wBAAwB,IAAI,GAAG,IAAI;AACnC,wBAAwB;AACxB;AACA,oBAAoB,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAChF,wBAAwB,IAAI,IAAI;AAChC,wBAAwB,IAAI;AAC5B,4BAA4B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD;AACA,wBAAwB,OAAO,CAAC,EAAE;AAClC,4BAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AACxF,4BAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAChE,4BAA4B,MAAM,CAAC;AACnC;AACA,wBAAwB,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAChD,4BAA4B,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;AAClG;AACA,wBAAwB,MAAM,IAAI;AAClC;AACA,yBAAyB;AACzB,wBAAwB,IAAI,IAAI;AAChC,wBAAwB,IAAI;AAC5B,4BAA4B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD;AACA,wBAAwB,OAAO,CAAC,EAAE;AAClC,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AACzF,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AACjE,4BAA4B,MAAM,CAAC;AACnC;AACA;AACA,wBAAwB,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,EAAE;AAClD,4BAA4B,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AAC9F;AACA,wBAAwB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9D;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI;AAC3B;AACA,YAAY,OAAO,CAAC,EAAE;AACtB;AACA,gBAAgB,IAAI,YAAY,CAAC,CAAC,CAAC;AACnC,oBAAoB;AACpB,gBAAgB,MAAM,CAAC;AACvB;AACA,oBAAoB;AACpB;AACA,gBAAgB,IAAI,CAAC,IAAI;AACzB,oBAAoB,UAAU,CAAC,KAAK,EAAE;AACtC;AACA;AACA,QAAQ,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE;AAClE,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,gBAAgB,SAAS,GAAG;AACpC,YAAY,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE;AACjD,YAAY,MAAM,IAAI,GAAG,6BAA6B,CAAC,cAAc,CAAC;AACtE,YAAY,WAAW,MAAM,KAAK,IAAI,IAAI,EAAE;AAC5C,gBAAgB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC9D,oBAAoB,MAAM,IAAI;AAC9B;AACA;AACA,YAAY,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;AACpD,gBAAgB,MAAM,IAAI;AAC1B;AACA;AACA,QAAQ,gBAAgB,QAAQ,GAAG;AACnC,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,IAAI,WAAW,CAAC,0EAA0E,CAAC;AACjH;AACA,YAAY,QAAQ,GAAG,IAAI;AAC3B,YAAY,IAAI,IAAI,GAAG,KAAK;AAC5B,YAAY,IAAI;AAChB,gBAAgB,WAAW,MAAM,IAAI,IAAI,SAAS,EAAE,EAAE;AACtD,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB;AACxB,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C;AACA,gBAAgB,IAAI,GAAG,IAAI;AAC3B;AACA,YAAY,OAAO,CAAC,EAAE;AACtB;AACA,gBAAgB,IAAI,YAAY,CAAC,CAAC,CAAC;AACnC,oBAAoB;AACpB,gBAAgB,MAAM,CAAC;AACvB;AACA,oBAAoB;AACpB;AACA,gBAAgB,IAAI,CAAC,IAAI;AACzB,oBAAoB,UAAU,CAAC,KAAK,EAAE;AACtC;AACA;AACA,QAAQ,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AACvD;AACA,IAAI,EAAE,cAAc,GAAG,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAC/D,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG;AACV,QAAQ,MAAM,IAAI,GAAG,EAAE;AACvB,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AACvC,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,MAAM;AAC5B,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,wBAAwB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE;AACtD,wBAAwB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACzC,wBAAwB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1C;AACA,oBAAoB,OAAO,KAAK,CAAC,KAAK,EAAE;AACxC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO;AACf,YAAY,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;AACnH,YAAY,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;AACpH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,IAAI,GAAG,IAAI;AACzB,QAAQ,IAAI,IAAI;AAChB,QAAQ,OAAO,kBAAkB,CAAC;AAClC,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AACnD,aAAa;AACb,YAAY,MAAM,IAAI,CAAC,IAAI,EAAE;AAC7B,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAC7D,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,OAAO,IAAI,CAAC,KAAK,EAAE;AAC3C,oBAAoB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC1E,oBAAoB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC;AACA,gBAAgB,OAAO,GAAG,EAAE;AAC5B,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC;AACA,aAAa;AACb,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,MAAM,IAAI,CAAC,MAAM,IAAI;AACrC,aAAa;AACb,SAAS,CAAC;AACV;AACA;AACO,gBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW;AACvD,YAAY,UAAU,CAAC,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;AAC5D,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,8JAA8J,CAAC,CAAC;AACnM;AACA,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,iDAAiD,CAAC,CAAC;AAClF;AACA,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE;AACzC,IAAI,MAAM,IAAI,GAAG,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7D,IAAI,WAAW,MAAM,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AACtD,QAAQ,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACzD,YAAY,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/C,YAAY,IAAI,GAAG;AACnB,gBAAgB,MAAM,GAAG;AACzB;AACA;AACA,IAAI,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;AAC5C,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,QAAQ,IAAI,GAAG;AACf,YAAY,MAAM,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa,CAAC,QAAQ,EAAE;AACxC,IAAI,IAAI,IAAI,GAAG,IAAI,UAAU,EAAE;AAC/B,IAAI,WAAW,MAAM,KAAK,IAAI,QAAQ,EAAE;AACxC,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,YAAY;AACZ;AACA,QAAQ,MAAM,WAAW,GAAG,KAAK,YAAY,WAAW,GAAG,IAAI,UAAU,CAAC,KAAK;AAC/E,cAAc,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,KAAK;AAC1D,kBAAkB,KAAK;AACvB,QAAQ,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AACtE,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,GAAG,OAAO;AACtB,QAAQ,IAAI,YAAY;AACxB,QAAQ,OAAO,CAAC,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACrE,YAAY,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;AAC7C,YAAY,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC3C;AACA;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,QAAQ,MAAM,IAAI;AAClB;AACA;AACA,MAAM,UAAU,CAAC;AACjB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD;AACA,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AAChD,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,GAAG,GAAG;AACxB,gBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,gBAAgB,GAAG,EAAE,IAAI,CAAC,MAAM;AAChC,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI;AAC7B,YAAY,IAAI,CAAC,IAAI,GAAG,EAAE;AAC1B,YAAY,IAAI,CAAC,MAAM,GAAG,EAAE;AAC5B,YAAY,OAAO,GAAG;AACtB;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AACxD,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,YAAY,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC;AACA,QAAQ,IAAI,SAAS,KAAK,OAAO,EAAE;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B;AACA,aAAa,IAAI,SAAS,KAAK,MAAM,EAAE;AACvC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE;AACnC,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACxC,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACtB,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAC5F;AACA,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACxB;;AC9RA;AAGO,eAAe,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC1D,IAAI,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,KAAK;AAC5E,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY;AACpC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAClC,YAAY,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC/G;AACA;AACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE;AAC7C,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;AACtG;AACA,YAAY,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;AAC7E;AACA;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AACrC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE;AAC5C,YAAY,OAAO,QAAQ;AAC3B;AACA,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAChE,QAAQ,MAAM,SAAS,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AAC5D,QAAQ,MAAM,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC9F,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC9C,YAAY,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/C;AACA,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC1C,QAAQ,OAAO,IAAI;AACnB,KAAK,GAAG;AACR,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;AACtF,QAAQ,mBAAmB;AAC3B,QAAQ,GAAG,EAAE,QAAQ,CAAC,GAAG;AACzB,QAAQ,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC/B,QAAQ,IAAI;AACZ,QAAQ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC1C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI;AACf;AACO,SAAS,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrE,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;AACvD,QAAQ,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACnD,QAAQ,UAAU,EAAE,KAAK;AACzB,KAAK,CAAC;AACN;;ACjDA;AACA,IAAI,kBAAkB;AAGtB;AACA;AACA;AACA;AACO,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,GAAG,oBAAoB,EAAE;AAC/E,QAAQ,KAAK,CAAC,CAAC,OAAO,KAAK;AAC3B;AACA;AACA;AACA,YAAY,OAAO,CAAC,IAAI,CAAC;AACzB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5C,QAAQ,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAW,CAAC;AACrE;AACA,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,OAAO,IAAI,UAAU,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACrF,QAAQ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AACnF;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACrJ;AACA,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC;AACA,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;AACzD;AACA,IAAI,KAAK,CAAC,UAAU,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7C;AACA,IAAI,OAAO,CAAC,SAAS,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9C;AACA;AACA,kBAAkB,GAAG,IAAI,OAAO,EAAE;;ACtElC;AACA,IAAI,oBAAoB;AAMjB,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9C,QAAQ,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAW,CAAC;AACvE,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC9C,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;AACzB,YAAY,OAAO,KAAK;AACxB,QAAQ,OAAO,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI;AACpD;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE;AACzD,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,MAAM,IAAI,WAAW,CAAC,uFAAuF,CAAC;AAC1H;AACA,QAAQ,OAAO,MAAM,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;AAC1H;AACA,IAAI,OAAO,SAAS,GAAG;AACvB,QAAQ,IAAI,IAAI,GAAG,IAAI;AACvB,QAAQ,MAAM,IAAI;AAClB,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE;AACnC,YAAY,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAC3C,YAAY,MAAM,IAAI;AACtB;AACA;AACA,IAAI,SAAS,oBAAoB,GAAG,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAC5E,QAAQ,WAAW,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACnD,YAAY,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AACzD,gBAAgB,MAAM,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,WAAW,SAAS,UAAU,CAAC;AAC5C,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACvC,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,MAAM,CAAC,aAAa,CAAC,GAAG;AACpC,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI;AAC/B,QAAQ,WAAW,MAAM,IAAI,IAAI,IAAI,EAAE;AACvC,YAAY,MAAM,IAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,IAAI,SAAS,YAAY,CAAC;AACvC,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACjC;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,IAAI;AACnB;AACA;AACO,MAAM,UAAU,SAAS,YAAY,CAAC;AAC7C,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AAC9C;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACrC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,OAAO,KAAK,CAAC,WAAW,EAAE;AAClC;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC7C,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,EAAE,EAAE;AACjB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO;AACf,YAAY,GAAG,IAAI,CAAC,OAAO;AAC3B,YAAY,KAAK,EAAE;AACnB,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,gBAAgB,KAAK,EAAE,EAAE;AACzB,aAAa;AACb,SAAS;AACT;AACA;AACO,MAAM,sBAAsB,SAAS,YAAY,CAAC;AACzD,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AACzC;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACrC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,OAAO,KAAK,CAAC,WAAW,EAAE;AAClC;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AACnC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO;AACf,YAAY,GAAG,IAAI,CAAC,OAAO;AAC3B,YAAY,KAAK,EAAE;AACnB,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,gBAAgB,KAAK,EAAE,MAAM;AAC7B,aAAa;AACb,SAAS;AACT;AACA;;ACjJO,MAAM,gBAAgB,GAAG,MAAM;AACtC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACrC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU;AACtC,QAAQ,MAAM,SAAS,GAAG,OAAO,OAAO,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;AACxH,QAAQ,MAAM,IAAI,KAAK,CAAC,wEAAwE;AAChG,aAAa,SAAS;AACtB,gBAAgB;AAChB,kBAAkB,EAAE,CAAC,CAAC;AACtB;AACA,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;AACtD,IAAI,gBAAgB,EAAE;AACtB,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,cAAc,EAAE,OAAO,CAAC;AAClE;AACO,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,IAAI,QAAQ,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;AACvC,QAAQ,KAAK,KAAK,IAAI;AACtB,SAAS,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7D,aAAa,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,aAAa,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC7E,aAAa,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,QAAQ,EAAE;AACV,SAAS,KAAK,CAAC,OAAO;AACtB,SAAS,GAAG,EAAE,IAAI,SAAS;AAC3B;AACO,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU;AACzI;AACA;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK;AACvE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAChE,CAAC;AACM,MAAM,2BAA2B,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK;AAClE,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAChE,CAAC;AACD,MAAM,mBAAmB,mBAAmB,IAAI,OAAO,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,WAAW,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,OAAO,WAAW,KAAK,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK;AACrF,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,IAAI,IAAI,MAAM;AACd,QAAQ,OAAO,MAAM;AACrB,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,aAAa,IAAI,UAAU,IAAI,KAAK;AACtD,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;AACtD,YAAY,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE;AACvC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AAC5E,gBAAgB,OAAO,KAAK;AAC5B;AACA,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM;AACd;AACA,YAAY,OAAO,IAAI;AACvB;AACA,KAAK,GAAG;AACR,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3C,IAAI,OAAO,OAAO;AAClB;AACO,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK;AACjD,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1C,QAAQ,MAAM,IAAI,SAAS,CAAC,mGAAmG,CAAC;AAChI;AACA,IAAI,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE;AAC/B,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACvG,IAAI,OAAO,IAAI;AACf,CAAC;AACD;AACA;AACA,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI,IAAI,MAAM,IAAI,KAAK;AACvE,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ;AACzD,IAAI,KAAK,KAAK,IAAI;AAClB,KAAK,KAAK,YAAY,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/E,MAAM,kBAAkB,GAAG,CAAC,KAAK,KAAK;AACtC,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAQ,OAAO,IAAI;AACnB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5B,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC7C,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5C,QAAQ,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AAC/B,YAAY,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,IAAI,OAAO,KAAK;AAChB,CAAC;AACD,MAAM,YAAY,GAAG,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK;AACjD,IAAI,IAAI,KAAK,KAAK,SAAS;AAC3B,QAAQ;AACR,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACvB,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,2DAA2D,CAAC,CAAC;AACnH;AACA;AACA,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC9F,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC;AACA,SAAS,IAAI,KAAK,YAAY,QAAQ,EAAE;AACxC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE;AACA,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1G;AACA,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/C;AACA,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnC,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtF;AACA,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACxC,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnH;AACA,SAAS;AACT,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,qGAAqG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpJ;AACA,CAAC;;AC/HD;AACA;AACA;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;AAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;AACpC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;AACrC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;AAC3C;AACA;AACA;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;AAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;AAC1C,IAAI,UAAU,CAAC,KAAK,CAAC;AACrB,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;AAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC7B,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;AACjC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AACnD,IAAI,gBAAgB,EAAE;AACtB;AACA,IAAI,KAAK,GAAG,MAAM,KAAK;AACvB;AACA,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAC3B,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE;AACnC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,OAAO,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;AAChE;AACA,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;AACvC,QAAQ,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;AACzE,QAAQ,OAAO,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;AAC5D;AACA,IAAI,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;AACvC,IAAI,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;AACxB,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;AAClG,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtC,YAAY,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE;AAC1C;AACA;AACA,IAAI,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;AACzC;AACA,eAAe,QAAQ,CAAC,KAAK,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,EAAE;AAClB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;AACjC,QAAQ,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,QAAQ,KAAK,YAAY,WAAW,EAAE;AACtC,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB;AACA,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,IAAI,GAAG,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7E;AACA,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC;AACnC,MAAM;AACN,QAAQ,WAAW,MAAM,KAAK,IAAI,KAAK,EAAE;AACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD;AACA;AACA,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI;AACpD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,OAAO,KAAK,CAAC,EAAE,WAAW,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5I;AACA,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;AACnD,QAAQ,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACnD,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE;;ACtFA;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,kBAAkB,CAAC;AAC9E;AACA,MAAM,KAAK,mBAAmB,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzE,MAAM,qBAAqB,GAAG,CAAC,WAAW,GAAG,aAAa,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE;AACxG;AACA,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAC5B,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,QAAQ,GAAG,KAAK;AACxB,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,KAAK;AACxE,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACvC,YAAY,QAAQ,GAAG,IAAI;AAC3B;AACA,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACnC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,GAAG,kBAAkB,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,CAAC;AAC/E,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM;AACnC,aAAa,KAAK,IAAI,IAAI;AAC1B,iBAAiB,OAAO,KAAK,KAAK,QAAQ;AAC1C;AACA,oBAAoB,KAAK,CAAC,QAAQ;AAClC,wBAAwB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK;AAC3G,8BAA8B,QAAQ,CAAC,CAAC,EAAE;AAC1C,YAAY,OAAO,GAAG,KAAK,GAAG,EAAE;AAChC,YAAY,eAAe,CAAC,IAAI,CAAC;AACjC,gBAAgB,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;AACjE,gBAAgB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtC,gBAAgB,KAAK,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC;AACzD,qBAAqB,IAAI,CAAC,KAAK;AAC/B,qBAAqB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,8BAA8B,CAAC;AACjE,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,aAAa,GAAG,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC;AACtF,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,qBAAqB,GAAG,oCAAoC;AACtE,IAAI,IAAI,KAAK;AACb;AACA,IAAI,OAAO,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE;AACpE,QAAQ,eAAe,CAAC,IAAI,CAAC;AAC7B,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK;AAC9B,YAAY,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;AACnC,YAAY,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC;AACpF,SAAS,CAAC;AACV;AACA,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACrD,IAAI,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,QAAQ,IAAI,OAAO,GAAG,CAAC;AACvB,QAAQ,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACnE,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;AAC9D,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACrD,YAAY,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM;AACpD,YAAY,OAAO,GAAG,GAAG,MAAM,GAAG,MAAM;AACxC,SAAS,EAAE,EAAE,CAAC;AACd,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,uDAAuD,EAAE;AACxF,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;AAC/B,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD;AACA,IAAI,OAAO,IAAI;AACf,CAAC;AACD;AACA;AACA;AACO,MAAM,IAAI,mBAAmB,qBAAqB,CAAC,aAAa,CAAC;;ACxExE;iBAIO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC5C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9H;AACA;;ACrBO,SAAS,4BAA4B,CAAC,IAAI,EAAE;AACnD,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;AAClF;AA6BO,SAAS,4BAA4B,CAAC,eAAe,EAAE;AAC9D,IAAI,OAAO,eAAe,GAAG,QAAQ,CAAC,KAAK,gCAAgC;AAC3E;AAmBO,SAASC,oBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,qBAAqB;AACrD;AACO,SAAS,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE;AAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,CAACC,uBAAqB,CAAC,MAAM,CAAC,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,GAAG,UAAU;AACzB,YAAY,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACxD,gBAAgB,iDAAiD,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AAC5F,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,MAAM;AAC7B,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,MAAM,CAAC,OAAO;AACzC,wBAAwB,MAAM,EAAE,IAAI;AACpC,wBAAwB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU;AACrD,4BAA4B;AAC5B,gCAAgC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;AACrE;AACA,8BAA8B,SAAS,CAAC;AACxC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS;AACT;AACA,IAAI,OAAO,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC;AAClD;AACO,SAAS,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE;AACxD,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACvD,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE;AAC/C,YAAY,MAAM,IAAI,uBAAuB,EAAE;AAC/C;AACA,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,gBAAgB,EAAE;AACvD,YAAY,MAAM,IAAI,8BAA8B,EAAE;AACtD;AACA,QAAQ,iDAAiD,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AACpF,QAAQ,OAAO;AACf,YAAY,GAAG,MAAM;AACrB,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,MAAM,CAAC,OAAO;AACjC,gBAAgB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU;AAC7C,oBAAoB;AACpB,wBAAwB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,KAAKC,eAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,SAAS;AAC9H;AACA,sBAAsB,SAAS,CAAC;AAChC,gBAAgB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;AACzE,oBAAoB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;AACtE,sBAAsB,IAAI;AAC1B,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE;AACrC;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9C,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,KAAK,aAAa,EAAE;AACxD,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,KAAK,aAAa,EAAE;AACxD,QAAQ,IAAI,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE;AACnD,YAAY,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe;AAC1D,YAAY,OAAO,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC;AACrD;AACA,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAClC;AACA,IAAI,OAAO,IAAI;AACf;AACA,SAASA,eAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,4BAA4B,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxJ,IAAI,OAAO;AACX,QAAQ,GAAG,QAAQ;AACnB,QAAQ,QAAQ,EAAE;AAClB,YAAY,GAAG,QAAQ,CAAC,QAAQ;AAChC,YAAY,gBAAgB,EAAEF,oBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS;AAC7G,kBAAkB,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS;AACrF,sBAAsB,IAAI;AAC1B,SAAS;AACT,KAAK;AACL;AACO,SAAS,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACtD,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1D,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,4BAA4B,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvJ,IAAI,QAAQ,4BAA4B,CAAC,SAAS,CAAC;AACnD,SAASA,oBAAkB,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC;AAC9E;AACO,SAASC,uBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;AAC9D,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,QAAQ,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAKD,oBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK;AAC9H;AACO,SAAS,iDAAiD,CAAC,SAAS,EAAE;AAC7E,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,IAAI,EAAE,EAAE;AAC5C,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1C,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,iEAAiE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxH;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,KAAK,EAAE;AAC1C,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE;AACpC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AACtC,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,wEAAwE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3H;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;AAC3C,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;AAC1J;AACA;AACA;;AChKO,MAAM,kBAAkB,GAAG,CAAC,OAAO,KAAK;AAC/C,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,WAAW;AACxC,CAAC;AACM,MAAM,aAAa,GAAG,CAAC,OAAO,KAAK;AAC1C,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,MAAM;AACnC,CAAC;;ACLD,IAAI,sBAAsB,EAAE,6BAA6B,EAAE,oCAAoC,EAAE,mCAAmC,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mCAAmC,EAAE,wBAAwB;AAG5W,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE;AAC/C,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,QAAQ,oCAAoC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;AACjE,QAAQ,mCAAmC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;AAChE,QAAQ,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjD,QAAQ,8BAA8B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;AAC3D,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;AAC1D,QAAQ,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5C,QAAQ,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3C,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAQ,mCAAmC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5D,QAAQ,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACrG,YAAY,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,GAAG,CAAC;AAC5F,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,MAAM,EAAE,GAAG,CAAC;AAC1F,SAAS,CAAM,CAAC;AAChB,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC/F,YAAY,sBAAsB,CAAC,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,CAAC;AACtF,YAAY,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,GAAG,CAAC;AACpF,SAAS,CAAM,CAAC;AAChB;AACA;AACA;AACA;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACzF,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACnF;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB;AACA;AACA,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM;AAClC,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACjC,aAAa,EAAE,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9G,SAAS,EAAE,CAAC,CAAC;AACb;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1F,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7B;AACA,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC;AACpE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC;AACtE;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC;AACtE;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;AACxB,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACrK,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;AACpC,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC1F,QAAQ,IAAI,CAAC,SAAS;AACtB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACzE,QAAQ,IAAI,KAAK,IAAI,CAAC;AACtB,YAAY,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACtC,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC1B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACrK,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChD,QAAQ,OAAO,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,IAAS,CAAC;AACxF,YAAY,IAAI,KAAK,KAAK,OAAO;AACjC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;AACrC,SAAS,CAAC;AACV;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,IAAS,CAAC;AACpF,QAAQ,MAAM,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC;AACxE;AACA,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE;AAC1B;AACA,QAAQ,IAAI,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE;AACnE,YAAY;AACZ;AACA,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE;AAC7B,YAAY,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAS,CAAC;AACvE,YAAY,sBAAsB,CAAC,IAAI,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxF;AACA,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC1F,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/G,YAAY,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAClE;AACA,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE;AAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AAC/G,gBAAgB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC;AACA,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACpG,YAAY,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9F,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B,YAAY;AACZ;AACA,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE;AAC/B;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC;AACA,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACpG,YAAY,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9F,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B;AACA;AACA,IAAI,UAAU,GAAG;AACjB;AACA,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,oCAAoC,GAAG,IAAI,OAAO,EAAE,EAAE,mCAAmC,GAAG,IAAI,OAAO,EAAE,EAAE,uBAAuB,GAAG,IAAI,OAAO,EAAE,EAAE,8BAA8B,GAAG,IAAI,OAAO,EAAE,EAAE,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,sBAAsB,GAAG,IAAI,OAAO,EAAE,EAAE,kBAAkB,GAAG,IAAI,OAAO,EAAE,EAAE,oBAAoB,GAAG,IAAI,OAAO,EAAE,EAAE,oBAAoB,GAAG,IAAI,OAAO,EAAE,EAAE,mCAAmC,GAAG,IAAI,OAAO,EAAE,EAAE,sBAAsB,GAAG,IAAI,OAAO,EAAE,EAAE,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,KAAK,EAAE;AAC3lB,IAAI,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAS,CAAC;AACjE,IAAI,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/D,QAAQ,KAAK,GAAG,IAAI,iBAAiB,EAAE;AACvC;AACA,IAAI,IAAI,KAAK,YAAY,iBAAiB,EAAE;AAC5C,QAAQ,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAS,CAAC;AACrE,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AACzC;AACA,IAAI,IAAI,KAAK,YAAY,WAAW,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AACzC;AACA,IAAI,IAAI,KAAK,YAAY,KAAK,EAAE;AAChC,QAAQ,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1D;AACA,QAAQ,WAAW,CAAC,KAAK,GAAG,KAAK;AACjC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;AAC/C;AACA,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;;ACxLM,SAAS,2BAA2B,CAAC,EAAE,EAAE;AAChD,IAAI,OAAO,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU;AACzC;;ACFA,IAAI,uCAAuC,EAAE,6CAA6C,EAAE,6CAA6C,EAAE,sDAAsD,EAAE,4DAA4D,EAAE,iDAAiD,EAAE,4CAA4C,EAAE,yDAAyD;AAO3Z,MAAM,4BAA4B,GAAG,EAAE;AAChC,MAAM,4BAA4B,SAAS,WAAW,CAAC;AAC9D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B;AACA,IAAI,kBAAkB,CAAC,cAAc,EAAE;AACvC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO;AAC1D,QAAQ,IAAI,OAAO;AACnB,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACrC,QAAQ,OAAO,cAAc;AAC7B;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE;AACtC,QAAQ,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC;AACnC,YAAY,OAAO,CAAC,OAAO,GAAG,IAAI;AAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1C,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;AAC3D;AACA,gBAAgB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC;AACrE;AACA,iBAAiB,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;AACxE,gBAAgB,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE;AAC5D,oBAAoB,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE;AACvD,wBAAwB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY,MAAM,IAAI,WAAW,CAAC,iDAAiD,CAAC;AACpF,QAAQ,OAAO,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,qBAAqB,GAAG;AAClC,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,sDAAsD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5J;AACA,IAAI,MAAM,2BAA2B,GAAG;AACxC,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,4DAA4D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAClK;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,iDAAiD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvJ;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACzC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAClF,QAAQ,IAAI,UAAU;AACtB,YAAY,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC;AACzD,QAAQ,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACjK,QAAQ,IAAI,YAAY;AACxB,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC;AACpD,QAAQ,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACjK,QAAQ,IAAI,YAAY;AACxB,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC;AACpD,QAAQ,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,sDAAsD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/K,QAAQ,IAAI,iBAAiB;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;AAClE,QAAQ,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,4DAA4D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3L,QAAQ,IAAI,uBAAuB,IAAI,IAAI;AAC3C,YAAY,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,uBAAuB,CAAC;AAC9E,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACxD,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,iDAAiD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9K;AACA;AACA,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,4CAA4C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AACnJ,QAAQ,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACjJ,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACnF;AACA,IAAI,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtD,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C;AACA,QAAQ,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACxE;AACA,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,IAAI,GAAG,MAAM;AAC3B,QAAQ,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM;AACtE,QAAQ,MAAM,oBAAoB,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,WAAW,EAAE,QAAQ,EAAE,IAAI;AACtI,QAAQ,MAAM,EAAE,kBAAkB,GAAG,4BAA4B,EAAE,GAAG,OAAO,IAAI,EAAE;AACnF;AACA,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtD,YAAY,IAAIA,oBAAkB,CAAC,IAAI,CAAC,EAAE;AAC1C,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACrC,oBAAoB,MAAM,IAAI,WAAW,CAAC,uEAAuE,CAAC;AAClH;AACA,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,QAAQ,EAAE,IAAI,CAAC,SAAS;AAChD,wBAAwB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AAChD,wBAAwB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;AACpE,wBAAwB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC5D,wBAAwB,KAAK,EAAE,IAAI,CAAC,SAAS;AAC7C,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,iBAAiB;AACjB;AACA,YAAY,OAAO,IAAI;AACvB,SAAS,CAAC;AACV,QAAQ,MAAM,eAAe,GAAG,EAAE;AAClC,QAAQ,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AACpC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE;AACvC,gBAAgB,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;AACzF;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,OAAO,IAAI,MAAM;AACvC,YAAY,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU;AACvD,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;AACzE,wBAAwB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU;AACzD,wBAAwB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW;AAC3D,wBAAwB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;AACjD,qBAAqB;AACrB;AACA,kBAAkB,CAAC;AACnB,cAAc,SAAS;AACvB,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;AACrD,YAAY,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;AAC5E,gBAAgB,GAAG,UAAU;AAC7B,gBAAgB,WAAW;AAC3B,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5C,aAAa,EAAE,OAAO,CAAC;AACvB,YAAY,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO;AAC9D,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,0CAA0C,CAAC,CAAC;AACnF;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE;AAC7C,gBAAgB;AAChB;AACA,YAAY,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE;AACxD,gBAAgB,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;AACjD,oBAAoB;AACpB,gBAAgB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE;AACjD,gBAAgB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ;AACpE,gBAAgB,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;AAChD,gBAAgB,IAAI,CAAC,EAAE,EAAE;AACzB,oBAAoB,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;AACrI,yBAAyB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3D,yBAAyB,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC;AACvD,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrE,oBAAoB;AACpB;AACA,qBAAqB,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,IAAI,EAAE;AAChF,oBAAoB,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,4BAA4B,CAAC;AACrJ,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrE,oBAAoB;AACpB;AACA,gBAAgB,IAAI,MAAM;AAC1B,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,GAAG,2BAA2B,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;AAC1F;AACA,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1F,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrE,oBAAoB;AACpB;AACA;AACA,gBAAgB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AAClE,gBAAgB,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,yDAAyD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;AAC5L,gBAAgB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACjE,gBAAgB,IAAI,oBAAoB,EAAE;AAC1C,oBAAoB;AACpB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,6CAA6C,GAAG,SAAS,6CAA6C,GAAG;AAClK,IAAI,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI;AAC/J,CAAC,EAAE,6CAA6C,GAAG,SAAS,6CAA6C,GAAG;AAC5G,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAChC,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACpB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;AACzC;AACA,YAAY,MAAM,GAAG,GAAG;AACxB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AAChD,gBAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AAChD,aAAa;AACb,YAAY,OAAO,GAAG;AACtB;AACA;AACA,IAAI,MAAM,IAAI,WAAW,CAAC,4EAA4E,CAAC;AACvG,CAAC,EAAE,sDAAsD,GAAG,SAAS,sDAAsD,GAAG;AAC9H,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;AACxE,YAAY,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ;AAC3F;AACA;AACA,IAAI;AACJ,CAAC,EAAE,4DAA4D,GAAG,SAAS,4DAA4D,GAAG;AAC1I,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC;AAClC,YAAY,OAAO,CAAC,OAAO,IAAI,IAAI;AACnC,YAAY,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;AAC/C,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW;AAC5D,gBAAgB,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE;AACpG,YAAY,OAAO,OAAO,CAAC,OAAO;AAClC;AACA;AACA,IAAI;AACJ,CAAC,EAAE,iDAAiD,GAAG,SAAS,iDAAiD,GAAG;AACpH,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,iBAAiB,EAAE,CAAC;AAC5B,QAAQ,aAAa,EAAE,CAAC;AACxB,QAAQ,YAAY,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB;AAC9D,YAAY,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;AACtD,YAAY,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY;AACpD;AACA;AACA,IAAI,OAAO,KAAK;AAChB,CAAC,EAAE,4CAA4C,GAAG,SAAS,4CAA4C,CAAC,MAAM,EAAE;AAChH,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE;AAC1C,QAAQ,MAAM,IAAI,WAAW,CAAC,8HAA8H,CAAC;AAC7J;AACA,CAAC,EAAE,yDAAyD,GAAG,SAAS,yDAAyD,CAAC,UAAU,EAAE;AAC9I,IAAI,QAAQ,OAAO,UAAU,KAAK,QAAQ,GAAG;AAC7C,UAAU,UAAU,KAAK,SAAS,GAAG;AACrC,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxC,CAAC;;AC3RM,MAAM,oBAAoB,SAAS,4BAA4B,CAAC;AACvE,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE;AACjD,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE;AACrF,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE;AACtC,QAAQ,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;AAC5D,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;AAClD;AACA;AACA;;AClBA,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,IAAI,GAAG,WAAW;AACxB,MAAM,IAAI,GAAG,WAAW;AACxB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,QAAQ,GAAG,WAAW;AAC5B,MAAM,cAAc,GAAG,WAAW;AAClC,MAAM,GAAG,GAAG,QAAQ,GAAG,cAAc;AACrC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;AACvC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO;AAChC,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG;AAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,UAAU;AAC7B,MAAM,KAAK,GAAG;AACd,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,GAAG;AACP,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,GAAG;AACP,CAAC;AACD;AACA,MAAM,WAAW,SAAS,KAAK,CAAC;AAChC;AACA,MAAM,aAAa,SAAS,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,UAAU,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE;AACzD,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACxC,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC;AACtE;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE;AAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AACjD;AACA,IAAI,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC;AACtD;AACA,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,KAAK,KAAK;AAC1C,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AACpC,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK;AACrC,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAK;AACzC,QAAQ,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,SAAS,EAAE;AACnB,QAAQ,IAAI,KAAK,IAAI,MAAM;AAC3B,YAAY,eAAe,CAAC,yBAAyB,CAAC;AACtD,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,OAAO,QAAQ,EAAE;AAC7B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,OAAO,QAAQ,EAAE;AAC7B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,OAAO,QAAQ,EAAE;AAC7B,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,MAAM;AAC7D,aAAa,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1G,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,MAAM;AAC7D,aAAa,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1G,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,OAAO;AAC9D,aAAa,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC3G,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,UAAU;AACjE,aAAa,KAAK,CAAC,QAAQ,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAClH,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,QAAQ;AAC3B;AACA,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,WAAW;AAClE,aAAa,KAAK,CAAC,cAAc,GAAG,KAAK;AACzC,gBAAgB,CAAC,GAAG,MAAM,GAAG,KAAK;AAClC,gBAAgB,MAAM,GAAG,KAAK,GAAG,CAAC;AAClC,gBAAgB,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACtE,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,CAAC,QAAQ;AAC5B;AACA,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AAC5D,aAAa,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACxG,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,GAAG;AACtB;AACA,QAAQ,OAAO,QAAQ,EAAE;AACzB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,MAAM,KAAK,GAAG,KAAK;AAC3B,QAAQ,IAAI,MAAM,GAAG,KAAK;AAC1B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,KAAK,GAAG,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,MAAM,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;AAC5G,YAAY,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK;AACjE,YAAY,KAAK,EAAE;AACnB;AACA,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;AAC7C,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA;AACA,aAAa,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,EAAE;AACpC,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5F;AACA,YAAY,OAAO,CAAC,EAAE;AACtB;AACA,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAClG;AACA;AACA,QAAQ,eAAe,CAAC,6BAA6B,CAAC;AACtD,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,SAAS,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,IAAI;AACZ,YAAY,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC9C,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACxD,oBAAoB,OAAO,GAAG;AAC9B,gBAAgB,MAAM,GAAG,GAAG,QAAQ,EAAE;AACtC,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC5C,oBAAoB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACpH;AACA,gBAAgB,OAAO,CAAC,EAAE;AAC1B,oBAAoB,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACzC,wBAAwB,OAAO,GAAG;AAClC;AACA,wBAAwB,MAAM,CAAC;AAC/B;AACA,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AAC7C,oBAAoB,KAAK,EAAE,CAAC;AAC5B;AACA;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACjC,gBAAgB,OAAO,GAAG;AAC1B;AACA,gBAAgB,eAAe,CAAC,+BAA+B,CAAC;AAChE;AACA,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,GAAG;AAClB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,IAAI;AACZ,YAAY,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC9C,gBAAgB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpC,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC/C,oBAAoB,KAAK,EAAE,CAAC;AAC5B;AACA;AACA;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,EAAE;AACnC,gBAAgB,OAAO,GAAG;AAC1B;AACA,YAAY,eAAe,CAAC,8BAA8B,CAAC;AAC3D;AACA,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,GAAG;AAClB,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;AACzB,YAAY,IAAI,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACvD,gBAAgB,eAAe,CAAC,sBAAsB,CAAC;AACvD,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7C;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,EAAE;AACvC,oBAAoB,IAAI;AACxB,wBAAwB,IAAI,GAAG,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,4BAA4B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACnG,wBAAwB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/F;AACA,oBAAoB,OAAO,CAAC,EAAE;AAC9B;AACA,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA;AACA,QAAQ,MAAM,KAAK,GAAG,KAAK;AAC3B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,KAAK,EAAE;AACnB,QAAQ,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACtE,YAAY,KAAK,EAAE;AACnB,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;AACnD,YAAY,eAAe,CAAC,6BAA6B,CAAC;AAC1D,QAAQ,IAAI;AACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjE;AACA,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AAC/E,gBAAgB,eAAe,CAAC,sBAAsB,CAAC;AACvD,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA;AACA,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,MAAM;AAC5B,QAAQ,OAAO,KAAK,GAAG,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AACxE,YAAY,KAAK,EAAE;AACnB;AACA,KAAK;AACL,IAAI,OAAO,QAAQ,EAAE;AACrB,CAAC;AACD;AACA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;;AC9OvE,IAAI,+BAA+B,EAAE,4BAA4B,EAAE,uCAAuC,EAAE,mDAAmD,EAAE,kCAAkC,EAAE,yCAAyC,EAAE,8BAA8B,EAAE,2CAA2C,EAAE,2CAA2C,EAAE,gCAAgC,EAAE,oDAAoD,EAAE,8CAA8C;AAOze,MAAM,oBAAoB,SAAS,4BAA4B,CAAC;AACvE,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC;AACjD,QAAQ,4BAA4B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACtD,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjE,QAAQ,mDAAmD,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7E,QAAQ,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,MAAW,CAAC;AAC/E,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,EAAO,CAAC;AACtF;AACA,IAAI,IAAI,6BAA6B,GAAG;AACxC,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,GAAG,CAAC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC;AACrD,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD,QAAQ,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC;AACvD,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClL,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD,QAAQ,KAAK,CAAC,qBAAqB;AACnC,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzH,QAAQ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACxI,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAChI;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvJ;AACA,IAAI,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE;AACvD,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzH,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC;AACjF,QAAQ,IAAI,MAAM;AAClB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,IAAI,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE;AAC/C;AACA,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxJ;AACA,YAAY,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAChI,YAAY,MAAM,GAAG,KAAK,CAAC,EAAE;AAC7B;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvJ;AACA,IAAI,EAAE,4BAA4B,GAAG,IAAI,OAAO,EAAE,EAAE,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,mDAAmD,GAAG,IAAI,OAAO,EAAE,EAAE,+BAA+B,GAAG,IAAI,OAAO,EAAE,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,GAAG;AACtT,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,SAAc,CAAC;AACzG,KAAK,EAAE,yCAAyC,GAAG,SAAS,yCAAyC,CAAC,MAAM,EAAE;AAC9G,QAAQ,IAAI,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5G,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,KAAK,GAAG;AAChB,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,qBAAqB,EAAE,KAAK;AACxC,YAAY,qBAAqB,EAAE,KAAK;AACxC,YAAY,eAAe,EAAE,IAAI,GAAG,EAAE;AACtC,YAAY,uBAAuB,EAAE,IAAI;AACzC,SAAS;AACT,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK;AACxG,QAAQ,OAAO,KAAK;AACpB,KAAK,EAAE,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,KAAK,EAAE;AACvF,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,8CAA8C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/J,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;AAC9C,QAAQ,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AAC5C,YAAY,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACnE,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;AAC5C,gBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW;AAC5D,gBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AACjD,gBAAgB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3F,gBAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC5C,oBAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AAC/C,oBAAoB,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AAC5D,oBAAoB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;AACzD,iBAAiB,CAAC;AAClB;AACA,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;AAC5C,gBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW;AAC5D,gBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AACjD,gBAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC5C,oBAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AAC/C,oBAAoB,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AAC5D,iBAAiB,CAAC;AAClB;AACA,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE;AAClG,gBAAgB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;AACrD,oBAAoB,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;AACrD,oBAAoB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE;AACpE,iBAAiB,CAAC;AAClB;AACA,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE;AAClG,gBAAgB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;AACrD,oBAAoB,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;AACrD,oBAAoB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE;AACpE,iBAAiB,CAAC;AAClB;AACA,YAAY,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAClK,YAAY,IAAI,cAAc,CAAC,aAAa,EAAE;AAC9C,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC1J,gBAAgB,IAAI,KAAK,CAAC,uBAAuB,IAAI,IAAI,EAAE;AAC3D,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,uBAAuB,CAAC;AAC7L;AACA;AACA,YAAY,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;AAClE,gBAAgB,IAAI,KAAK,CAAC,uBAAuB,KAAK,QAAQ,CAAC,KAAK,EAAE;AACtE,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9J;AACA,oBAAoB,IAAI,KAAK,CAAC,uBAAuB,IAAI,IAAI,EAAE;AAC/D,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,uBAAuB,CAAC;AACjM;AACA;AACA,gBAAgB,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,KAAK;AAC9D;AACA,YAAY,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;AACvE,gBAAgB,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC;AACjG,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE;AAC7C,oBAAoB;AACpB;AACA,gBAAgB,IAAI,gBAAgB,EAAE,IAAI,KAAK,UAAU,EAAE;AAC3D,oBAAoB,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE;AACtE,wBAAwB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI;AAC7D,wBAAwB,KAAK,EAAE,aAAa,CAAC,KAAK;AAClD,wBAAwB,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACtE,wBAAwB,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB;AACpF,wBAAwB,eAAe,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAChF,qBAAqB,CAAC;AACtB;AACA,qBAAqB;AACrB,oBAAoB,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC;AACvD;AACA;AACA;AACA,KAAK,EAAE,2CAA2C,GAAG,SAAS,2CAA2C,CAAC,cAAc,EAAE,aAAa,EAAE;AACzI,QAAQ,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9J,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AACtD;AACA,YAAY;AACZ;AACA,QAAQ,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC;AACnF,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AACpD;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AAChE;AACA,QAAQ,IAAI,gBAAgB,CAAC,IAAI,KAAK,UAAU,EAAE;AAClD,YAAY,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClN,YAAY,IAAI,CAAC,KAAK,CAAC,oCAAoC,EAAE;AAC7D,gBAAgB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI;AACpD,gBAAgB,KAAK,EAAE,aAAa;AACpC,gBAAgB,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AAC9D,gBAAgB,gBAAgB,EAAEA,oBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACzH,sBAAsB,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACjG,0BAA0B,IAAI;AAC9B,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9C;AACA,KAAK,EAAE,2CAA2C,GAAG,SAAS,2CAA2C,CAAC,cAAc,EAAE;AAC1H,QAAQ,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9J,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACnE,YAAY,KAAK,CAAC,YAAY,GAAG,IAAI;AACrC,YAAY,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,oDAAoD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtK,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;AACvC,gBAAgB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACvD,gBAAgB,MAAM,EAAE,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;AACxG,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACnE,YAAY,KAAK,CAAC,YAAY,GAAG,IAAI;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACnF;AACA,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;AAC9E,YAAY,KAAK,CAAC,qBAAqB,GAAG,IAAI;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC7F;AACA,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;AAC9E,YAAY,KAAK,CAAC,qBAAqB,GAAG,IAAI;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC7F;AACA,KAAK,EAAE,gCAAgC,GAAG,SAAS,gCAAgC,GAAG;AACtF,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC5E;AACA,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,GAAG,CAAC;AAC/G,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,wCAAwC,CAAC,CAAC;AAC7E;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,SAAc,CAAC;AACzG,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,EAAO,CAAC;AACtF,QAAQ,OAAO,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC;AAChH,KAAK,EAAE,oDAAoD,GAAG,SAAS,oDAAoD,GAAG;AAC9H,QAAQ,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,EAAE,eAAe;AAC/G,QAAQ,IAAI,4BAA4B,CAAC,cAAc,CAAC,EAAE;AAC1D,YAAY,OAAO,cAAc;AACjC;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK,EAAE,8CAA8C,GAAG,SAAS,8CAA8C,CAAC,KAAK,EAAE;AACvH,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1B,QAAQ,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,GAAG,CAAC;AAC7G,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAC1C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE;AACzG,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,aAAkB,CAAC;AACnB;AACA,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;AACzC;AACA,QAAQ,KAAK,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;AAChG,YAAY,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAChD,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE;AAC5G;AACA,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACtC,oBAAoB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC;AACjE;AACA,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ;AAElE,oBAAoB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;AACxD,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3E,wBAAwB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAChE;AACA,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3E,wBAAwB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAChE;AACA;AACA;AACA,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,MAAM,CAAC,aAAa,GAAG,aAAa;AACpD,gBAAgB,IAAI,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,IAAIC,uBAAqB,CAAC,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/K,oBAAoB,IAAI,aAAa,KAAK,QAAQ,EAAE;AACpD,wBAAwB,MAAM,IAAI,uBAAuB,EAAE;AAC3D;AACA,oBAAoB,IAAI,aAAa,KAAK,gBAAgB,EAAE;AAC5D,wBAAwB,MAAM,IAAI,8BAA8B,EAAE;AAClE;AACA;AACA;AACA,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;AACxC,YAAY,IAAI,CAAC,KAAK;AACtB,gBAAgB,SAAS;AACzB,YAAY,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAExF,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;AAC/C,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,OAAO;AACjF;AACA,YAAY,IAAI,IAAI;AACpB,gBAAgB,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AAC1C,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;AACnD,oBAAoB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa;AAChE;AACA,qBAAqB;AACrB,oBAAoB,IAAI,aAAa,CAAC,IAAI;AAC1C,wBAAwB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AAC9E,oBAAoB,IAAI,aAAa,CAAC,SAAS,EAAE;AACjD,wBAAwB,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,KAAK,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;AAC5F,wBAAwB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS;AACzF;AACA;AACA;AACA,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,OAAO;AACjF,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,oDAAoD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpL,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AAChF;AACA;AACA,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;AAC9C,oBAAoB,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAClD,gBAAgB,KAAK,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,UAAU,EAAE;AACrF,oBAAoB,MAAM,SAAS,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AACnG,oBAAoB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAClD,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,CAAC,EAAE,GAAG,EAAE;AACzC,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,SAAS,CAAC,IAAI,GAAG,IAAI;AAC7C,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAC3G,oBAAoB,IAAI,EAAE,EAAE,IAAI;AAChC,wBAAwB,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;AACzD,oBAAoB,IAAI,EAAE,EAAE,SAAS,EAAE;AACvC,wBAAwB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS;AACpE,wBAAwB,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE;AAC7H,4BAA4B,SAAS,CAAC,QAAQ,CAAC,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5G;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO,QAAQ;AACvB,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAChC,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,GAAG,KAAK;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE;AAC5C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC;AACA,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7B,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY;AAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvC,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/D;AACA,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5L;AACA,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;AAC/C,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,aAAa;AACb,YAAY,MAAM,EAAE,YAAY;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,aAAa;AACb,SAAS;AACT;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AACzF,QAAQ,OAAO,MAAM,CAAC,gBAAgB,EAAE;AACxC;AACA;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClD,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ;AACjF,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,GAAG,IAAI;AACf,QAAQ,EAAE;AACV,QAAQ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,KAAK;AAC7F,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC,CAAC;AAClF;AACA,YAAY,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO;AACzF,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACtC,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE;AACA,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa;AAC/D,gBAAgB,IAAI,IAAI,IAAI,IAAI,EAAE;AAClC,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC,CAAC;AAChG;AACA,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3F;AACA,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,UAAU;AACjC,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,OAAO;AAC/B,wBAAwB,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAChE,wBAAwB,IAAI;AAC5B,wBAAwB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AACxD,qBAAqB;AACrB,oBAAoB,aAAa;AACjC,oBAAoB,KAAK;AACzB,oBAAoB,QAAQ;AAC5B,iBAAiB;AACjB;AACA,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,UAAU;AACjC,oBAAoB,KAAK;AACzB,oBAAoB,aAAa;AACjC,oBAAoB,QAAQ;AAC5B,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,WAAW;AACtC,wBAAwB,IAAI;AAC5B,wBAAwB,OAAO;AAC/B,wBAAwB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AACxD,wBAAwB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK;AACrE,4BAA4B,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS;AACrF,4BAA4B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACjF,4BAA4B,IAAI,EAAE,IAAI,IAAI,EAAE;AAC5C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAEE,KAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxH;AACA,4BAA4B,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAEA,KAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1H;AACA,4BAA4B,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB,EAAEA,KAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnI;AACA,4BAA4B,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,sBAAsB,EAAEA,KAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxI;AACA,4BAA4B,OAAO,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;AAC5G,yBAAyB,CAAC;AAC1B,qBAAqB;AACrB,iBAAiB;AACjB;AACA,YAAY,OAAO;AACnB,gBAAgB,GAAG,UAAU;AAC7B,gBAAgB,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;AAC5F,gBAAgB,aAAa;AAC7B,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ;AACxB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,MAAM,EAAE,iBAAiB;AACjC,QAAQ,IAAI,kBAAkB,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC;AACvD;AACA,SAASA,KAAG,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5B;AASA,SAAS,WAAW,CAAC,EAAE,EAAE;;ACtelB,MAAM,6BAA6B,SAAS,oBAAoB,CAAC;AACxE,IAAI,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC;AAC9D,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,6BAA6B;AACxD;AACA,QAAQ,MAAM,CAAC;AACf,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE;AACrF,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,QAAQ,OAAO,MAAM;AACrB;AACA;;AClBA;oBAUO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,UAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AACrF;AACA,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AACzB,QAAQ,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,aAAa,MAAM,CAAC,IAAI,EAAE;AAC1B,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,OAAO,EAAE,OAAO;AACnC,gBAAgB,2BAA2B,EAAE,wBAAwB;AACrE,aAAa;AACb,SAAS;AACT,aAAa,WAAW,CAAC,CAAC,UAAU,KAAK,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC/E;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,OAAO,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACtF;AACA,QAAQ,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACzE;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACrF;AACA;AAKAC,aAAW,CAAC,QAAQ,GAAGC,UAAQ;;ACxG/B;AAIO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,aAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE;AACA;AACA,IAAI,CAAC,WAAW,GAAGF,aAAW;;ACV9B;AAEA,MAAM,4BAA4B,mBAAmB,MAAM,CAAC,8BAA8B,CAAC;AAC3F,UAAU,cAAc,CAAC,OAAO,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ;AACR,IAAI,IAAI,4BAA4B,IAAI,OAAO,EAAE;AACjD,QAAQ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;AACzC,QAAQ,OAAO,MAAM,CAAC,OAAO,EAAE;AAC/B,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9B;AACA,QAAQ;AACR;AACA,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,IAAI,IAAI;AACZ,IAAI,IAAI,OAAO,YAAY,OAAO,EAAE;AACpC,QAAQ,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;AAChC;AACA,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;AACvC,QAAQ,IAAI,GAAG,OAAO;AACtB;AACA,SAAS;AACT,QAAQ,WAAW,GAAG,IAAI;AAC1B,QAAQ,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5C;AACA,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;AACpC,YAAY,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC;AACtE,QAAQ,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,KAAK,KAAK,SAAS;AACnC,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,QAAQ,GAAG,IAAI;AAC/B,gBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC;AACA,YAAY,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/B;AACA;AACA;AACO,MAAM,YAAY,GAAG,CAAC,UAAU,KAAK;AAC5C,IAAI,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACjC,IAAI,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;AACtC,QAAQ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;AAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC7C,gBAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,gBAAgB,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C;AACA,YAAY,IAAI,KAAK,KAAK,IAAI,EAAE;AAChC,gBAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,gBAAgB,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C;AACA,iBAAiB;AACjB,gBAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AACjD,gBAAgB,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;AAC7C;AACA;AACA;AACA,IAAI,OAAO,EAAE,CAAC,4BAA4B,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE;AAC9F,CAAC;;ACnED;AAGO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;AAClD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7F,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV;AACA;;AC3BA;AAGO,MAAM,cAAc,SAAS,WAAW,CAAC;AAChD,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;AACtF,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AACxC,YAAY,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC7C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB;AACA;;ACZA;AAGO,MAAM,YAAY,SAAS,WAAW,CAAC;AAC9C,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3J;AACA;;ACPA;AAQO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAIG,cAAgC,CAAC,IAAI,CAAC,OAAO,CAAC;AAChF,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAIC,YAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1E,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;AACxD;AACA;AACA,KAAK,CAAC,cAAc,GAAG,cAAc;AACrC,KAAK,CAAC,YAAY,GAAG,YAAY;AACjC,KAAK,CAAC,MAAM,GAAG,MAAM;;AClBrB;AAIO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAClE;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC5E;AACA;;AC/BA;AAKO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;AAChD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACnE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACpE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,GAAG;AACpE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACtE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;;ACzFA;iBAGO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACvD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;;AC1BA;AAGO,MAAM,qBAAqB,SAAS,WAAW,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE;AACrE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;;AC1BA;AAMA;AACA;AACA;iBACO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,UAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAIC,qBAA8C,CAAC,IAAI,CAAC,OAAO,CAAC;AACrG;AACA;AACAC,UAAQ,CAAC,QAAQ,GAAGC,UAAQ;AAC5BD,UAAQ,CAAC,qBAAqB,GAAG,qBAAqB;;ACjBtD;AAIO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACtD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE;AAC/E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV;AACA;;ACvCA;gBAKO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE;AACrE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,sBAAsB,GAAG;AACrF,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE;AACxE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,sBAAsB,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AACnN;AACA;;ACvEA;AAMO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIF,QAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAII,SAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D;AACA;AACA,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC3B,OAAO,CAAC,OAAO,GAAGC,SAAO;;ACdzB;AAKA;AACA;AACA;AACO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;AACvE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACzC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;AACpF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;AACrF,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG;AAC3F,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;AACvF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;;ACtEA;AAKA;AACA;AACA;AACO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC7F,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG;AACvG,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;;ACnCA;AAgCA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG,CAAC,SAAS,KAAK;AAC7C,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACpH;AACA,SAAS;AACT;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM;AACpC,QAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACzC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9C;AACA,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzD;AACA,CAAC;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK;AAChC,IAAI,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE;AACnD,QAAQ,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS;AACjE;AACA,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AAChD,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE;AACtD;AACA,IAAI,OAAO,SAAS;AACpB,CAAC;;AChBD,IAAI,0BAA0B,EAAEC,IAAE,EAAE,uBAAuB,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,oCAAoC,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,mCAAmC,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,0BAA0B;AAMltB,MAAM,eAAe,SAAS,WAAW,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C;AACA,QAAQ,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7C;AACA;AACA,QAAQ,iCAAiC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACvD,QAAQ,iCAAiC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACvD,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,QAAQ,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD,QAAQ,oCAAoC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9D,QAAQ,+BAA+B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzD,QAAQ,qCAAqC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/D,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D;AACA,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,QAAQ,mCAAmC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7D,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjE;AACA,IAAI,EAAE,uBAAuB,GAAG,IAAI,OAAO,EAAE,EAAE,iCAAiC,GAAG,IAAI,OAAO,EAAE,EAAE,iCAAiC,GAAG,IAAI,OAAO,EAAE,EAAE,gCAAgC,GAAG,IAAI,OAAO,EAAE,EAAE,yBAAyB,GAAG,IAAI,OAAO,EAAE,EAAE,oCAAoC,GAAG,IAAI,OAAO,EAAE,EAAE,+BAA+B,GAAG,IAAI,OAAO,EAAE,EAAE,qCAAqC,GAAG,IAAI,OAAO,EAAE,EAAE,gCAAgC,GAAG,IAAI,OAAO,EAAE,EAAE,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,mCAAmC,GAAG,IAAI,OAAO,EAAE,EAAE,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,0BAA0B,GAAG,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AACpqB,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,GAAG,KAAK;AACxB;AACA,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE;AAC5C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC;AACA,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7B,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY;AAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvC,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/D;AACA,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5L;AACA,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;AAC/C,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,aAAa;AACb,YAAY,MAAM,EAAE,YAAY;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,aAAa;AACb,SAAS;AACT;AACA,IAAI,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE;AACvD,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC;AACjF,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AACzF,QAAQ,OAAO,MAAM,CAAC,gBAAgB,EAAE;AACxC;AACA,IAAI,OAAO,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AACnE,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AAClE,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AAChE,YAAY,GAAG,OAAO;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;AAC1C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI;AACA,IAAI,OAAO,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE;AACxE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AAClE,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC;AAC/E;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC;AACrF;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC;AAClF;AACA,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC;AACzF;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;AAClG;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;AAClG;AACA,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AACzE,YAAY,MAAM,KAAK,CAAC,6BAA6B,CAAC;AACtD,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AAC3E;AACA,IAAI,MAAM,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACtG,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI;AACA,IAAI,MAAM,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;AACjE,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACvG,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI;AACA,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE;AACvC,QAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/D,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC1C,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU;AACrC,gBAAgB;AAChB;AACA,YAAY,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;AACnC,YAAY,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC7D,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU;AACrC,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE;AACnD,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU;AACrC,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChF,gBAAgB,QAAQ,IAAI,UAAU;AACtC;AACA,iBAAiB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACrF,gBAAgB,QAAQ,IAAI,UAAU;AACtC;AACA,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;AAC3D,gBAAgB,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC;AACrE;AACA,iBAAiB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC3E,gBAAgB,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE;AAC3F,oBAAoB,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;AACjD,oBAAoB;AACpB;AACA,gBAAgB,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE;AACrD,oBAAoB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAC5C,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,oDAAoD,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5G;AACA,oBAAoB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;AACrD,oBAAoB,IAAI,KAAK,IAAI,IAAI,EAAE;AACvC,wBAAwB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;AACjD,wBAAwB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACjG;AACA,oBAAoB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnD,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,qEAAqE,EAAE,KAAK,CAAC,CAAC,CAAC;AACxH;AACA,oBAAoB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AACpD,oBAAoB,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC1C,wBAAwB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD;AACA,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC;AACpF;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,CAAC,CAAC,uBAAuB,EAAE,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9G;AACA,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC/B;AACA,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1D,QAAQ,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAC/E;AACA,IAAI,MAAM,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AAC/D,QAAQ,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AACjF;AACA,IAAI,MAAM,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE,QAAQ,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAClF;AACA;AACAA,IAAE,GAAG,eAAe,EAAE,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,KAAK,EAAE;AAC5F,IAAI,IAAI,IAAI,CAAC,KAAK;AAClB,QAAQ;AACR,IAAI,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,KAAU,CAAC;AAC3E,IAAI,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACjH,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,gBAAgB;AAC7B;AACA,YAAY;AACZ,QAAQ,KAAK,oBAAoB;AACjC,QAAQ,KAAK,mBAAmB;AAChC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,uBAAuB;AACpC,QAAQ,KAAK,mBAAmB;AAChC,QAAQ,KAAK,uBAAuB;AACpC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,oBAAoB;AACjC,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACvH,YAAY;AACZ,QAAQ,KAAK,yBAAyB;AACtC,QAAQ,KAAK,6BAA6B;AAC1C,QAAQ,KAAK,uBAAuB;AACpC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,yBAAyB;AACtC,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3H,YAAY;AACZ,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,0BAA0B;AACvC,QAAQ,KAAK,2BAA2B;AACxC,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3H,YAAY;AACZ,QAAQ,KAAK,OAAO;AACpB;AACA,YAAY,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;AAGlH;AACA,CAAC,EAAE,2BAA2B,GAAG,SAAS,2BAA2B,GAAG;AACxE,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,uCAAuC,CAAC,CAAC;AACxE;AACA,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AACrE,QAAQ,MAAM,KAAK,CAAC,iCAAiC,CAAC;AACtD,IAAI,OAAO,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AACvE,CAAC,EAAE,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,KAAK,EAAE;AACnF,IAAI,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACrO,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,kBAAuB,CAAC;AAC3F,IAAI,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,kBAAkB;AACpH,IAAI,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;AACtC,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AACzE,QAAQ,IAAI,eAAe,EAAE,IAAI,IAAI,MAAM,EAAE;AAC7C,YAAY,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC;AAC3D;AACA;AACA,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,wBAAwB;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC;AACpD,YAAY;AACZ,QAAQ,KAAK,4BAA4B;AACzC,YAAY;AACZ,QAAQ,KAAK,sBAAsB;AACnC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC;AAC5E,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC1C,gBAAgB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAChE;AACA,oBAAoB,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;AAChE,wBAAwB,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI;AACpD,wBAAwB,IAAI,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAChF,wBAAwB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,EAAE;AACjE,4BAA4B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC7E;AACA,6BAA6B;AAC7B,4BAA4B,MAAM,KAAK,CAAC,qEAAqE,CAAC;AAC9G;AACA;AACA,oBAAoB,IAAI,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,EAAE;AAClH;AACA,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,EAAE;AAChG,4BAA4B,QAAQ,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,IAAI;AAC3G,gCAAgC,KAAK,MAAM;AAC3C,oCAAoC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACxM,oCAAoC;AACpC,gCAAgC,KAAK,YAAY;AACjD,oCAAoC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACnN,oCAAoC;AACpC;AACA;AACA,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,OAAO,CAAC,KAAU,CAAC;AAC9G;AACA,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAM,CAAC;AACjI;AACA;AACA,YAAY;AACZ,QAAQ,KAAK,0BAA0B;AACvC,QAAQ,KAAK,2BAA2B;AACxC;AACA,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,KAAK,SAAS,EAAE;AACvG,gBAAgB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;AAClI,gBAAgB,IAAI,cAAc,EAAE;AACpC,oBAAoB,QAAQ,cAAc,CAAC,IAAI;AAC/C,wBAAwB,KAAK,YAAY;AACzC,4BAA4B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACvJ,4BAA4B;AAC5B,wBAAwB,KAAK,MAAM;AACnC,4BAA4B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC5I,4BAA4B;AAC5B;AACA;AACA;AACA,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACrF,gBAAgB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC;AACrD;AACA,YAAY,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAc,CAAC;AAC1F;AACA,CAAC,EAAE,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,KAAK,EAAE;AACnF,IAAI,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAClJ,IAAI,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,kBAAuB,CAAC;AAClG,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,yBAAyB;AACtC,YAAY,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC;AACpD,YAAY;AACZ,QAAQ,KAAK,uBAAuB;AACpC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;AAC1C,YAAY,IAAI,KAAK,CAAC,YAAY;AAClC,gBAAgB,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,YAAY;AACvD,gBAAgB,KAAK,CAAC,YAAY,CAAC,UAAU;AAC7C,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,IAAI,IAAI,YAAY,EAAE;AACtE,gBAAgB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;AACtE,oBAAoB,IAAI,QAAQ,CAAC,KAAK,IAAI,sBAAsB,CAAC,IAAI,EAAE,qCAAqC,EAAE,GAAG,CAAC,EAAE;AACpH,wBAAwB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzH;AACA,yBAAyB;AACzB,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACjG,4BAA4B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC3H;AACA,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,qCAAqC,EAAE,QAAQ,CAAC,KAAU,CAAC;AAChH,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAM,CAAC;AACvJ,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC;AAC/F,4BAA4B,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC9H;AACA;AACA;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC;AAC5E,YAAY;AACZ,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,yBAAyB;AACtC,YAAY,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,SAAc,CAAC;AACjG,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY;AACnD,YAAY,IAAI,OAAO,CAAC,IAAI,IAAI,YAAY,EAAE;AAC9C,gBAAgB,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACzF,oBAAoB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACnH,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAc,CAAC;AAClG;AACA;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC;AACrE,YAAY;AAGZ;AACA,CAAC,EAAE,4BAA4B,GAAG,SAAS,4BAA4B,CAAC,KAAK,EAAE;AAC/E,IAAI,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1E,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AAC9B,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,KAAK,EAAE;AAC3F,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,yBAAyB;AACtC,YAAY,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI;AAC5G,YAAY,OAAO,KAAK,CAAC,IAAI;AAC7B,QAAQ,KAAK,uBAAuB;AACpC,YAAY,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9G,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,MAAM,KAAK,CAAC,uDAAuD,CAAC;AACpF;AACA,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;AACjC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,MAAM,WAAW,GAAGA,IAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;AAC5E,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW;AACjH;AACA,YAAY,OAAO,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACtG,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,yBAAyB;AACtC,QAAQ,KAAK,6BAA6B;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI;AAC5G,YAAY;AACZ;AACA,IAAI,IAAI,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3F,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,IAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AAC5C,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,KAAK,EAAE,QAAQ,EAAE;AACrG,IAAI,IAAI,UAAU,GAAG,EAAE;AACvB,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,wBAAwB;AACrC;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;AAC3C,QAAQ,KAAK,sBAAsB;AACnC,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,MAAM,KAAK,CAAC,wFAAwF,CAAC;AACrH;AACA,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;AACjC;AACA,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpC,gBAAgB,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACjE,oBAAoB,IAAI,cAAc,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClE,wBAAwB,IAAI,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;AACnF,wBAAwB,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC;AAC7M;AACA,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc;AAC/E;AACA,wBAAwB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;AACvD;AACA;AACA;AACA,YAAY,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;AACzC,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,0BAA0B;AACvC,QAAQ,KAAK,2BAA2B;AACxC;AACA,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC7C;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,CAAC,yDAAyD,CAAC;AACtF;AACA;AACA,IAAI,MAAM,KAAK,CAAC,yCAAyC,CAAC;AAC1D,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,cAAc,EAAE,cAAc,EAAE;AACpH,IAAI,OAAOA,IAAE,CAAC,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC;AAC7D,CAAC,EAAE,0BAA0B,GAAG,SAAS,0BAA0B,CAAC,KAAK,EAAE;AAC3E,IAAI,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,CAAC,IAAS,CAAC;AACtF,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,oBAAoB;AACjC,YAAY;AACZ,QAAQ,KAAK,mBAAmB;AAChC,YAAY;AACZ,QAAQ,KAAK,wBAAwB;AACrC,YAAY;AACZ,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,mBAAmB;AAChC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,oBAAoB;AACjC,QAAQ,KAAK,uBAAuB;AACpC,YAAY,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,CAAC,IAAS,CAAC;AACpF,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACrF,gBAAgB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC/G,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAc,CAAC;AAC9F;AACA,YAAY;AAGZ;AACA,CAAC;;ACliBD;AASA;AACA;AACA;aACO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC3C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnE,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;AAC1C,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AAC5E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AAC7E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG;AACvF,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACpF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9D,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,eAAe,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY;AACZ,gBAAgB,yBAAyB,EAAE,MAAM;AACjD,gBAAgB,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,SAAS;AACpG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/E,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;AAC5D,aAAa,CAAC,CAAC,YAAY,EAAE;AAC7B,YAAY,QAAQ,GAAG,CAAC,MAAM;AAC9B;AACA,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,aAAa;AAClC,gBAAgB,KAAK,YAAY;AACjC,oBAAoB,IAAI,aAAa,GAAG,IAAI;AAC5C,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE;AACjD,wBAAwB,aAAa,GAAG,OAAO,CAAC,cAAc;AAC9D;AACA,yBAAyB;AACzB,wBAAwB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC3F,wBAAwB,IAAI,cAAc,EAAE;AAC5C,4BAA4B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC7E,4BAA4B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1D,gCAAgC,aAAa,GAAG,gBAAgB;AAChE;AACA;AACA;AACA,oBAAoB,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9C,oBAAoB;AACpB;AACA,gBAAgB,KAAK,iBAAiB;AACtC,gBAAgB,KAAK,YAAY;AACjC,gBAAgB,KAAK,WAAW;AAChC,gBAAgB,KAAK,WAAW;AAChC,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,SAAS;AAC9B,oBAAoB,OAAO,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,eAAe,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AAC7G;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9C,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAAE;AACjG,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;AAC1C,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AACxE,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACpD,QAAQ,OAAO,eAAe,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;AAChH;AACA;AACAC,MAAI,CAAC,KAAK,GAAG,KAAK;;AC/KlB;AASA;AACA;AACA;AACO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,MAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIhB,QAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE;AAC7C,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC7D,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC9D,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAChE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;AAClD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AACxC,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1C,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;AAC1D,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC;AAClF;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,eAAe,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACpG;AACA;AACA,OAAO,CAAC,IAAI,GAAGe,MAAI;AACnB,OAAO,CAAC,QAAQ,GAAG,QAAQ;;ACzF3B;AAUO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIE,UAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;AACpE,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIR,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D;AACA;AACA,IAAI,CAAC,QAAQ,GAAGF,UAAQ;AACxB,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,IAAI,CAAC,OAAO,GAAG,OAAO;;ACtBtB;AAEO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;AACpG;AACA;;ACNA;AAIO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC5F,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvF,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV;AACA;;AChBA;cAQO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIW,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1I;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AAC5F;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC3C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG;AAC9F,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AACvF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA;AACAC,OAAK,CAAC,OAAO,GAAG,OAAO;;ACjDvB;AAOO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,OAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACrE;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;AAC3E;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAC1F;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACtE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA;AACA,UAAU,CAAC,KAAK,GAAGD,OAAK;;ACxCxB;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE;AAC5C,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC3C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE;AAChF,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AACpD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChH;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,sBAAsB,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACtI;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACrG;AACA;;ACpCA;AAKO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIE,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACxE;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;AACjF;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/F;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;AACpF;AACA;AACA,aAAa,CAAC,KAAK,GAAG,KAAK;;ACnC3B;AAGO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe;AACpE;AACA;AACA,QAAQ,IAAI,eAAe,GAAG,6BAA6B,GAAG,IAAI,CAAC,eAAe,GAAG,QAAQ;AAC7F,QAAQ,IAAI,6BAA6B,EAAE;AAC3C,YAAY,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,eAAe,CAAC;AAC3G;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1D,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,eAAe,EAAE,eAAe;AAChD,aAAa;AACb,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,6BAA6B,EAAE;AAC3C,YAAY,OAAO,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,mDAAmD,CAAC;AAC1F,QAAQ,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,KAAK;AAClD,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC3C,gBAAgB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,kBAAkB,KAAK;AAC9D,oBAAoB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,SAAS;AAC3E,oBAAoB,kBAAkB,CAAC,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC;AACrF,iBAAiB,CAAC;AAClB;AACA,YAAY,OAAO,QAAQ;AAC3B,SAAS,CAAC;AACV;AACA;;AClDA;AAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE;AAC5C,QAAQ,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AAC9G;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AAC5C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChI;AACA;;ACnBA;AAMO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACpF;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AAChF;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG;AACnF,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACnF;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACjF;AACA;AACA,IAAI,CAAC,WAAW,GAAG,WAAW;;AClD9B;AAMO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIR,IAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAChE;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACjE;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/E;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACrF;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE;AACA;AACA,KAAK,CAAC,IAAI,GAAG,IAAI;;AC/CjB;cAQO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3G;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACjE;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACrF;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AACjE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvF,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACxF,QAAQ,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1E,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,QAAQ,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAClE,YAAY,MAAM,KAAK,CAAC,YAAY,CAAC;AACrC,YAAY,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE;AAC9C,gBAAgB,MAAM,IAAI,yBAAyB,CAAC;AACpD,oBAAoB,OAAO,EAAE,CAAC,8BAA8B,EAAE,EAAE,CAAC,4BAA4B,EAAE,OAAO,CAAC,cAAc,CAAC;AACtH,iBAAiB,CAAC;AAClB;AACA;AACA,QAAQ,OAAO,IAAI;AACnB;AACA;;AChFA;AAEO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;;ACHA;gBAEO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7F;AACA;;AC3CA;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIS,SAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D;AACA;AACA,KAAK,CAAC,OAAO,GAAGC,SAAO;;ACVvB;AAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;AACpD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,wBAAwB,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC5D,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,YAAY,CAAC,EAAE;AACzG,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1C,QAAQ,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AACvI;AACA;;ACnEA;oBAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE;AACA;AACAC,aAAW,CAAC,WAAW,GAAG,WAAW;;ACVrC;AAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACpI;AACA;;ACrBA;AAMO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,eAAe,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACrD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC7F;AACA;AACA,IAAI,CAAC,WAAW,GAAG,WAAW;;ACpH9B;AAUO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,IAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIF,aAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIG,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;AACA;AACA,UAAU,CAAC,OAAO,GAAG,OAAO;AAC5B,UAAU,CAAC,IAAI,GAAG,IAAI;AACtB,UAAU,CAAC,WAAW,GAAGJ,aAAW;AACpC,UAAU,CAAC,KAAK,GAAG,KAAK;;ACtBxB;AAEO,MAAM,YAAY,SAAS,WAAW,CAAC;AAC9C;;ACHA;AAIO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAIK,YAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1E;AACA;AACA,OAAO,CAAC,YAAY,GAAG,YAAY;;ACVnC;AAGO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvH;AACA,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAChJ;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;AAC3G;AACA;;ACvBA;AAIO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;AAClE;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE;AACA;;AC1BA;AAEO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACtE;AACA;;ACVA;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;AACzE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA;;ACrEA;AAEO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAClF;AACA;;ACfA;AAMO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAIC,aAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7E,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;AACA;AACA,QAAQ,CAAC,aAAa,GAAG,aAAa;AACtC,QAAQ,CAAC,KAAK,GAAG,KAAK;;ACZf,SAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE;AACrD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,GAAG,QAAQ;AACvB,YAAY,aAAa,EAAE,IAAI;AAC/B,YAAY,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAClD,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;AACnD,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,IAAI;AAC/B,wBAAwB,gBAAgB,EAAE,IAAI;AAC9C,qBAAqB;AACrB;AACA,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7C,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,IAAI;AAC/B,wBAAwB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AAChE,4BAA4B,GAAG,OAAO;AACtC,4BAA4B,MAAM,EAAE,IAAI;AACxC,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB;AACA,qBAAqB;AACrB,oBAAoB,OAAO,IAAI;AAC/B;AACA,aAAa,CAAC;AACd,SAAS;AACT;AACA,IAAI,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC1C;AACO,SAAS,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;AAC3C,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7D,aAAa;AACb;AACA,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AAC1D,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AACpD,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,OAAO;AAClC,wBAAwB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;AACrE,qBAAqB;AACrB;AACA,gBAAgB,OAAO,OAAO;AAC9B,aAAa,CAAC;AACd,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,OAAO;AACvB,aAAa;AACb;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;AAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;AACnE,QAAQ,aAAa,CAAC,MAAM,CAAC;AAC7B;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AACnD,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,GAAG,GAAG;AACd,YAAY,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AAChD,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/C,oBAAoB;AACpB;AACA,gBAAgB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AACtD,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AACnF,wBAAwB,OAAO,OAAO,CAAC,MAAM;AAC7C;AACA;AACA;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1C,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;AACrD,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM;AAC/C,QAAQ,OAAO,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;AAC7C;AACA,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9B;AACO,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC3D,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,KAAK;AAChB;AAmBO,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,qBAAqB;AACrD;AACA,SAAS,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE;AAC/C,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACrF;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC3E,IAAI,OAAO;AACX,QAAQ,GAAG,QAAQ;AACnB,QAAQ,GAAG,QAAQ;AACnB,QAAQ,gBAAgB,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS;AAChG,cAAc,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;AAC/D,kBAAkB,IAAI;AACtB,KAAK;AACL;AAkBO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AACvC,YAAY;AACZ;AACA,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AAC9C,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AAChD,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACxC;AACA;AACA;AACA,IAAI,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACpC;;AC9JA,IAAI,yBAAyB,EAAE,sBAAsB,EAAE,uCAAuC,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,kCAAkC;AAK9O,MAAM,cAAc,SAAS,WAAW,CAAC;AAChD,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3C,QAAQ,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjE,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,QAAQ,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAW,CAAC;AACzE;AACA,IAAI,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACnD,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC;AACjD,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC3E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7D,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7G,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,cAAc,GAAG,IAAI;AACjC,QAAQ,IAAI,aAAa,IAAI,MAAM,EAAE;AACrC,YAAY,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACxJ,YAAY,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI;AAC1D;AACA,aAAa;AACb,YAAY,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AAC/H;AACA,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;AACpI;AACA,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC;AACA,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAClH;AACA,IAAI,EAAE,sBAAsB,GAAG,IAAI,OAAO,EAAE,EAAE,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,yBAAyB,GAAG,IAAI,OAAO,EAAE,EAAE,4BAA4B,GAAG,SAAS,4BAA4B,GAAG;AACxQ,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,SAAc,CAAC;AAC7F,KAAK,EAAE,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE;AAC3F,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AAC3C,YAAY,IAAI,cAAc,IAAI,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,cAAc,EAAE;AAClF,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;AACvC;AACA,SAAS;AACT,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3I,QAAQ,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;AACjC,QAAQ,QAAQ,KAAK,CAAC,IAAI;AAC1B,YAAY,KAAK,4BAA4B,EAAE;AAC/C,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/C,oBAAoB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AACvE,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAChG;AACA,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AACxD,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,0CAA0C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1G;AACA,oBAAoB,SAAS,CAAC,4BAA4B,EAAE;AAC5D,wBAAwB,GAAG,KAAK;AAChC,wBAAwB,QAAQ,EAAE,OAAO,CAAC,IAAI;AAC9C,qBAAqB,CAAC;AACtB;AACA,gBAAgB;AAChB;AACA,YAAY,KAAK,wCAAwC,EAAE;AAC3D,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;AACrD,oBAAoB,SAAS,CAAC,wCAAwC,EAAE;AACxE,wBAAwB,GAAG,KAAK;AAChC,wBAAwB,QAAQ,EAAE,MAAM,CAAC,SAAS;AAClD,qBAAqB,CAAC;AACtB;AACA,gBAAgB;AAChB;AACA,YAAY;AACZ,gBAAgB,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5C,gBAAgB;AAChB;AACA,KAAK,EAAE,0BAA0B,GAAG,SAAS,0BAA0B,GAAG;AAC1E,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC5E;AACA,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC;AACnG,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,wCAAwC,CAAC,CAAC;AAC7E;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,SAAc,CAAC;AAC7F,QAAQ,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;AACpH,QAAQ,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,cAAmB,CAAC;AACxF,QAAQ,OAAO,cAAc;AAC7B,KAAK,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,KAAK,EAAE;AAC/F,QAAQ,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC;AACjG,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACnD,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,0EAA0E,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChI;AACA,YAAY,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,KAAK,CAAC,QAAa,CAAC;AACjH,YAAY,OAAO,QAAQ;AAC3B;AACA,QAAQ,QAAQ,KAAK,CAAC,IAAI;AAC1B,YAAY,KAAK,4BAA4B,EAAE;AAC/C,gBAAgB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAChD,gBAAgB;AAChB;AACA,YAAY,KAAK,6BAA6B,EAAE;AAChD,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F;AACA,gBAAgB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACxC,gBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;AACvC,gBAAgB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC1E,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C;AACA,qBAAqB,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACjF,oBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACzC,wBAAwB,MAAM,CAAC,OAAO,GAAG,EAAE;AAC3C;AACA,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C;AACA,gBAAgB;AAChB;AACA,YAAY,KAAK,4BAA4B,EAAE;AAC/C,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/C,oBAAoB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AACvE,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAChG;AACA,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AACxD,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,0CAA0C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1G;AACA,oBAAoB,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C;AACA,gBAAgB;AAChB;AACA,YAAY,KAAK,wCAAwC,EAAE;AAC3D,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;AACrD,oBAAoB,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK;AACnD;AACA,gBAAgB;AAChB;AACA,YAAY,KAAK,+BAA+B,EAAE;AAClD,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F;AACA,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AACjD,oBAAoB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;AACzE,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAChG;AACA,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC3D,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,6CAA6C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7G;AACA,oBAAoB,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C;AACA,gBAAgB;AAChB;AACA,YAAY,KAAK,oBAAoB,EAAE;AACvC,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,KAAK,CAAC,QAAa,CAAC;AAC1G,gBAAgB;AAChB;AACA;AACA,QAAQ,OAAO,QAAQ;AACvB,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAChC,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,GAAG,KAAK;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE;AAC5C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC;AACA,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7B,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,SAAS,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY;AAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvC,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/D;AACA,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5L;AACA,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;AAC/C,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,aAAa;AACb,YAAY,MAAM,EAAE,YAAY;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC;AACzF,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,MAAM,IAAI,WAAW,CAAC,iDAAiD,CAAC;AACpF,QAAQ,OAAO,QAAQ;AACvB;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC/C;;ACnQA;AAIO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACxH;AACA;;ACrBA;AAEO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACjF;AACA;;ACdA;AAUO,MAAM,SAAS,SAAS,WAAW,CAAC;AAC3C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;AACpE,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK;AACxH,YAAY,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9D,gBAAgB,aAAa,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,OAAO,GAAG;AACtB,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE;AACjE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK;AAC1C,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK;AAChC,YAAY,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9D,gBAAgB,aAAa,CAAC,GAAG,CAAC;AAClC;AACA,YAAY,OAAO,GAAG;AACtB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE;AACpE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV;AACA,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,aAAa,MAAM,CAAC,IAAI,EAAE,OAAO;AACjC,aAAa,WAAW,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrE;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AACjF;AACA;AACA,SAAS,CAAC,UAAU,GAAG,UAAU;AACjC,SAAS,CAAC,WAAW,GAAG,WAAW;;AChFnC;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpI;AACA;;ACrBA;AAKO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAClE;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5F;AACA;AACA,OAAO,CAAC,KAAK,GAAG,KAAK;;AC3DrB;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK;AACvD,IAAI,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AACtD,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;AAC7E,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;AACzB,QAAQ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;AACvC,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACxC;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;AACtF;AACA;AACA,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC;AACA;AACA,IAAI,OAAO,MAAM;AACjB,CAAC;;ACpBD;AAOO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,aAAa,CAAC,EAAE;AACtF,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE;AAClG,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1G,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;AAC5D,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC;AAChE;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACxC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AACpD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAClO;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;AAChD,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY;AACZ,gBAAgB,yBAAyB,EAAE,MAAM;AACjD,gBAAgB,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,SAAS;AACpG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE;AAC/G,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO;AACvB,aAAa,CAAC,CAAC,YAAY,EAAE;AAC7B,YAAY,QAAQ,KAAK,CAAC,MAAM;AAChC,gBAAgB,KAAK,aAAa;AAClC,oBAAoB,IAAI,aAAa,GAAG,IAAI;AAC5C,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE;AACjD,wBAAwB,aAAa,GAAG,OAAO,CAAC,cAAc;AAC9D;AACA,yBAAyB;AACzB,wBAAwB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC3F,wBAAwB,IAAI,cAAc,EAAE;AAC5C,4BAA4B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC7E,4BAA4B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1D,gCAAgC,aAAa,GAAG,gBAAgB;AAChE;AACA;AACA;AACA,oBAAoB,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,WAAW;AAChC,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,OAAO,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE;AACzE,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAChD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,8GAA8G,CAAC,CAAC;AAC7I;AACA,QAAQ,MAAM,qBAAqB,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC;AAClE;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC;AAC9E,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AACnC,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC3C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC;AACvC;AACA;AACA,QAAQ,eAAe,YAAY,CAAC,QAAQ,EAAE;AAC9C,YAAY,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE;AACvC,gBAAgB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;AACzG,gBAAgB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3C;AACA;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;AACpF;AACA,QAAQ,MAAM,mBAAmB,CAAC,OAAO,CAAC;AAC1C,QAAQ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AACvD,YAAY,QAAQ,EAAE,UAAU;AAChC,SAAS,CAAC;AACV;AACA;;AC/HA;AAMO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE;AAC/E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC1F,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AACnD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC3F,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG;AACnG,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC7F,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;AACpE,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY;AACZ,gBAAgB,yBAAyB,EAAE,MAAM;AACjD,gBAAgB,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,SAAS;AACpG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC7D,gBAAgB,eAAe,EAAE,aAAa;AAC9C,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE;AACtD,YAAY,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI;AAC1C,YAAY,QAAQ,IAAI,CAAC,MAAM;AAC/B,gBAAgB,KAAK,aAAa;AAClC,oBAAoB,IAAI,aAAa,GAAG,IAAI;AAC5C,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE;AACjD,wBAAwB,aAAa,GAAG,OAAO,CAAC,cAAc;AAC9D;AACA,yBAAyB;AACzB,wBAAwB,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AACxG,wBAAwB,IAAI,cAAc,EAAE;AAC5C,4BAA4B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC7E,4BAA4B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1D,gCAAgC,aAAa,GAAG,gBAAgB;AAChE;AACA;AACA;AACA,oBAAoB,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,OAAO,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/C,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;AACxG,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC;AAC5E;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;AACxE,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;AACnE;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAC/M;AACA;;ACxIA;AASO,MAAM,YAAY,SAAS,WAAW,CAAC;AAC9C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIhB,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIiB,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACnD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE;AACxE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE;AACzE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,GAAG;AACvE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE;AAC3E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG;AAC9F,YAAY,IAAI;AAChB,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV;AACA;AACA,YAAY,CAAC,KAAK,GAAG,KAAK;AAC1B,YAAY,CAAC,WAAW,GAAG,WAAW;;AC7EtC;AAMO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjH;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACnE;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,sBAAsB,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAClG;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACtE;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAClD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvF,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,gCAAgC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvI;AACA;;AChDA;AACA,IAAI,mBAAmB,EAAE,wBAAwB,EAAE,2BAA2B;AAKvE,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,GAAG,GAAG,EAAE;AACzF,QAAQ,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AACvE,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,GAAG,GAAG,EAAE;AAClG,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU;AACzD,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;AACxD,YAAY,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC;AACnH;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3G,QAAQ,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;AACzD,QAAQ,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC;AAC/J,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC;AACzJ,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC;AAClJ;AACA,QAAQ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;AACxD,QAAQ,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACrC,YAAY,MAAM,IAAI,4BAA4B,CAAC,kCAAkC,CAAC;AACtF;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,QAAQ,IAAI,UAAU,GAAG,gBAAgB,GAAG,SAAS,EAAE;AACvD,YAAY,MAAM,IAAI,4BAA4B,CAAC,8BAA8B,CAAC;AAClF;AACA,QAAQ,IAAI,gBAAgB,GAAG,UAAU,GAAG,SAAS,EAAE;AACvD,YAAY,MAAM,IAAI,4BAA4B,CAAC,8BAA8B,CAAC;AAClF;AACA;AACA;AACA;AACA,QAAQ,MAAM,UAAU,GAAG;AAC3B,aAAa,KAAK,CAAC,GAAG;AACtB,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E;AACA,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AACzD,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ;AAC9D,cAAc,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AAC1C;AACA,QAAQ,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5G;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC7H;AACA,QAAQ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAC5C,YAAY,IAAI;AAChB,gBAAgB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvE,gBAAgB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAChI,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA,YAAY,MAAM;AAClB;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,MAAM,IAAI,4BAA4B,CAAC,mEAAmE,CAAC;AACnH;AACA;AACA,mBAAmB,GAAG,IAAI,OAAO,EAAE,EAAE,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,MAAM,EAAE;AAC1G,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,iKAAiK,CAAC,CAAC;AAC5L;AACA,CAAC,EAAE,2BAA2B,GAAG,SAAS,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE;AACrF,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC/C;AACA,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC/C,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D;AACA,IAAI,OAAO,KAAK;AAChB,CAAC;;AC/FD;AACA,IAAI,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,yBAAyB;AA0CrE;AACA;AACA;AACO,MAAM,MAAM,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACvQ,QAAQ,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAQ,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAAe,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,IAAQ,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,OAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAU,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAAe,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAU,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAW,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAIC,YAAgB,CAAC,IAAI,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,QAAY,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,IAAQ,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAW,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAW,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAIC,SAAa,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,QAAY,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAIC,aAAiB,CAAC,IAAI,CAAC;AACxD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAU,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;AAClC,YAAY,MAAM,IAAIC,WAAkB,CAAC,iGAAiG,CAAC;AAC3I;AACA,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,MAAM;AAClB,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB,YAAY,aAAa;AACzB,YAAY,GAAG,IAAI;AACnB,YAAY,OAAO,EAAE,OAAO,IAAI,CAAC,yBAAyB,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,kBAAkB,EAAE,EAAE;AACtE,YAAY,MAAM,IAAIA,WAAkB,CAAC,obAAob,CAAC;AAC9d;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;AACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,eAAe;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO;AAC/C,QAAQ,MAAM,eAAe,GAAG,MAAM;AACtC;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,eAAe;AACvC,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,EAAE,IAAI,CAAC;AAC3E,gBAAgB,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,2BAA2B,EAAE,IAAI,CAAC;AACvF,gBAAgB,eAAe;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;AAChD,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC;AACjD,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAIC,eAAqB,EAAE;AAC7D,QAAQ,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAEC,eAAyB,CAAC;AAChF,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,aAAa;AACzE,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;AAC5C,YAAY,GAAG,IAAI,CAAC,QAAQ;AAC5B,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY;AACzC;AACA,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;AACvC,QAAQ;AACR;AACA,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE;AAC5B,QAAQ,OAAO,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACzE;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,OAAOC,SAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC/D;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvD;AACA,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD;AACA,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACrD,QAAQ,OAAOC,QAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACxE;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC3C,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU;AACxC,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,KAAK;AACjB,QAAQ,IAAI;AACZ,YAAY,KAAK,GAAG,MAAM,MAAM,EAAE;AAClC;AACA,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,YAAYJ,WAAkB;AACjD,gBAAgB,MAAM,GAAG;AACzB,YAAY,MAAM,IAAIA,WAAkB,CAAC,CAAC,4CAA4C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACrG;AACA,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC3B;AACA,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;AACjD,YAAY,MAAM,IAAIA,WAAkB,CAAC,CAAC,uEAAuE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3H;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,KAAK,IAAI,CAAC,OAAO;AACvJ,QAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC;AACvC,YAAY,IAAI,GAAG,CAAC,IAAI;AACxB,cAAc,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvG,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AACvC,YAAY,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;AACjD;AACA,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzE,YAAY,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACnD;AACA,QAAQ,OAAO,GAAG,CAAC,QAAQ,EAAE;AAC7B;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,IAAI,CAAC,WAAW,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;AACpD,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD;AACA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AACrD;AACA,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AACtD;AACA,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;AACvD;AACA,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACjE,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;AAC5C,SAAS,CAAC,CAAC;AACX;AACA,IAAI,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,EAAE;AAC9C,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAC3F;AACA,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE;AAC3E,QAAQ,MAAM,OAAO,GAAG,MAAM,YAAY;AAC1C,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AAChE,QAAQ,IAAI,gBAAgB,IAAI,IAAI,EAAE;AACtC,YAAY,gBAAgB,GAAG,UAAU;AACzC;AACA,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAC1C,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACvE,YAAY,UAAU,EAAE,UAAU,GAAG,gBAAgB;AACrD,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACxD;AACA,QAAQ,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACrG,QAAQ,MAAM,WAAW,GAAG,mBAAmB,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;AACxG,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;AACxF,YAAY,mBAAmB;AAC/B,YAAY,MAAM,EAAE,OAAO,CAAC,MAAM;AAClC,YAAY,GAAG;AACf,YAAY,OAAO;AACnB,YAAY,OAAO,EAAE,GAAG,CAAC,OAAO;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,YAAY,MAAM,IAAIK,iBAAwB,EAAE;AAChD;AACA,QAAQ,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAChD,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;AACtG,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE;AACtC,QAAQ,IAAI,QAAQ,YAAY,UAAU,CAAC,KAAK,EAAE;AAClD,YAAY,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;AACnF,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACzC,gBAAgB,MAAM,IAAIA,iBAAwB,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC;AACpD,gBAAgB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,YAAY,IAAI,gBAAgB,EAAE;AAClC,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAC5H,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACnJ,oBAAoB,mBAAmB;AACvC,oBAAoB,GAAG;AACvB,oBAAoB,UAAU,EAAE,WAAW,GAAG,SAAS;AACvD,oBAAoB,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC7C,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,YAAY,CAAC;AACxG;AACA,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AACpI,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,8BAA8B,CAAC,EAAE,oBAAoB,CAAC;AAC3J,gBAAgB,mBAAmB;AACnC,gBAAgB,GAAG;AACnB,gBAAgB,UAAU,EAAE,WAAW,GAAG,SAAS;AACnD,gBAAgB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzC,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,MAAM,IAAIC,yBAAgC,EAAE;AAC5D;AACA,YAAY,MAAM,IAAIC,kBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACpE;AACA,QAAQ,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7D,aAAa,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,cAAc;AACvD,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9E,aAAa,IAAI,CAAC,EAAE,CAAC;AACrB,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;AAC3M,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC1B,YAAY,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAChE,YAAY,IAAI,gBAAgB,IAAI,WAAW,EAAE;AACjD,gBAAgB,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;AACvF;AACA,gBAAgB,MAAMC,oBAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/D,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AACzE,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACjH,oBAAoB,mBAAmB;AACvC,oBAAoB,GAAG,EAAE,QAAQ,CAAC,GAAG;AACrC,oBAAoB,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3C,oBAAoB,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC7C,oBAAoB,UAAU,EAAE,WAAW,GAAG,SAAS;AACvD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC1H;AACA,YAAY,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACrG,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,YAAY,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC1F,YAAY,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AAC7C,YAAY,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO;AAC5D,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;AAC7G,gBAAgB,mBAAmB;AACnC,gBAAgB,GAAG,EAAE,QAAQ,CAAC,GAAG;AACjC,gBAAgB,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzC,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAClD,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC;AACpG,YAAY,MAAM,GAAG;AACrB;AACA,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;AACvF,YAAY,mBAAmB;AAC/B,YAAY,GAAG,EAAE,QAAQ,CAAC,GAAG;AAC7B,YAAY,MAAM,EAAE,QAAQ,CAAC,MAAM;AACnC,YAAY,OAAO,EAAE,QAAQ,CAAC,OAAO;AACrC,YAAY,UAAU,EAAE,WAAW,GAAG,SAAS;AAC/C,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE;AAC9F;AACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAC1E;AACA,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;AAClE,QAAQ,OAAO,IAAIC,WAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAC9D;AACA,IAAI,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE;AACtD,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE;AACzD,QAAQ,IAAI,MAAM;AAClB,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AACtE,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;AAChE,QAAQ,MAAM,cAAc,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,YAAY,UAAU,CAAC,cAAc;AAC9G,aAAa,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;AAC/G,QAAQ,MAAM,YAAY,GAAG;AAC7B,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,YAAY,IAAI,cAAc,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzD,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,GAAG,OAAO;AACtB,SAAS;AACT,QAAQ,IAAI,MAAM,EAAE;AACpB;AACA;AACA,YAAY,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AACtD;AACA,QAAQ,IAAI;AACZ;AACA,YAAY,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC;AACtE;AACA,gBAAgB;AAChB,YAAY,YAAY,CAAC,OAAO,CAAC;AACjC;AACA;AACA,IAAI,MAAM,WAAW,CAAC,QAAQ,EAAE;AAChC;AACA,QAAQ,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACxE;AACA,QAAQ,IAAI,iBAAiB,KAAK,MAAM;AACxC,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,iBAAiB,KAAK,OAAO;AACzC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;AAClC,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE;AACjF,QAAQ,IAAI,aAAa;AACzB;AACA,QAAQ,MAAM,sBAAsB,GAAG,eAAe,EAAE,GAAG,CAAC,gBAAgB,CAAC;AAC7E,QAAQ,IAAI,sBAAsB,EAAE;AACpC,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,sBAAsB,CAAC;AAChE,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AAC1C,gBAAgB,aAAa,GAAG,SAAS;AACzC;AACA;AACA;AACA,QAAQ,MAAM,gBAAgB,GAAG,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC;AACpE,QAAQ,IAAI,gBAAgB,IAAI,CAAC,aAAa,EAAE;AAChD,YAAY,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC;AAC/D,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AAC/C,gBAAgB,aAAa,GAAG,cAAc,GAAG,IAAI;AACrD;AACA,iBAAiB;AACjB,gBAAgB,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACzE;AACA;AACA;AACA;AACA,QAAQ,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;AACjF,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AACpE,YAAY,aAAa,GAAG,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,EAAE,UAAU,CAAC;AACjG;AACA,QAAQ,MAAM,KAAK,CAAC,aAAa,CAAC;AAClC,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,CAAC,EAAE,YAAY,CAAC;AAC5E;AACA,IAAI,kCAAkC,CAAC,gBAAgB,EAAE,UAAU,EAAE;AACrE,QAAQ,MAAM,iBAAiB,GAAG,GAAG;AACrC,QAAQ,MAAM,aAAa,GAAG,GAAG;AACjC,QAAQ,MAAM,UAAU,GAAG,UAAU,GAAG,gBAAgB;AACxD;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AACjG;AACA,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AAC/C,QAAQ,OAAO,YAAY,GAAG,MAAM,GAAG,IAAI;AAC3C;AACA,IAAI,MAAM,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC9D,QAAQ,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE;AAC3C,QAAQ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO;AAC/D,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;AAC9D,QAAQ,IAAI,SAAS,IAAI,OAAO;AAChC,YAAY,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;AAC/D,QAAQ,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;AACzD,QAAQ,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AACjE,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC9G,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM;AAClB,YAAY,OAAO,EAAE,UAAU;AAC/B,YAAY,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7D,YAAY,IAAI,UAAU,CAAC,cAAc;AACzC,gBAAgB,IAAI,YAAY,UAAU,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChF,YAAY,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AACxC,YAAY,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;AACrD;AACA,IAAI,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,EAAE;AACtE,QAAQ,IAAI,kBAAkB,GAAG,EAAE;AACnC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,KAAK,KAAK,EAAE;AACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc;AACvC,gBAAgB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACrE,YAAY,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc;AAC/E;AACA,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,kBAAkB;AAC9B,YAAY;AACZ,gBAAgB,MAAM,EAAE,kBAAkB;AAC1C,gBAAgB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjD,gBAAgB,yBAAyB,EAAE,MAAM,CAAC,UAAU,CAAC;AAC7D,gBAAgB,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACjH,gBAAgB,GAAG,kBAAkB,EAAE;AACvC,gBAAgB,qBAAqB,EAAE,IAAI,CAAC,YAAY;AACxD,gBAAgB,gBAAgB,EAAE,IAAI,CAAC,OAAO;AAC9C,aAAa;AACb,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAC3C,YAAY,IAAI,CAAC,QAAQ,CAAC,cAAc;AACxC,YAAY,WAAW;AACvB,YAAY,OAAO,CAAC,OAAO;AAC3B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC,MAAM;AAC7B;AACA,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;AAC1D,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;AAC9D;AACA,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;AAClD,QAAQ;AACR;AACA,QAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,YAAY,IAAI,YAAY,WAAW;AACvC,YAAY,IAAI,YAAY,QAAQ;AACpC,aAAa,OAAO,IAAI,KAAK,QAAQ;AACrC;AACA,gBAAgB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACnD;AACA,aAAa,UAAU,CAAC,IAAI,IAAI,IAAI,YAAY,UAAU,CAAC,IAAI,CAAC;AAChE;AACA,YAAY,IAAI,YAAY,QAAQ;AACpC;AACA,YAAY,IAAI,YAAY,eAAe;AAC3C;AACA,aAAa,UAAU,CAAC,cAAc,IAAI,IAAI,YAAY,UAAU,CAAC,cAAc,CAAC,EAAE;AACtF,YAAY,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACzD;AACA,aAAa,IAAI,OAAO,IAAI,KAAK,QAAQ;AACzC,aAAa,MAAM,CAAC,aAAa,IAAI,IAAI;AACzC,iBAAiB,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,EAAE;AACjG,YAAY,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAEC,kBAAwB,CAAC,IAAI,CAAC,EAAE;AACnF;AACA,aAAa;AACb,YAAY,OAAO,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnG;AACA;AACA;AACA,EAAE,GAAG,MAAM,EAAE,eAAe,GAAG,IAAI,OAAO,EAAE,EAAE,iBAAiB,GAAG,IAAI,OAAO,EAAE,EAAE,yBAAyB,GAAG,SAAS,yBAAyB,GAAG;AAClJ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,2BAA2B;AACvD,CAAC;AACD,MAAM,CAAC,MAAM,GAAG,EAAE;AAClB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,WAAW,GAAGV,WAAkB;AACvC,MAAM,CAAC,QAAQ,GAAGI,QAAe;AACjC,MAAM,CAAC,kBAAkB,GAAGG,kBAAyB;AACrD,MAAM,CAAC,yBAAyB,GAAGD,yBAAgC;AACnE,MAAM,CAAC,iBAAiB,GAAGD,iBAAwB;AACnD,MAAM,CAAC,aAAa,GAAGM,aAAoB;AAC3C,MAAM,CAAC,aAAa,GAAGC,aAAoB;AAC3C,MAAM,CAAC,cAAc,GAAGC,cAAqB;AAC7C,MAAM,CAAC,eAAe,GAAGC,eAAsB;AAC/C,MAAM,CAAC,mBAAmB,GAAGC,mBAA0B;AACvD,MAAM,CAAC,mBAAmB,GAAGC,mBAA0B;AACvD,MAAM,CAAC,qBAAqB,GAAGC,qBAA4B;AAC3D,MAAM,CAAC,wBAAwB,GAAGC,wBAA+B;AACjE,MAAM,CAAC,4BAA4B,GAAGC,4BAAmC;AACzE,MAAM,CAAC,MAAM,GAAGC,MAAc;AAC9B,MAAM,CAAC,WAAW,GAAG,WAAW;AAChC,MAAM,CAAC,IAAI,GAAG,IAAI;AAClB,MAAM,CAAC,UAAU,GAAG,UAAU;AAC9B,MAAM,CAAC,KAAK,GAAG5D,OAAK;AACpB,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,MAAM,CAAC,WAAW,GAAG,WAAW;AAChC,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,MAAM,CAAC,UAAU,GAAG,UAAU;AAC9B,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,MAAM,CAAC,YAAY,GAAG,YAAY;AAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ;AAC1B,MAAM,CAAC,IAAI,GAAG,IAAI;AAClB,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,MAAM,CAAC,OAAO,GAAG6D,OAAiB;AAClC,MAAM,CAAC,SAAS,GAAG,SAAS;AAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ;AAC1B,MAAM,CAAC,aAAa,GAAG,aAAa;AACpC,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,MAAM,CAAC,UAAU,GAAG,UAAU;AAC9B,MAAM,CAAC,MAAM,GAAG,MAAM;;AC3gBtB;;AAEG;AACI,eAAe,eAAe,CAAC,OAAyB,EAAA;AAC7D,IAAAxF,gBAAS,CAAC,wCAAwC,CAAC;AAEnD,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,OAAO,EAAE,OAAO,CAAC,QAAQ;AAC1B,KAAA,CAAC;AAEF,IAAA,MAAM,qBAAqB,GAAuD;QAChF,QAAQ,EAAE,OAAO,CAAC,QAAgE;QAClF,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,KAAK,EAAE,OAAO,CAAC,SAAS;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,IAAI;KACpB;;AAGD,IAAA,IAAI,OAAO,CAAC,cAAc,EAAE;;AAE1B,QAAA,qBAAqB,CAAC,eAAe,GAAG,OAAO,CAAC,cAAqB;;IAGvE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE,iBAAiB,CAAC;AACvF,IAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO;IAC3DA,gBAAS,CAAC,CAAA,gBAAA,EAAmB,aAAa,IAAI,qBAAqB,CAAE,CAAA,CAAC;IACtE,OAAO,aAAa,IAAI,IAAI;AAC9B;AAEA;;AAEG;AACI,eAAe,YAAY,CAChC,OAAyB,EACzB,eAAgC,EAAA;AAEhC,IAAAA,gBAAS,CAAC,yCAAyC,CAAC;AAEpD,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,OAAO,EAAE,OAAO,CAAC,QAAQ;AAC1B,KAAA,CAAC;;IAGF,MAAM,QAAQ,GAAkB,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAErD,IAAI,cAAc,GAAG,CAAC;AACtB,IAAA,MAAM,aAAa,GAAG,CAAC,CAAA;;;IAGvB,IAAI,YAAY,GAAG,KAAK;AAExB,IAAA,OAAO,cAAc,GAAG,aAAa,EAAE;AACrC,QAAA,cAAc,EAAE;AAChB,QAAAA,gBAAS,CAAC,2BAA2B,cAAc,CAAA,CAAE,CAAC;AAEtD,QAAA,MAAM,qBAAqB,GAAuD;AAChF,YAAA,QAAQ,EAAE,QAAgE;YAC1E,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,KAAK,EAAE,OAAO,CAAC,SAAS;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,KAAK,EAAE,OAAO,CAAC,IAAI;SACpB;;AAGD,QAAA,IAAI,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE;;AAE1C,YAAA,qBAAqB,CAAC,eAAe,GAAG,OAAO,CAAC,cAAqB;;aAChE;AACL,YAAA,qBAAqB,CAAC,KAAK,GAAG,eAAe,CAAC,KAAqD;;AAGrG,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAA,uBAAA,EAA0B,cAAc,CAAA,CAAE,CAAC;YAEhH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO;AACrD,YAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE,OAAO;AAC/C,YAAA,MAAM,SAAS,GAAG,gBAAgB,EAAE,UAAU;YAE9CA,gBAAS,CAAC,CAAA,gBAAA,EAAmB,aAAa,IAAI,qBAAqB,CAAE,CAAA,CAAC;YAEtE,QAAQ,CAAC,IAAI,CAAC;AACZ,gBAAA,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAa,IAAI,EAAE;gBAC5B,IAAI,SAAS,IAAI,EAAC,UAAU,EAAE,SAAuB,EAAC,CAAC;AACxD,aAAA,CAAC;YAEF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,gBAAAA,gBAAS,CAAC,2DAA2D,CAAC;AAEtE,gBAAA,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,YAAY,EAAE;AAC3C,oBAAAA,gBAAS,CAAC,gEAAgE,CAAC;oBAC3E,QAAQ,CAAC,IAAI,CAAC;AACZ,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,OAAO,EAAE,CAA6C,0CAAA,EAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAoB,kBAAA,CAAA;AACtG,qBAAA,CAAC;oBACF,YAAY,GAAG,IAAI;oBACnB;;qBACK;oBACL,OAAO,aAAa,IAAI,IAAI;;;YAIhCA,gBAAS,CAAC,CAAA,gBAAA,EAAmB,SAAS,CAAC,MAAM,CAAa,WAAA,CAAA,CAAC;YAC3D,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,SAAuB,CAAC;AAC3F,YAAA,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;AAC7B,YAAAA,gBAAS,CAAC,gDAAgD,CAAC;;QAC3D,OAAO,KAAK,EAAE;AACd,YAAAyF,iBAAU,CAAC,qBAAqB,KAAK,CAAA,CAAE,CAAC;AACxC,YAAA,MAAM,KAAK;;;AAIf,IAAAxF,mBAAY,CAAC,0DAA0D,aAAa,CAAA,CAAA,CAAG,CAAC;;IAGxF,MAAM,oBAAoB,GAAG;AAC1B,SAAA,KAAK;AACL,SAAA,OAAO;SACP,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC;AAExC,IAAA,OAAO,oBAAoB,EAAE,OAAO,IAAI,IAAI;AAC9C;AAEA;;;;AAIG;AACH,eAAe,cAAc,CAC3B,MAAc,EACd,MAA0D,EAC1D,OAAe,EAAA;AAEf,IAAA,IAAI;;AAEF,QAAA,IAAI,QAAQ,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QAChEyF,iBAAU,CAAC,CAAG,EAAA,OAAO,yBAAyB,OAAO,QAAQ,CAAE,CAAA,CAAC;AAEhE,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;;AAEhC,YAAA,IAAI;AACF,gBAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;;YAC/B,OAAO,CAAC,EAAE;gBACV,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AACtC,gBAAA,MAAM,IAAI,KAAK,CACb,CAAA,EAAG,OAAO,CAAA,4DAAA,EAAgE,CAAW,CAAC,OAAO,CAAA,YAAA,EAAe,OAAO,CAAA,CAAE,CACtH;;;AAIL,QAAA,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,EAAE,SAAS,IAAI,QAAQ,CAAC,EAAE;AACzE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAsD,mDAAA,EAAA,OAAO,CAAE,CAAA,CAAC;;AAG5F,QAAA,OAAO,QAAkD;;IACzD,OAAO,GAAG,EAAE;;QAEZD,iBAAU,CAAC,CAAA,EAAG,OAAO,CAA4B,yBAAA,EAAA,GAAG,CAAE,CAAA,CAAC;AACvD,QAAA,MAAM,GAAG;;AAEb;;ACjMA;;;;;;AAMG;SACa,0BAA0B,CAAC,aAAqB,EAAE,YAAoB,EAAE,YAAqB,EAAA;IAC3G,MAAM,QAAQ,GAAGE,oBAAa,CAAC,aAAa,CAAC;IAC7C,MAAM,aAAa,GAAGA,oBAAa,CAAC,YAAY,CAAC;IAEjD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,CAAA,SAAA,EAAY,aAAa,CAAmB,gBAAA,EAAA,QAAQ,CAAE,CAAA,CAAC;;QAEzE,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;;SACpC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,EAAE,EAAE;AAC9D,QAAA,OAAO,aAAa;;AACf,SAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AACrC,QAAA,OAAO,YAAY;;SACd;QACL,MAAM,IAAI,KAAK,CAAC,CAAA,QAAA,EAAW,aAAa,CAAQ,KAAA,EAAA,YAAY,CAAU,QAAA,CAAA,CAAC;;AAE3E;AAEA;;AAEG;SACa,aAAa,CAC3B,YAA2B,EAC3B,YAAqB,EACrB,MAAe,EAAA;AAEf,IAAA,IAAI,YAAY,EAAE,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;;QAE9D,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK;YACvC,IAAI,EAAE,GAAG,CAAC,IAAgD;YAC1D,OAAO,EAAE,GAAG,CAAC,OAAO;AACrB,SAAA,CAAC,CAAC;;SACE;;QAEL,OAAO;AACL,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY,IAAI,6BAA6B;AACvD,aAAA;YACD,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,EAAC;SACtC;;AAEL;AAEA;;AAEG;AACG,SAAU,mBAAmB,CACjC,YAA2B,EAAA;IAE3B,IAAI,YAAY,EAAE,cAAc,KAAK,aAAa,IAAI,YAAY,CAAC,UAAU,EAAE;AAC7E,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;YAClD,OAAO;AACL,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,WAAW,EAAE,MAAM;aACpB;;QACD,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,CAAA,CAAE,CAAC;;;AAGvG,IAAA,OAAO,SAAS;AAClB;AAEA;;AAEG;SACa,qBAAqB,CACnC,YAAsC,EACtC,YAAgC,EAChC,MAA0B,EAC1B,SAAiB,EACjB,WAA+B,EAC/B,IAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,KAAa,EAAA;IAEb,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;AAClE,IAAA,MAAM,cAAc,GAAG,mBAAmB,CAAC,YAAY,CAAC;IAExD,OAAO;QACL,QAAQ;QACR,SAAS;QACT,WAAW;QACX,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,KAAK;QACL,cAAc;KACf;AACH;;ACtGA;AACA,SAAS,SAAS,CAAC,OAAO,EAAE;AAC5B,EAAE,OAAO,CAAC,OAAO,OAAO,KAAK,WAAW,MAAM,OAAO,KAAK,IAAI,CAAC;AAC/D;;;AAGA,SAAS,QAAQ,CAAC,OAAO,EAAE;AAC3B,EAAE,OAAO,CAAC,OAAO,OAAO,KAAK,QAAQ,MAAM,OAAO,KAAK,IAAI,CAAC;AAC5D;;;AAGA,SAAS,OAAO,CAAC,QAAQ,EAAE;AAC3B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,QAAQ;AAC9C,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE;;AAEzC,EAAE,OAAO,EAAE,QAAQ,EAAE;AACrB;;;AAGA,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE;AAChC,EAAE,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;;AAEpC,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEpC,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AAC5E,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;AAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAC/B;AACA;;AAEA,EAAE,OAAO,MAAM;AACf;;;AAGA,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;AAC/B,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE,KAAK;;AAExB,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE;AAC7C,IAAI,MAAM,IAAI,MAAM;AACpB;;AAEA,EAAE,OAAO,MAAM;AACf;;;AAGA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,MAAM,CAAC,iBAAiB,KAAK,CAAC,GAAG,MAAM,CAAC;AACpE;;;AAGA,IAAI,WAAW,QAAQ,SAAS;AAChC,IAAI,UAAU,SAAS,QAAQ;AAC/B,IAAI,SAAS,UAAU,OAAO;AAC9B,IAAI,QAAQ,WAAW,MAAM;AAC7B,IAAI,gBAAgB,GAAG,cAAc;AACrC,IAAI,QAAQ,WAAW,MAAM;;AAE7B,IAAI,MAAM,GAAG;AACb,CAAC,SAAS,EAAE,WAAW;AACvB,CAAC,QAAQ,EAAE,UAAU;AACrB,CAAC,OAAO,EAAE,SAAS;AACnB,CAAC,MAAM,EAAE,QAAQ;AACjB,CAAC,cAAc,EAAE,gBAAgB;AACjC,CAAC,MAAM,EAAE;AACT,CAAC;;AAED;;;AAGA,SAAS,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE;AACzC,EAAE,IAAI,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,MAAM,IAAI,kBAAkB;;AAElE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,OAAO;;AAErC,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;AAC3B,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;AAChD;;AAEA,EAAE,KAAK,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;;AAEpF,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;AAC1C,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO;AAC5C;;AAEA,EAAE,OAAO,OAAO,GAAG,GAAG,GAAG,KAAK;AAC9B;;;AAGA,SAAS,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE;AACvC;AACA,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAElB,EAAE,IAAI,CAAC,IAAI,GAAG,eAAe;AAC7B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,EAAE,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;;AAEzC;AACA,EAAE,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAC/B;AACA,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC;AACnD,GAAG,MAAM;AACT;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;AAC1C;AACA;;;AAGA;AACA,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;AAC1D,eAAe,CAAC,SAAS,CAAC,WAAW,GAAG,eAAe;;;AAGvD,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,CAAC,OAAO,EAAE;AAChE,EAAE,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;AACtD,CAAC;;;AAGD,IAAI,SAAS,GAAG,eAAe;;AAE/B;AACA,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE;AACtE,EAAE,IAAI,IAAI,GAAG,EAAE;AACf,EAAE,IAAI,IAAI,GAAG,EAAE;AACf,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC;;AAEvD,EAAE,IAAI,QAAQ,GAAG,SAAS,GAAG,aAAa,EAAE;AAC5C,IAAI,IAAI,GAAG,OAAO;AAClB,IAAI,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM;AACtD;;AAEA,EAAE,IAAI,OAAO,GAAG,QAAQ,GAAG,aAAa,EAAE;AAC1C,IAAI,IAAI,GAAG,MAAM;AACjB,IAAI,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM;AACpD;;AAEA,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI;AAC3E,IAAI,GAAG,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,MAAM;AAC3C,GAAG;AACH;;;AAGA,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;AAC/B,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM;AACzD;;;AAGA,SAAS,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE;AACpC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;;AAE1C,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI;;AAE/B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAG,EAAE;AAChD,EAAE,IAAI,OAAO,OAAO,CAAC,MAAM,UAAU,QAAQ,EAAE,OAAO,CAAC,MAAM,QAAQ,CAAC;AACtE,EAAE,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC;AACtE,EAAE,IAAI,OAAO,OAAO,CAAC,UAAU,MAAM,QAAQ,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;;AAEtE,EAAE,IAAI,EAAE,GAAG,cAAc;AACzB,EAAE,IAAI,UAAU,GAAG,EAAE,CAAC,EAAE;AACxB,EAAE,IAAI,QAAQ,GAAG,EAAE;AACnB,EAAE,IAAI,KAAK;AACX,EAAE,IAAI,WAAW,GAAG,EAAE;;AAEtB,EAAE,QAAQ,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;AACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;;AAElD,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE;AACzD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;AACzC;AACA;;AAEA,EAAE,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;;AAE1D,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI;AAC1B,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM;AAChG,EAAE,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC;;AAE7E,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE;AAC7B,IAAI,IAAI,GAAG,OAAO;AAClB,MAAM,IAAI,CAAC,MAAM;AACjB,MAAM,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,MAAM,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC7E,MAAM;AACN,KAAK;AACL,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC;AACxG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,MAAM;AACtC;;AAEA,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;AAC3G,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC;AACnG,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;AAC3B,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI;;AAEzF,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,IAAI,WAAW,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC5C,IAAI,IAAI,GAAG,OAAO;AAClB,MAAM,IAAI,CAAC,MAAM;AACjB,MAAM,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;AACjC,MAAM,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC7E,MAAM;AACN,KAAK;AACL,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC;AACzG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI;AAC7B;;AAEA,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClC;;;AAGA,IAAI,OAAO,GAAG,WAAW;;AAEzB,IAAI,wBAAwB,GAAG;AAC/B,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,eAAe;AACjB,EAAE,cAAc;AAChB,EAAE;AACF,CAAC;;AAED,IAAI,eAAe,GAAG;AACtB,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE;AACF,CAAC;;AAED,SAAS,mBAAmB,CAAC,GAAG,EAAE;AAClC,EAAE,IAAI,MAAM,GAAG,EAAE;;AAEjB,EAAE,IAAI,GAAG,KAAK,IAAI,EAAE;AACpB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AAC9C,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AAC1C,QAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK;AACrC,OAAO,CAAC;AACR,KAAK,CAAC;AACN;;AAEA,EAAE,OAAO,MAAM;AACf;;AAEA,SAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE;AAC9B,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;AAEzB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAC/C,IAAI,IAAI,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACvD,MAAM,MAAM,IAAI,SAAS,CAAC,kBAAkB,GAAG,IAAI,GAAG,6BAA6B,GAAG,GAAG,GAAG,cAAc,CAAC;AAC3G;AACA,GAAG,CAAC;;AAEJ;AACA,EAAE,IAAI,CAAC,OAAO,SAAS,OAAO,CAAC;AAC/B,EAAE,IAAI,CAAC,GAAG,aAAa,GAAG;AAC1B,EAAE,IAAI,CAAC,IAAI,YAAY,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI;AACvD,EAAE,IAAI,CAAC,OAAO,SAAS,OAAO,CAAC,SAAS,CAAC,UAAU,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE;AAC/E,EAAE,IAAI,CAAC,SAAS,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE;AACnF,EAAE,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,IAAI;AACvD,EAAE,IAAI,CAAC,SAAS,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,IAAI;AACvD,EAAE,IAAI,CAAC,SAAS,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,IAAI;AACvD,EAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI;AACvD,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI;AACvD,EAAE,IAAI,CAAC,KAAK,WAAW,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK;AACxD,EAAE,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;;AAE3E,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACjD,IAAI,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,GAAG,sBAAsB,GAAG,GAAG,GAAG,cAAc,CAAC;AACrG;AACA;;AAEA,IAAI,IAAI,GAAG,MAAM;;AAEjB;;;;;;AAMA,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AACnC,EAAE,IAAI,MAAM,GAAG,EAAE;;AAEjB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,WAAW,EAAE;AAC9C,IAAI,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM;;AAEhC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,YAAY,EAAE,aAAa,EAAE;AAC1D,MAAM,IAAI,YAAY,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG;AAC9C,UAAU,YAAY,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;AAChD,UAAU,YAAY,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,EAAE;;AAEpD,QAAQ,QAAQ,GAAG,aAAa;AAChC;AACA,KAAK,CAAC;;AAEN,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AAClC,GAAG,CAAC;;AAEJ,EAAE,OAAO,MAAM;AACf;;;AAGA,SAAS,UAAU,iBAAiB;AACpC,EAAE,IAAI,MAAM,GAAG;AACf,QAAQ,MAAM,EAAE,EAAE;AAClB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,OAAO,EAAE,EAAE;AACnB,QAAQ,QAAQ,EAAE,EAAE;AACpB,QAAQ,KAAK,EAAE;AACf,UAAU,MAAM,EAAE,EAAE;AACpB,UAAU,QAAQ,EAAE,EAAE;AACtB,UAAU,OAAO,EAAE,EAAE;AACrB,UAAU,QAAQ,EAAE;AACpB;AACA,OAAO,EAAE,KAAK,EAAE,MAAM;;AAEtB,EAAE,SAAS,WAAW,CAAC,IAAI,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;AACvE;AACA;;AAEA,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACzE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;AACzC;AACA,EAAE,OAAO,MAAM;AACf;;;AAGA,SAAS,QAAQ,CAAC,UAAU,EAAE;AAC9B,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AAChC;;;AAGA,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,CAAC,UAAU,EAAE;AACxD,EAAE,IAAI,QAAQ,GAAG,EAAE;AACnB,EAAE,IAAI,QAAQ,GAAG,EAAE;;AAEnB,EAAE,IAAI,UAAU,YAAY,IAAI,EAAE;AAClC;AACA,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;;AAE7B,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACxC;AACA,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;;AAE1C,GAAG,MAAM,IAAI,UAAU,KAAK,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;AACvG;AACA,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC5E,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;;AAE5E,GAAG,MAAM;AACT,IAAI,MAAM,IAAI,SAAS,CAAC,qDAAqD;AAC7E,MAAM,+DAA+D,CAAC;AACtE;;AAEA,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AACrC,IAAI,IAAI,EAAE,MAAM,YAAY,IAAI,CAAC,EAAE;AACnC,MAAM,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC;AAC/G;;AAEA,IAAI,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACzD,MAAM,MAAM,IAAI,SAAS,CAAC,iHAAiH,CAAC;AAC5I;;AAEA,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;AACtB,MAAM,MAAM,IAAI,SAAS,CAAC,oGAAoG,CAAC;AAC/H;AACA,GAAG,CAAC;;AAEJ,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AACrC,IAAI,IAAI,EAAE,MAAM,YAAY,IAAI,CAAC,EAAE;AACnC,MAAM,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC;AAC/G;AACA,GAAG,CAAC;;AAEJ,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAEhD,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;AAC1D,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC;;AAE1D,EAAE,MAAM,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC;AAC3D,EAAE,MAAM,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC;AAC3D,EAAE,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;;AAExF,EAAE,OAAO,MAAM;AACf,CAAC;;;AAGD,IAAI,MAAM,GAAG,QAAQ;;AAErB,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC5C,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAChE,CAAC,CAAC;;AAEF,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC5C,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAChE,CAAC,CAAC;;AAEF,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC5C,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAChE,CAAC,CAAC;;AAEF,IAAI,QAAQ,GAAG,IAAI,MAAM,CAAC;AAC1B,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI;AACJ;AACA,CAAC,CAAC;;AAEF,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEvB,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG;AACnC,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC;AAC/E;;AAEA,SAAS,iBAAiB,GAAG;AAC7B,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,OAAO,MAAM,KAAK,IAAI;AACxB;;AAEA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/C,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE,eAAe;AAC1B,EAAE,SAAS,EAAE,iBAAiB;AAC9B,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,SAAS,EAAE;AACb,IAAI,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,CAAC,KAAK;AAC7C,IAAI,SAAS,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE;AAC7C,IAAI,SAAS,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE;AAC7C,IAAI,SAAS,EAAE,YAAY,EAAE,OAAO,MAAM,CAAC,EAAE;AAC7C,IAAI,KAAK,MAAM,YAAY,EAAE,OAAO,EAAE,CAAC;AACvC,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,CAAC,CAAC;;AAEF,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK;;AAEjC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEvB,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,CAAC;AAC9E,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC;AAClF;;AAEA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,OAAO,IAAI,KAAK,MAAM;AACxB,SAAS,IAAI,KAAK,MAAM;AACxB,SAAS,IAAI,KAAK,MAAM;AACxB;;AAEA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,kBAAkB;AACtE;;AAEA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC9C,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE,kBAAkB;AAC7B,EAAE,SAAS,EAAE,oBAAoB;AACjC,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,SAAS,EAAE;AACb,IAAI,SAAS,EAAE,UAAU,MAAM,EAAE,EAAE,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE;AACtE,IAAI,SAAS,EAAE,UAAU,MAAM,EAAE,EAAE,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE;AACtE,IAAI,SAAS,EAAE,UAAU,MAAM,EAAE,EAAE,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACpE,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,CAAC,CAAC;;AAEF,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,EAAE,OAAO,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ;AAClD,UAAU,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;AACnD,UAAU,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;AACnD;;AAEA,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ;AAClD;;AAEA,SAAS,SAAS,CAAC,CAAC,EAAE;AACtB,EAAE,QAAQ,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ;AAClD;;AAEA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK;;AAEjC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;AACvB,MAAM,KAAK,GAAG,CAAC;AACf,MAAM,SAAS,GAAG,KAAK;AACvB,MAAM,EAAE;;AAER,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,KAAK;;AAExB,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;;AAElB;AACA,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;AAChC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC;AACtB;;AAEA,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE;AAClB;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,OAAO,IAAI;AACtC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC;;AAEtB;;AAEA,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE;AACpB;AACA,MAAM,KAAK,EAAE;;AAEb,MAAM,OAAO,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;AACnC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAQ,IAAI,EAAE,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK;AAClD,QAAQ,SAAS,GAAG,IAAI;AACxB;AACA,MAAM,OAAO,SAAS,IAAI,EAAE,KAAK,GAAG;AACpC;;;AAGA,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE;AACpB;AACA,MAAM,KAAK,EAAE;;AAEb,MAAM,OAAO,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;AACnC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAQ,IAAI,EAAE,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK;AAC5D,QAAQ,SAAS,GAAG,IAAI;AACxB;AACA,MAAM,OAAO,SAAS,IAAI,EAAE,KAAK,GAAG;AACpC;;;AAGA,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE;AACpB;AACA,MAAM,KAAK,EAAE;;AAEb,MAAM,OAAO,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;AACnC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAQ,IAAI,EAAE,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK;AAC5D,QAAQ,SAAS,GAAG,IAAI;AACxB;AACA,MAAM,OAAO,SAAS,IAAI,EAAE,KAAK,GAAG;AACpC;AACA;;AAEA;;AAEA;AACA,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK;;AAE9B,EAAE,OAAO,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE;AAC/B,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;AACpB,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE;AACpB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5C,MAAM,OAAO,KAAK;AAClB;AACA,IAAI,SAAS,GAAG,IAAI;AACpB;;AAEA;AACA,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK;;AAE5C,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE;;AAEhC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE;AACjC,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AACnC;;AAEA,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;;AAEf,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;AAChC,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE;AAC7B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACjB;;AAEA,EAAE,IAAI,KAAK,KAAK,GAAG,EAAE,OAAO,CAAC;;AAE7B,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE;AAClB,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE;;AAEA,EAAE,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AACnC;;AAEA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,iBAAiB;AACvE,UAAU,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC7D;;AAEA,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC5C,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE,kBAAkB;AAC7B,EAAE,SAAS,EAAE,oBAAoB;AACjC,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,SAAS,EAAE;AACb,IAAI,MAAM,OAAO,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAChH,IAAI,KAAK,QAAQ,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAClH,IAAI,OAAO,MAAM,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5D;AACA,IAAI,WAAW,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7I,GAAG;AACH,EAAE,YAAY,EAAE,SAAS;AACzB,EAAE,YAAY,EAAE;AAChB,IAAI,MAAM,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE;AAC9B,IAAI,KAAK,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE;AAC9B,IAAI,OAAO,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AAC9B,IAAI,WAAW,EAAE,EAAE,EAAE,EAAE,KAAK;AAC5B;AACA,CAAC,CAAC;;AAEF,IAAI,kBAAkB,GAAG,IAAI,MAAM;AACnC;AACA,EAAE,8DAA8D;AAChE;AACA;AACA,EAAE,iCAAiC;AACnC;AACA,EAAE,0BAA0B;AAC5B;AACA,EAAE,uBAAuB,CAAC;;AAE1B,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK;;AAEjC,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACpC;AACA;AACA,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AACrC,IAAI,OAAO,KAAK;AAChB;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,IAAI,KAAK,EAAE,IAAI;;AAEjB,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AAC/C,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC;;AAEpC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACnC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1B;;AAEA,EAAE,IAAI,KAAK,KAAK,MAAM,EAAE;AACxB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB;;AAE7E,GAAG,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE;AAC/B,IAAI,OAAO,GAAG;AACd;AACA,EAAE,OAAO,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;AACrC;;;AAGA,IAAI,sBAAsB,GAAG,eAAe;;AAE5C,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3C,EAAE,IAAI,GAAG;;AAET,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AACrB,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,WAAW,EAAE,OAAO,MAAM;AACrC,MAAM,KAAK,WAAW,EAAE,OAAO,MAAM;AACrC,MAAM,KAAK,WAAW,EAAE,OAAO,MAAM;AACrC;AACA,GAAG,MAAM,IAAI,MAAM,CAAC,iBAAiB,KAAK,MAAM,EAAE;AAClD,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,WAAW,EAAE,OAAO,MAAM;AACrC,MAAM,KAAK,WAAW,EAAE,OAAO,MAAM;AACrC,MAAM,KAAK,WAAW,EAAE,OAAO,MAAM;AACrC;AACA,GAAG,MAAM,IAAI,MAAM,CAAC,iBAAiB,KAAK,MAAM,EAAE;AAClD,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,WAAW,EAAE,OAAO,OAAO;AACtC,MAAM,KAAK,WAAW,EAAE,OAAO,OAAO;AACtC,MAAM,KAAK,WAAW,EAAE,OAAO,OAAO;AACtC;AACA,GAAG,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAC5C,IAAI,OAAO,MAAM;AACjB;;AAEA,EAAE,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;AAE3B;AACA;;AAEA,EAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG;AACxE;;AAEA,SAAS,OAAO,CAAC,MAAM,EAAE;AACzB,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,iBAAiB;AACtE,UAAU,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5D;;AAEA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChD,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE,gBAAgB;AAC3B,EAAE,SAAS,EAAE,kBAAkB;AAC/B,EAAE,SAAS,EAAE,OAAO;AACpB,EAAE,SAAS,EAAE,kBAAkB;AAC/B,EAAE,YAAY,EAAE;AAChB,CAAC,CAAC;;AAEF,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC3B,EAAE,QAAQ,EAAE;AACZ,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI;AACJ;AACA,CAAC,CAAC;;AAEF,IAAI,IAAI,GAAG,IAAI;;AAEf,IAAI,gBAAgB,GAAG,IAAI,MAAM;AACjC,EAAE,yBAAyB;AAC3B,EAAE,eAAe;AACjB,EAAE,gBAAgB,CAAC,CAAC;;AAEpB,IAAI,qBAAqB,GAAG,IAAI,MAAM;AACtC,EAAE,yBAAyB;AAC3B,EAAE,gBAAgB;AAClB,EAAE,gBAAgB;AAClB,EAAE,kBAAkB;AACpB,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,eAAe;AACjB,EAAE,kBAAkB;AACpB,EAAE,kCAAkC;AACpC,EAAE,wBAAwB,CAAC,CAAC;;AAE5B,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK;AACjC,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI;AACvD,EAAE,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,OAAO,IAAI;AAC5D,EAAE,OAAO,KAAK;AACd;;AAEA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,EAAE,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC;AACjE,MAAM,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI;;AAE5C,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAE9D,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;;AAE3D;;AAEA,EAAE,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,EAAE,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;;AAEnB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACjB,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/C;;AAEA;;AAEA,EAAE,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,EAAE,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;;AAEtB,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAChB,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACnC,IAAI,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,MAAM,QAAQ,IAAI,GAAG;AACrB;AACA,IAAI,QAAQ,GAAG,CAAC,QAAQ;AACxB;;AAEA;;AAEA,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1B,IAAI,SAAS,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjC,IAAI,KAAK,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,SAAS,IAAI,KAAK,CAAC;AAC/C,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC,KAAK;AACxC;;AAEA,EAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAE7E,EAAE,IAAI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC;;AAEjD,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,sBAAsB,CAAC,MAAM,cAAc;AACpD,EAAE,OAAO,MAAM,CAAC,WAAW,EAAE;AAC7B;;AAEA,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,6BAA6B,EAAE;AACxD,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE,oBAAoB;AAC/B,EAAE,SAAS,EAAE,sBAAsB;AACnC,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,SAAS,EAAE;AACb,CAAC,CAAC;;AAEF,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;AACvC;;AAEA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChD,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE;AACX,CAAC,CAAC;;AAEF;;;;;;AAMA;AACA,IAAI,UAAU,GAAG,uEAAuE;;;AAGxF,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK;;AAEjC,EAAE,IAAI,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,UAAU;;AAEhE;AACA,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;AAClC,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAExC;AACA,IAAI,IAAI,IAAI,GAAG,EAAE,EAAE;;AAEnB;AACA,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,KAAK;;AAE9B,IAAI,MAAM,IAAI,CAAC;AACf;;AAEA;AACA,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;AAC3B;;AAEA,SAAS,mBAAmB,CAAC,IAAI,EAAE;AACnC,EAAE,IAAI,GAAG,EAAE,QAAQ;AACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM;AACxB,MAAM,GAAG,GAAG,UAAU;AACtB,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,MAAM,GAAG,EAAE;;AAEjB;;AAEA,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;AAClC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAChC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACtC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC9B;;AAEA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACvD;;AAEA;;AAEA,EAAE,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;;AAE1B,EAAE,IAAI,QAAQ,KAAK,CAAC,EAAE;AACtB,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACnC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC5B,GAAG,MAAM,IAAI,QAAQ,KAAK,EAAE,EAAE;AAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACnC,GAAG,MAAM,IAAI,QAAQ,KAAK,EAAE,EAAE;AAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACnC;;AAEA,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AAC/B;;AAEA,SAAS,mBAAmB,CAAC,MAAM,cAAc;AACjD,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI;AACtC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM;AACzB,MAAM,GAAG,GAAG,UAAU;;AAEtB;;AAEA,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;AAClC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAChC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACxC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACxC,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACvC,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC;;AAEA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;AACpC;;AAEA;;AAEA,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;;AAEhB,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AAClB,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACtC,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACtC,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;AAC9B,GAAG,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACzB,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC;AACtC,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;AACrB,GAAG,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACzB,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,IAAI,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;AACrB,IAAI,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;AACrB;;AAEA,EAAE,OAAO,MAAM;AACf;;AAEA,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,qBAAqB;AACvE;;AAEA,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,0BAA0B,EAAE;AAClD,EAAE,IAAI,EAAE,QAAQ;AAChB,EAAE,OAAO,EAAE,iBAAiB;AAC5B,EAAE,SAAS,EAAE,mBAAmB;AAChC,EAAE,SAAS,EAAE,QAAQ;AACrB,EAAE,SAAS,EAAE;AACb,CAAC,CAAC;;AAEF,IAAI,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;AACvD,IAAI,WAAW,SAAS,MAAM,CAAC,SAAS,CAAC,QAAQ;;AAEjD,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU;AAC/D,MAAM,MAAM,GAAG,IAAI;;AAEnB,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACtE,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,IAAI,UAAU,GAAG,KAAK;;AAEtB,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,EAAE,OAAO,KAAK;;AAElE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE;AAC1B,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;AACjD,QAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;AAC1C,aAAa,OAAO,KAAK;AACzB;AACA;;AAEA,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,KAAK;;AAEjC,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACpE,SAAS,OAAO,KAAK;AACrB;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AAClC;;AAEA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC9C,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,OAAO,EAAE,eAAe;AAC1B,EAAE,SAAS,EAAE;AACb,CAAC,CAAC;;AAEF,IAAI,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;;AAE3C,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;AACvC,MAAM,MAAM,GAAG,IAAI;;AAEnB,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;;AAEnC,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACtE,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;;AAExB,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,iBAAiB,EAAE,OAAO,KAAK;;AAElE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;AAE5B,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;;AAEvC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,EAAE;;AAE9B,EAAE,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;AACvC,MAAM,MAAM,GAAG,IAAI;;AAEnB,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;;AAEnC,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACtE,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;;AAExB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;AAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C;;AAEA,EAAE,OAAO,MAAM;AACf;;AAEA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChD,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,OAAO,EAAE,gBAAgB;AAC3B,EAAE,SAAS,EAAE;AACb,CAAC,CAAC;;AAEF,IAAI,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;;AAEvD,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI;;AAEhC,EAAE,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI;;AAExB,EAAE,KAAK,GAAG,IAAI,MAAM,EAAE;AACtB,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC7C,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;AAC5C;AACA;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AAClC;;AAEA,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC5C,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,OAAO,EAAE,cAAc;AACzB,EAAE,SAAS,EAAE;AACb,CAAC,CAAC;;AAEF,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,EAAE,QAAQ,EAAE;AACZ,IAAI,SAAS;AACb,IAAI;AACJ,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI;AACJ;AACA,CAAC,CAAC;;AAEF;;;;;;;;AAQA,IAAI,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc;;;AAGvD,IAAI,eAAe,KAAK,CAAC;AACzB,IAAI,gBAAgB,IAAI,CAAC;AACzB,IAAI,gBAAgB,IAAI,CAAC;AACzB,IAAI,iBAAiB,GAAG,CAAC;;;AAGzB,IAAI,aAAa,IAAI,CAAC;AACtB,IAAI,cAAc,GAAG,CAAC;AACtB,IAAI,aAAa,IAAI,CAAC;;;AAGtB,IAAI,qBAAqB,WAAW,qIAAqI;AACzK,IAAI,6BAA6B,GAAG,oBAAoB;AACxD,IAAI,uBAAuB,SAAS,aAAa;AACjD,IAAI,kBAAkB,cAAc,wBAAwB;AAC5D,IAAI,eAAe,iBAAiB,kFAAkF;;;AAGtH,SAAS,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAElE,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,IAAI,SAAS;AACrD;;AAEA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,IAAI,YAAY;AACzD;;AAEA,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI;AACpB,UAAU,CAAC,KAAK,IAAI,YAAY;AAChC,UAAU,CAAC,KAAK,IAAI,SAAS;AAC7B,UAAU,CAAC,KAAK,IAAI,SAAS;AAC7B;;AAEA,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,EAAE,OAAO,CAAC,KAAK,IAAI;AACnB,SAAS,CAAC,KAAK,IAAI;AACnB,SAAS,CAAC,KAAK,IAAI;AACnB,SAAS,CAAC,KAAK,IAAI;AACnB,SAAS,CAAC,KAAK,IAAI;AACnB;;AAEA,SAAS,WAAW,CAAC,CAAC,EAAE;AACxB,EAAE,IAAI,EAAE;;AAER,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;AAChD,IAAI,OAAO,CAAC,GAAG,IAAI;AACnB;;AAEA;AACA,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI;;AAEf,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,MAAM,EAAE,IAAI,IAAI,QAAQ,EAAE;AAClD,IAAI,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE;AACzB;;AAEA,EAAE,OAAO,EAAE;AACX;;AAEA,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,OAAO,CAAC,CAAC;AACpC,EAAE,OAAO,CAAC;AACV;;AAEA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE;AAChD,IAAI,OAAO,CAAC,GAAG,IAAI;AACnB;;AAEA,EAAE,OAAO,EAAE;AACX;;AAEA,SAAS,oBAAoB,CAAC,CAAC,EAAE;AACjC;AACA,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACrC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,aAAa,MAAM;AACtC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,eAAe,GAAG;AACrC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,GAAG;AACjC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,MAAM;AACpC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,QAAQ;AACtC,QAAQ,CAAC,CAAC,KAAK,IAAI,WAAW,QAAQ,GAAG,EAAE;AAC3C;;AAEA,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE;AACnB,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AACjC;AACA;AACA;AACA,EAAE,OAAO,MAAM,CAAC,YAAY;AAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,EAAE,IAAI,MAAM;AACnC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,MAAM,IAAI;AAChC,GAAG;AACH;;AAEA;AACA;AACA,SAAS,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AACzC;AACA,EAAE,IAAI,GAAG,KAAK,WAAW,EAAE;AAC3B,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AACvC,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AACvB;AACA;;AAEA,IAAI,iBAAiB,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,IAAI,eAAe,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;AACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC9B,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACxD,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAC9C;;;AAGA,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE;AACjC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;;AAEpB,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI;AAC/C,EAAE,IAAI,CAAC,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,QAAQ;AACnD,EAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI;AAC/C;AACA;AACA,EAAE,IAAI,CAAC,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,KAAK;;AAEhD,EAAE,IAAI,CAAC,IAAI,QAAQ,OAAO,CAAC,MAAM,CAAC,SAAS,KAAK;AAChD,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI;;AAE/C,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;AACnD,EAAE,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,MAAM,CAAC,eAAe;;AAElD,EAAE,IAAI,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM;AAChC,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC;AACrB,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC;AACrB,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;AACrB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;;AAErB;AACA;AACA,EAAE,IAAI,CAAC,cAAc,GAAG,EAAE;;AAE1B,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,IAAI,MAAM,KAAK,CAAC,QAAQ;AAC5B,IAAI,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACtC,IAAI,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAC5B,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI;AACxB,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrC,GAAG;;AAEH,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;;AAE9B,EAAE,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;AACrC;;AAEA,SAAS,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AACpC,EAAE,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;AACrC;;AAEA,SAAS,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;AACtC,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE;AACvB,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7D;AACA;;;AAGA,IAAI,iBAAiB,GAAG;;AAExB,EAAE,IAAI,EAAE,SAAS,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;;AAExD,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK;;AAE3B,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,MAAM,UAAU,CAAC,KAAK,EAAE,gCAAgC,CAAC;AACzD;;AAEA,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,UAAU,CAAC,KAAK,EAAE,6CAA6C,CAAC;AACtE;;AAEA,IAAI,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;AAEhD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;AACxB,MAAM,UAAU,CAAC,KAAK,EAAE,2CAA2C,CAAC;AACpE;;AAEA,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClC,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;AAElC,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,UAAU,CAAC,KAAK,EAAE,2CAA2C,CAAC;AACpE;;AAEA,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3B,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,GAAG,CAAC,CAAC;;AAEvC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;AACpC,MAAM,YAAY,CAAC,KAAK,EAAE,0CAA0C,CAAC;AACrE;AACA,GAAG;;AAEH,EAAE,GAAG,EAAE,SAAS,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;;AAEtD,IAAI,IAAI,MAAM,EAAE,MAAM;;AAEtB,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,UAAU,CAAC,KAAK,EAAE,6CAA6C,CAAC;AACtE;;AAEA,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACpB,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;;AAEpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC1C,MAAM,UAAU,CAAC,KAAK,EAAE,6DAA6D,CAAC;AACtF;;AAEA,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;AACtD,MAAM,UAAU,CAAC,KAAK,EAAE,6CAA6C,GAAG,MAAM,GAAG,cAAc,CAAC;AAChG;;AAEA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACvC,MAAM,UAAU,CAAC,KAAK,EAAE,8DAA8D,CAAC;AACvF;;AAEA,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;AACzC,KAAK,CAAC,OAAO,GAAG,EAAE;AAClB,MAAM,UAAU,CAAC,KAAK,EAAE,2BAA2B,GAAG,MAAM,CAAC;AAC7D;;AAEA,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM;AACjC;AACA,CAAC;;;AAGD,SAAS,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AACtD,EAAE,IAAI,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;;AAE7C,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE;AACnB,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;;AAE3C,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE;AACzF,QAAQ,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;AAClD,QAAQ,IAAI,EAAE,UAAU,KAAK,IAAI;AACjC,eAAe,IAAI,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,CAAC,CAAC,EAAE;AAC/D,UAAU,UAAU,CAAC,KAAK,EAAE,+BAA+B,CAAC;AAC5D;AACA;AACA,KAAK,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACpD,MAAM,UAAU,CAAC,KAAK,EAAE,8CAA8C,CAAC;AACvE;;AAEA,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO;AAC3B;AACA;;AAEA,SAAS,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE;AACpE,EAAE,IAAI,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ;;AAEtC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,IAAI,UAAU,CAAC,KAAK,EAAE,mEAAmE,CAAC;AAC1F;;AAEA,EAAE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;AAElC,EAAE,KAAK,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE;AAC9E,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC;;AAE3B,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE;AACnD,MAAM,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI;AACjC;AACA;AACA;;AAEA,SAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;AACrF,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE;;AAEvC,EAAE,IAAI,KAAK,EAAE,QAAQ;;AAErB;AACA;AACA;AACA,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC9B,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;AAEjD,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE;AAC7E,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AACzC,QAAQ,UAAU,CAAC,KAAK,EAAE,6CAA6C,CAAC;AACxE;;AAEA,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,iBAAiB,EAAE;AACvF,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,iBAAiB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,iBAAiB,EAAE;AAC5E,IAAI,OAAO,GAAG,iBAAiB;AAC/B;;;AAGA,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;;AAE3B,EAAE,IAAI,OAAO,KAAK,IAAI,EAAE;AACxB,IAAI,OAAO,GAAG,EAAE;AAChB;;AAEA,EAAE,IAAI,MAAM,KAAK,yBAAyB,EAAE;AAC5C,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAClC,MAAM,KAAK,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE;AACjF,QAAQ,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;AACxE;AACA,KAAK,MAAM;AACX,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC;AAC/D;AACA,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;AACnB,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC;AACzD,QAAQ,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;AAClD,MAAM,KAAK,CAAC,IAAI,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI;AAC1C,MAAM,KAAK,CAAC,SAAS,GAAG,cAAc,IAAI,KAAK,CAAC,SAAS;AACzD,MAAM,KAAK,CAAC,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC,QAAQ;AACjD,MAAM,UAAU,CAAC,KAAK,EAAE,wBAAwB,CAAC;AACjD;;AAEA,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;AAC5C,IAAI,OAAO,eAAe,CAAC,OAAO,CAAC;AACnC;;AAEA,EAAE,OAAO,OAAO;AAChB;;AAEA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,UAAU;AAC3B,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,GAAG,MAAM,IAAI,EAAE,KAAK,IAAI,UAAU;AAClC,IAAI,KAAK,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,UAAU;AACjE,MAAM,KAAK,CAAC,QAAQ,EAAE;AACtB;AACA,GAAG,MAAM;AACT,IAAI,UAAU,CAAC,KAAK,EAAE,0BAA0B,CAAC;AACjD;;AAEA,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;AACjB,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ;AAClC,EAAE,KAAK,CAAC,cAAc,GAAG,EAAE;AAC3B;;AAEA,SAAS,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE;AAChE,EAAE,IAAI,UAAU,GAAG,CAAC;AACpB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAEjD,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,OAAO,cAAc,CAAC,EAAE,CAAC,EAAE;AAC/B,MAAM,IAAI,EAAE,KAAK,IAAI,aAAa,KAAK,CAAC,cAAc,KAAK,EAAE,EAAE;AAC/D,QAAQ,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,QAAQ;AAC7C;AACA,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD;;AAEA,IAAI,IAAI,aAAa,IAAI,EAAE,KAAK,IAAI,SAAS;AAC7C,MAAM,GAAG;AACT,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACrD,OAAO,QAAQ,EAAE,KAAK,IAAI,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE,KAAK,CAAC;AACrE;;AAEA,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AACpB,MAAM,aAAa,CAAC,KAAK,CAAC;;AAE1B,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjD,MAAM,UAAU,EAAE;AAClB,MAAM,KAAK,CAAC,UAAU,GAAG,CAAC;;AAE1B,MAAM,OAAO,EAAE,KAAK,IAAI,aAAa;AACrC,QAAQ,KAAK,CAAC,UAAU,EAAE;AAC1B,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACrD;AACA,KAAK,MAAM;AACX,MAAM;AACN;AACA;;AAEA,EAAE,IAAI,WAAW,KAAK,EAAE,IAAI,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW,EAAE;AAChF,IAAI,YAAY,CAAC,KAAK,EAAE,uBAAuB,CAAC;AAChD;;AAEA,EAAE,OAAO,UAAU;AACnB;;AAEA,SAAS,qBAAqB,CAAC,KAAK,EAAE;AACtC,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ;AAChC,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;;AAExC;AACA;AACA,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI;AACxC,MAAM,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;AAClD,MAAM,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE;;AAEpD,IAAI,SAAS,IAAI,CAAC;;AAElB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;;AAE1C,IAAI,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE;AACtC,MAAM,OAAO,IAAI;AACjB;AACA;;AAEA,EAAE,OAAO,KAAK;AACd;;AAEA,SAAS,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE;AACxC,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE;AACnB,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;AACvB,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;AACxB,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;AAClD;AACA;;;AAGA,SAAS,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE;AAClE,EAAE,IAAI,SAAS;AACf,MAAM,SAAS;AACf,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,iBAAiB;AACvB,MAAM,KAAK;AACX,MAAM,UAAU;AAChB,MAAM,WAAW;AACjB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI;AACxB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;AAC5B,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC;AACtB,MAAM,iBAAiB,CAAC,EAAE,CAAC;AAC3B,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI;AACjB,MAAM,EAAE,KAAK,IAAI,SAAS;AAC1B,IAAI,OAAO,KAAK;AAChB;;AAEA,EAAE,IAAI,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,SAAS;AAChD,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAE1D,IAAI,IAAI,YAAY,CAAC,SAAS,CAAC;AAC/B,QAAQ,oBAAoB,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;AAC9D,MAAM,OAAO,KAAK;AAClB;AACA;;AAEA,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ;AACvB,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE;AACnB,EAAE,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;AAC5C,EAAE,iBAAiB,GAAG,KAAK;;AAE3B,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAE5D,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC;AACjC,UAAU,oBAAoB,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE;AAChE,QAAQ;AACR;;AAEA,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AACnC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAE5D,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE;AACnC,QAAQ;AACR;;AAEA,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC;AAClF,eAAe,oBAAoB,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE;AAC9D,MAAM;;AAEN,KAAK,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI;AACxB,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS;AAClC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU;AACpC,MAAM,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;;AAE3C,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE;AAC1C,QAAQ,iBAAiB,GAAG,IAAI;AAChC,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;AACnD,QAAQ;AACR,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,QAAQ,GAAG,UAAU;AACnC,QAAQ,KAAK,CAAC,IAAI,GAAG,KAAK;AAC1B,QAAQ,KAAK,CAAC,SAAS,GAAG,UAAU;AACpC,QAAQ,KAAK,CAAC,UAAU,GAAG,WAAW;AACtC,QAAQ;AACR;AACA;;AAEA,IAAI,IAAI,iBAAiB,EAAE;AAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC;AAC5D,MAAM,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;AACjD,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;AAChD,MAAM,iBAAiB,GAAG,KAAK;AAC/B;;AAEA,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;AAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC;AACrC;;AAEA,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACjD;;AAEA,EAAE,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC;;AAExD,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;AACpB,IAAI,OAAO,IAAI;AACf;;AAEA,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK;AACpB,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO;AACxB,EAAE,OAAO,KAAK;AACd;;AAEA,SAAS,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE;AACnD,EAAE,IAAI,EAAE;AACR,MAAM,YAAY,EAAE,UAAU;;AAE9B,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAC1B,IAAI,OAAO,KAAK;AAChB;;AAEA,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ;AACvB,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,CAAC,QAAQ,EAAE;AAClB,EAAE,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;;AAE5C,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9D,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/D,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEnD,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AAC9B,QAAQ,YAAY,GAAG,KAAK,CAAC,QAAQ;AACrC,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,UAAU,GAAG,KAAK,CAAC,QAAQ;AACnC,OAAO,MAAM;AACb,QAAQ,OAAO,IAAI;AACnB;;AAEA,KAAK,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC;AAC3D,MAAM,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5E,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;;AAEhD,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;AACnF,MAAM,UAAU,CAAC,KAAK,EAAE,8DAA8D,CAAC;;AAEvF,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,QAAQ,EAAE;AACtB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ;AACjC;AACA;;AAEA,EAAE,UAAU,CAAC,KAAK,EAAE,4DAA4D,CAAC;AACjF;;AAEA,SAAS,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE;AACnD,EAAE,IAAI,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,SAAS;AACf,MAAM,SAAS;AACf,MAAM,GAAG;AACT,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAC1B,IAAI,OAAO,KAAK;AAChB;;AAEA,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ;AACvB,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE;AACnB,EAAE,KAAK,CAAC,QAAQ,EAAE;AAClB,EAAE,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;;AAE5C,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9D,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/D,MAAM,KAAK,CAAC,QAAQ,EAAE;AACtB,MAAM,OAAO,IAAI;;AAEjB,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AACnC,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC/D,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEnD,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AACtB,QAAQ,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC;;AAErD;AACA,OAAO,MAAM,IAAI,EAAE,GAAG,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE;AACpD,QAAQ,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC;AAC3C,QAAQ,KAAK,CAAC,QAAQ,EAAE;;AAExB,OAAO,MAAM,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,QAAQ,SAAS,GAAG,GAAG;AACvB,QAAQ,SAAS,GAAG,CAAC;;AAErB,QAAQ,OAAO,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE;AAC3C,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEvD,UAAU,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG;;AAE9C,WAAW,MAAM;AACjB,YAAY,UAAU,CAAC,KAAK,EAAE,gCAAgC,CAAC;AAC/D;AACA;;AAEA,QAAQ,KAAK,CAAC,MAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC;;AAEpD,QAAQ,KAAK,CAAC,QAAQ,EAAE;;AAExB,OAAO,MAAM;AACb,QAAQ,UAAU,CAAC,KAAK,EAAE,yBAAyB,CAAC;AACpD;;AAEA,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;;AAEhD,KAAK,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AAC3B,MAAM,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC;AAC3D,MAAM,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5E,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,QAAQ;;AAEhD,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;AACnF,MAAM,UAAU,CAAC,KAAK,EAAE,8DAA8D,CAAC;;AAEvF,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,QAAQ,EAAE;AACtB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ;AACjC;AACA;;AAEA,EAAE,UAAU,CAAC,KAAK,EAAE,4DAA4D,CAAC;AACjF;;AAEA,SAAS,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE;AAC/C,EAAE,IAAI,QAAQ,GAAG,IAAI;AACrB,MAAM,KAAK;AACX,MAAM,UAAU;AAChB,MAAM,IAAI;AACV,MAAM,IAAI,OAAO,KAAK,CAAC,GAAG;AAC1B,MAAM,OAAO;AACb,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM;AAC7B,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,MAAM,MAAM;AACZ,MAAM,cAAc;AACpB,MAAM,SAAS;AACf,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,MAAM,OAAO;AACb,MAAM,MAAM;AACZ,MAAM,SAAS;AACf,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAC1B,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AACjC,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,OAAO,GAAG,EAAE;AAChB,GAAG,MAAM;AACT,IAAI,OAAO,KAAK;AAChB;;AAEA,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO;AAC3C;;AAEA,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAE/C,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;;AAEhD,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE/C,IAAI,IAAI,EAAE,KAAK,UAAU,EAAE;AAC3B,MAAM,KAAK,CAAC,QAAQ,EAAE;AACtB,MAAM,KAAK,CAAC,GAAG,GAAG,IAAI;AACtB,MAAM,KAAK,CAAC,MAAM,GAAG,OAAO;AAC5B,MAAM,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU;AACrD,MAAM,KAAK,CAAC,MAAM,GAAG,OAAO;AAC5B,MAAM,OAAO,IAAI;AACjB,KAAK,MAAM,IAAI,CAAC,QAAQ,EAAE;AAC1B,MAAM,UAAU,CAAC,KAAK,EAAE,8CAA8C,CAAC;AACvE,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AACnC;AACA,MAAM,UAAU,CAAC,KAAK,EAAE,0CAA0C,CAAC;AACnE;;AAEA,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;AACvC,IAAI,MAAM,GAAG,cAAc,GAAG,KAAK;;AAEnC,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAE5D,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE;AACnC,QAAQ,MAAM,GAAG,cAAc,GAAG,IAAI;AACtC,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;AACpD;AACA;;AAEA,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AACvB,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS;AAChC,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ;AACzB,IAAI,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC;AAChE,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG;AACtB,IAAI,OAAO,GAAG,KAAK,CAAC,MAAM;AAC1B,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;;AAEhD,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE/C,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,SAAS;AACxE,MAAM,MAAM,GAAG,IAAI;AACnB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD,MAAM,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;AAClD,MAAM,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC;AAClE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;AAC9B;;AAEA,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC;AAC5G,KAAK,MAAM,IAAI,MAAM,EAAE;AACvB,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AACvH,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3B;;AAEA,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;;AAEhD,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE/C,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM,QAAQ,GAAG,IAAI;AACrB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,QAAQ,GAAG,KAAK;AACtB;AACA;;AAEA,EAAE,UAAU,CAAC,KAAK,EAAE,uDAAuD,CAAC;AAC5E;;AAEA,SAAS,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE;AAC5C,EAAE,IAAI,YAAY;AAClB,MAAM,OAAO;AACb,MAAM,QAAQ,SAAS,aAAa;AACpC,MAAM,cAAc,GAAG,KAAK;AAC5B,MAAM,cAAc,GAAG,KAAK;AAC5B,MAAM,UAAU,OAAO,UAAU;AACjC,MAAM,UAAU,OAAO,CAAC;AACxB,MAAM,cAAc,GAAG,KAAK;AAC5B,MAAM,GAAG;AACT,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAC1B,IAAI,OAAO,GAAG,KAAK;AACnB,GAAG,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AACjC,IAAI,OAAO,GAAG,IAAI;AAClB,GAAG,MAAM;AACT,IAAI,OAAO,KAAK;AAChB;;AAEA,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ;AACvB,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE;;AAEnB,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEjD,IAAI,IAAI,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,SAAS;AAClD,MAAM,IAAI,aAAa,KAAK,QAAQ,EAAE;AACtC,QAAQ,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,WAAW,aAAa,GAAG,cAAc;AACxE,OAAO,MAAM;AACb,QAAQ,UAAU,CAAC,KAAK,EAAE,sCAAsC,CAAC;AACjE;;AAEA,KAAK,MAAM,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;AACjD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE;AACrB,QAAQ,UAAU,CAAC,KAAK,EAAE,8EAA8E,CAAC;AACzG,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE;AAClC,QAAQ,UAAU,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC;AACzC,QAAQ,cAAc,GAAG,IAAI;AAC7B,OAAO,MAAM;AACb,QAAQ,UAAU,CAAC,KAAK,EAAE,2CAA2C,CAAC;AACtE;;AAEA,KAAK,MAAM;AACX,MAAM;AACN;AACA;;AAEA,EAAE,IAAI,cAAc,CAAC,EAAE,CAAC,EAAE;AAC1B,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACvD,WAAW,cAAc,CAAC,EAAE,CAAC;;AAE7B,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACzD,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC;AACA;;AAEA,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,aAAa,CAAC,KAAK,CAAC;AACxB,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;;AAExB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE/C,IAAI,OAAO,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU;AAC5D,YAAY,EAAE,KAAK,IAAI,YAAY,EAAE;AACrC,MAAM,KAAK,CAAC,UAAU,EAAE;AACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD;;AAEA,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;AAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU;AACnC;;AAEA,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AACpB,MAAM,UAAU,EAAE;AAClB,MAAM;AACN;;AAEA;AACA,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;;AAEvC;AACA,MAAM,IAAI,QAAQ,KAAK,aAAa,EAAE;AACtC,QAAQ,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;AACzF,OAAO,MAAM,IAAI,QAAQ,KAAK,aAAa,EAAE;AAC7C,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,KAAK,CAAC,MAAM,IAAI,IAAI;AAC9B;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA,IAAI,IAAI,OAAO,EAAE;;AAEjB;AACA,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,EAAE;AAC9B,QAAQ,cAAc,GAAG,IAAI;AAC7B;AACA,QAAQ,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;;AAEzF;AACA,OAAO,MAAM,IAAI,cAAc,EAAE;AACjC,QAAQ,cAAc,GAAG,KAAK;AAC9B,QAAQ,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC;;AAE3D;AACA,OAAO,MAAM,IAAI,UAAU,KAAK,CAAC,EAAE;AACnC,QAAQ,IAAI,cAAc,EAAE;AAC5B,UAAU,KAAK,CAAC,MAAM,IAAI,GAAG;AAC7B;;AAEA;AACA,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;AACvD;;AAEA;AACA,KAAK,MAAM;AACX;AACA,MAAM,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC;AACvF;;AAEA,IAAI,cAAc,GAAG,IAAI;AACzB,IAAI,cAAc,GAAG,IAAI;AACzB,IAAI,UAAU,GAAG,CAAC;AAClB,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ;;AAEjC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;AACtC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD;;AAEA,IAAI,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9D;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE;AAC9C,EAAE,IAAI,KAAK;AACX,MAAM,IAAI,QAAQ,KAAK,CAAC,GAAG;AAC3B,MAAM,OAAO,KAAK,KAAK,CAAC,MAAM;AAC9B,MAAM,OAAO,KAAK,EAAE;AACpB,MAAM,SAAS;AACf,MAAM,QAAQ,IAAI,KAAK;AACvB,MAAM,EAAE;;AAER;AACA;AACA,EAAE,IAAI,KAAK,CAAC,cAAc,KAAK,EAAE,EAAE,OAAO,KAAK;;AAE/C,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO;AAC3C;;AAEA,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,IAAI,KAAK,CAAC,cAAc,KAAK,EAAE,EAAE;AACrC,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc;AAC3C,MAAM,UAAU,CAAC,KAAK,EAAE,gDAAgD,CAAC;AACzE;;AAEA,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;AAC5B,MAAM;AACN;;AAEA,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAE1D,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;AAClC,MAAM;AACN;;AAEA,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,KAAK,CAAC,QAAQ,EAAE;;AAEpB,IAAI,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;AAC9C,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE;AAC1C,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;AACnD,QAAQ;AACR;AACA;;AAEA,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI;AACtB,IAAI,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC;AACjE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;;AAExC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE/C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AAC/E,MAAM,UAAU,CAAC,KAAK,EAAE,qCAAqC,CAAC;AAC9D,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;AAC9C,MAAM;AACN;AACA;;AAEA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI;AACpB,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;AAC1B,IAAI,KAAK,CAAC,IAAI,GAAG,UAAU;AAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;AAC1B,IAAI,OAAO,IAAI;AACf;AACA,EAAE,OAAO,KAAK;AACd;;AAEA,SAAS,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE;AACzD,EAAE,IAAI,SAAS;AACf,MAAM,YAAY;AAClB,MAAM,KAAK;AACX,MAAM,QAAQ;AACd,MAAM,aAAa;AACnB,MAAM,OAAO;AACb,MAAM,IAAI,YAAY,KAAK,CAAC,GAAG;AAC/B,MAAM,OAAO,SAAS,KAAK,CAAC,MAAM;AAClC,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,MAAM,MAAM,UAAU,IAAI;AAC1B,MAAM,OAAO,SAAS,IAAI;AAC1B,MAAM,SAAS,OAAO,IAAI;AAC1B,MAAM,aAAa,GAAG,KAAK;AAC3B,MAAM,QAAQ,QAAQ,KAAK;AAC3B,MAAM,EAAE;;AAER;AACA;AACA,EAAE,IAAI,KAAK,CAAC,cAAc,KAAK,EAAE,EAAE,OAAO,KAAK;;AAE/C,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO;AAC3C;;AAEA,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;AACnB,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,cAAc,KAAK,EAAE,EAAE;AACvD,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc;AAC3C,MAAM,UAAU,CAAC,KAAK,EAAE,gDAAgD,CAAC;AACzE;;AAEA,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC1D,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;;AAEvB;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,WAAW,EAAE,KAAK,IAAI,YAAY,YAAY,CAAC,SAAS,CAAC,EAAE;;AAE/E,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AAC9B,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC;AACpH,UAAU,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;AAC7C;;AAEA,QAAQ,QAAQ,GAAG,IAAI;AACvB,QAAQ,aAAa,GAAG,IAAI;AAC5B,QAAQ,YAAY,GAAG,IAAI;;AAE3B,OAAO,MAAM,IAAI,aAAa,EAAE;AAChC;AACA,QAAQ,aAAa,GAAG,KAAK;AAC7B,QAAQ,YAAY,GAAG,IAAI;;AAE3B,OAAO,MAAM;AACb,QAAQ,UAAU,CAAC,KAAK,EAAE,mGAAmG,CAAC;AAC9H;;AAEA,MAAM,KAAK,CAAC,QAAQ,IAAI,CAAC;AACzB,MAAM,EAAE,GAAG,SAAS;;AAEpB;AACA;AACA;AACA,KAAK,MAAM;AACX,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI;AAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS;AACrC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ;;AAE9B,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;AAC1E;AACA;AACA,QAAQ;AACR;;AAEA,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAChC,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAEnD,QAAQ,OAAO,cAAc,CAAC,EAAE,CAAC,EAAE;AACnC,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACvD;;AAEA,QAAQ,IAAI,EAAE,KAAK,IAAI,SAAS;AAChC,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEvD,UAAU,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;AACjC,YAAY,UAAU,CAAC,KAAK,EAAE,yFAAyF,CAAC;AACxH;;AAEA,UAAU,IAAI,aAAa,EAAE;AAC7B,YAAY,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC;AACtH,YAAY,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;AAC/C;;AAEA,UAAU,QAAQ,GAAG,IAAI;AACzB,UAAU,aAAa,GAAG,KAAK;AAC/B,UAAU,YAAY,GAAG,KAAK;AAC9B,UAAU,MAAM,GAAG,KAAK,CAAC,GAAG;AAC5B,UAAU,OAAO,GAAG,KAAK,CAAC,MAAM;;AAEhC,SAAS,MAAM,IAAI,QAAQ,EAAE;AAC7B,UAAU,UAAU,CAAC,KAAK,EAAE,0DAA0D,CAAC;;AAEvF,SAAS,MAAM;AACf,UAAU,KAAK,CAAC,GAAG,GAAG,IAAI;AAC1B,UAAU,KAAK,CAAC,MAAM,GAAG,OAAO;AAChC,UAAU,OAAO,IAAI,CAAC;AACtB;;AAEA,OAAO,MAAM,IAAI,QAAQ,EAAE;AAC3B,QAAQ,UAAU,CAAC,KAAK,EAAE,gFAAgF,CAAC;;AAE3G,OAAO,MAAM;AACb,QAAQ,KAAK,CAAC,GAAG,GAAG,IAAI;AACxB,QAAQ,KAAK,CAAC,MAAM,GAAG,OAAO;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;AAC/D,MAAM,IAAI,aAAa,EAAE;AACzB,QAAQ,QAAQ,GAAG,KAAK,CAAC,IAAI;AAC7B,QAAQ,aAAa,GAAG,KAAK,CAAC,SAAS;AACvC,QAAQ,OAAO,GAAG,KAAK,CAAC,QAAQ;AAChC;;AAEA,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE;AACjF,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,OAAO,GAAG,KAAK,CAAC,MAAM;AAChC,SAAS,MAAM;AACf,UAAU,SAAS,GAAG,KAAK,CAAC,MAAM;AAClC;AACA;;AAEA,MAAM,IAAI,CAAC,aAAa,EAAE;AAC1B,QAAQ,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC;AACvH,QAAQ,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI;AAC3C;;AAEA,MAAM,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;AACjD;;AAEA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AAC/E,MAAM,UAAU,CAAC,KAAK,EAAE,oCAAoC,CAAC;AAC7D,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE;AAC9C,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC;AAC9G;;AAEA;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI;AACpB,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;AAC1B,IAAI,KAAK,CAAC,IAAI,GAAG,SAAS;AAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;AAC1B;;AAEA,EAAE,OAAO,QAAQ;AACjB;;AAEA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,EAAE,IAAI,SAAS;AACf,MAAM,UAAU,GAAG,KAAK;AACxB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,OAAO,KAAK;;AAEtC,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AAC1B,IAAI,UAAU,CAAC,KAAK,EAAE,+BAA+B,CAAC;AACtD;;AAEA,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAE/C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAC1B,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEjD,GAAG,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AACjC,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEjD,GAAG,MAAM;AACT,IAAI,SAAS,GAAG,GAAG;AACnB;;AAEA,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ;;AAE5B,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACvD,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI;;AAElC,IAAI,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE;AACvC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC5D,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,KAAK,EAAE,oDAAoD,CAAC;AAC7E;AACA,GAAG,MAAM;AACT,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;;AAE1C,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AAC9B,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,UAAU,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;;AAE1E,UAAU,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACnD,YAAY,UAAU,CAAC,KAAK,EAAE,iDAAiD,CAAC;AAChF;;AAEA,UAAU,OAAO,GAAG,IAAI;AACxB,UAAU,SAAS,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC;AACxC,SAAS,MAAM;AACf,UAAU,UAAU,CAAC,KAAK,EAAE,6CAA6C,CAAC;AAC1E;AACA;;AAEA,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD;;AAEA,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAE1D,IAAI,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/C,MAAM,UAAU,CAAC,KAAK,EAAE,qDAAqD,CAAC;AAC9E;AACA;;AAEA,EAAE,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACjD,IAAI,UAAU,CAAC,KAAK,EAAE,2CAA2C,GAAG,OAAO,CAAC;AAC5E;;AAEA,EAAE,IAAI;AACN,IAAI,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;AACzC,GAAG,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,UAAU,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;AAC1D;;AAEA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,KAAK,CAAC,GAAG,GAAG,OAAO;;AAEvB,GAAG,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;AAC9D,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO;;AAEjD,GAAG,MAAM,IAAI,SAAS,KAAK,GAAG,EAAE;AAChC,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,OAAO;;AAE7B,GAAG,MAAM,IAAI,SAAS,KAAK,IAAI,EAAE;AACjC,IAAI,KAAK,CAAC,GAAG,GAAG,oBAAoB,GAAG,OAAO;;AAE9C,GAAG,MAAM;AACT,IAAI,UAAU,CAAC,KAAK,EAAE,yBAAyB,GAAG,SAAS,GAAG,GAAG,CAAC;AAClE;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,EAAE,IAAI,SAAS;AACf,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,OAAO,KAAK;;AAEtC,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AAC7B,IAAI,UAAU,CAAC,KAAK,EAAE,mCAAmC,CAAC;AAC1D;;AAEA,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC/C,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ;;AAE5B,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;AAClE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACjD;;AAEA,EAAE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;AACpC,IAAI,UAAU,CAAC,KAAK,EAAE,4DAA4D,CAAC;AACnF;;AAEA,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC7D,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,EAAE,IAAI,SAAS,EAAE,KAAK;AACtB,MAAM,EAAE;;AAER,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE7C,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,OAAO,KAAK;;AAEtC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC/C,EAAE,SAAS,GAAG,KAAK,CAAC,QAAQ;;AAE5B,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE;AAClE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACjD;;AAEA,EAAE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;AACpC,IAAI,UAAU,CAAC,KAAK,EAAE,2DAA2D,CAAC;AAClF;;AAEA,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;;AAEtD,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;AACvD,IAAI,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,KAAK,GAAG,GAAG,CAAC;AAC3D;;AAEA,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;AACvC,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AACtC,EAAE,OAAO,IAAI;AACb;;AAEA,SAAS,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE;AAClF,EAAE,IAAI,gBAAgB;AACtB,MAAM,iBAAiB;AACvB,MAAM,qBAAqB;AAC3B,MAAM,YAAY,GAAG,CAAC;AACtB,MAAM,SAAS,IAAI,KAAK;AACxB,MAAM,UAAU,GAAG,KAAK;AACxB,MAAM,SAAS;AACf,MAAM,YAAY;AAClB,MAAM,QAAQ;AACd,MAAM,IAAI;AACV,MAAM,UAAU;AAChB,MAAM,WAAW;;AAEjB,EAAE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;AACjC;;AAEA,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI;AACrB,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;AACrB,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI;AACrB,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;;AAErB,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,qBAAqB;AAC9D,IAAI,iBAAiB,KAAK,WAAW;AACrC,IAAI,gBAAgB,MAAM,WAAW;;AAErC,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;AAC9C,MAAM,SAAS,GAAG,IAAI;;AAEtB,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,YAAY,EAAE;AAC3C,QAAQ,YAAY,GAAG,CAAC;AACxB,OAAO,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE;AACpD,QAAQ,YAAY,GAAG,CAAC;AACxB,OAAO,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,YAAY,EAAE;AAClD,QAAQ,YAAY,GAAG,EAAE;AACzB;AACA;AACA;;AAEA,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE;AAC1B,IAAI,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAChE,MAAM,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE;AAChD,QAAQ,SAAS,GAAG,IAAI;AACxB,QAAQ,qBAAqB,GAAG,gBAAgB;;AAEhD,QAAQ,IAAI,KAAK,CAAC,UAAU,GAAG,YAAY,EAAE;AAC7C,UAAU,YAAY,GAAG,CAAC;AAC1B,SAAS,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE;AACtD,UAAU,YAAY,GAAG,CAAC;AAC1B,SAAS,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,YAAY,EAAE;AACpD,UAAU,YAAY,GAAG,EAAE;AAC3B;AACA,OAAO,MAAM;AACb,QAAQ,qBAAqB,GAAG,KAAK;AACrC;AACA;AACA;;AAEA,EAAE,IAAI,qBAAqB,EAAE;AAC7B,IAAI,qBAAqB,GAAG,SAAS,IAAI,YAAY;AACrD;;AAEA,EAAE,IAAI,YAAY,KAAK,CAAC,IAAI,iBAAiB,KAAK,WAAW,EAAE;AAC/D,IAAI,IAAI,eAAe,KAAK,WAAW,IAAI,gBAAgB,KAAK,WAAW,EAAE;AAC7E,MAAM,UAAU,GAAG,YAAY;AAC/B,KAAK,MAAM;AACX,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC;AACnC;;AAEA,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS;;AAElD,IAAI,IAAI,YAAY,KAAK,CAAC,EAAE;AAC5B,MAAM,IAAI,qBAAqB;AAC/B,WAAW,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC;AAChD,WAAW,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAC5D,UAAU,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AACjD,QAAQ,UAAU,GAAG,IAAI;AACzB,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,iBAAiB,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC;AACpE,YAAY,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC;AACrD,YAAY,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AACvD,UAAU,UAAU,GAAG,IAAI;;AAE3B,SAAS,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AACrC,UAAU,UAAU,GAAG,IAAI;;AAE3B,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AAC3D,YAAY,UAAU,CAAC,KAAK,EAAE,2CAA2C,CAAC;AAC1E;;AAEA,SAAS,MAAM,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,KAAK,WAAW,CAAC,EAAE;AACxF,UAAU,UAAU,GAAG,IAAI;;AAE3B,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AAClC,YAAY,KAAK,CAAC,GAAG,GAAG,GAAG;AAC3B;AACA;;AAEA,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AACnC,UAAU,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AACtD;AACA;AACA,KAAK,MAAM,IAAI,YAAY,KAAK,CAAC,EAAE;AACnC;AACA;AACA,MAAM,UAAU,GAAG,qBAAqB,IAAI,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC;AACjF;AACA;;AAEA,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE;AAC1B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AAC/B,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AAClD;;AAEA,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1D,MAAM,UAAU,CAAC,KAAK,EAAE,mEAAmE,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;AAC/G;;AAEA,IAAI,KAAK,SAAS,GAAG,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,SAAS,IAAI,CAAC,EAAE;AAC7G,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;;AAE3C,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACtC,QAAQ,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;AACnD,QAAQ,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;AAC5B,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AACnC,UAAU,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AACtD;AACA,QAAQ;AACR;AACA;AACA,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AAChC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;AACpF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/D,KAAK,MAAM;AACX;AACA,MAAM,IAAI,GAAG,IAAI;AACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;;AAE9D,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,SAAS,IAAI,CAAC,EAAE;AACpG,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE;AAC5F,UAAU,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;AACpC,UAAU;AACV;AACA;AACA;;AAEA,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;AAC3D;;AAEA,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;AAC3D,MAAM,UAAU,CAAC,KAAK,EAAE,+BAA+B,GAAG,KAAK,CAAC,GAAG,GAAG,uBAAuB,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;AAC1I;;AAEA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;AAChD,MAAM,UAAU,CAAC,KAAK,EAAE,+BAA+B,GAAG,KAAK,CAAC,GAAG,GAAG,gBAAgB,CAAC;AACvF,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;AAC5D,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE;AACjC,QAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM;AACpD;AACA;AACA;;AAEA,EAAE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC/B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AAClC;AACA,EAAE,OAAO,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU;AACnE;;AAEA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,EAAE,IAAI,aAAa,GAAG,KAAK,CAAC,QAAQ;AACpC,MAAM,SAAS;AACf,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,aAAa,GAAG,KAAK;AAC3B,MAAM,EAAE;;AAER,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI;AACtB,EAAE,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM;AACtC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACpC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAEvC,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9D,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;;AAExC,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;;AAE/C,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS;AACpD,MAAM;AACN;;AAEA,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACjD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ;;AAE9B,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;AAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACnD;;AAEA,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;AAChE,IAAI,aAAa,GAAG,EAAE;;AAEtB,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,MAAM,UAAU,CAAC,KAAK,EAAE,8DAA8D,CAAC;AACvF;;AAEA,IAAI,OAAO,EAAE,KAAK,CAAC,EAAE;AACrB,MAAM,OAAO,cAAc,CAAC,EAAE,CAAC,EAAE;AACjC,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACrD;;AAEA,MAAM,IAAI,EAAE,KAAK,IAAI,SAAS;AAC9B,QAAQ,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC3D,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACtC,QAAQ;AACR;;AAEA,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;;AAEtB,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ;;AAEhC,MAAM,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;AAC5C,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;AACrD;;AAEA,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACtE;;AAEA,IAAI,IAAI,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC;;AAEtC,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE;AAClE,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC;AAC3E,KAAK,MAAM;AACX,MAAM,YAAY,CAAC,KAAK,EAAE,8BAA8B,GAAG,aAAa,GAAG,GAAG,CAAC;AAC/E;AACA;;AAEA,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;;AAEtC,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC;AAC5B,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI;AACzD,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI;AACzD,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,SAAS;AAClE,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC;AACvB,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;;AAExC,GAAG,MAAM,IAAI,aAAa,EAAE;AAC5B,IAAI,UAAU,CAAC,KAAK,EAAE,iCAAiC,CAAC;AACxD;;AAEA,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC;AAC1E,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;;AAEtC,EAAE,IAAI,KAAK,CAAC,eAAe;AAC3B,MAAM,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;AAC5F,IAAI,YAAY,CAAC,KAAK,EAAE,kDAAkD,CAAC;AAC3E;;AAEA,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;;AAEpC,EAAE,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;;AAE1E,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS;AAChE,MAAM,KAAK,CAAC,QAAQ,IAAI,CAAC;AACzB,MAAM,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AAC1C;AACA,IAAI;AACJ;;AAEA,EAAE,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAC3C,IAAI,UAAU,CAAC,KAAK,EAAE,uDAAuD,CAAC;AAC9E,GAAG,MAAM;AACT,IAAI;AACJ;AACA;;;AAGA,SAAS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE;AACvC,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACvB,EAAE,OAAO,GAAG,OAAO,IAAI,EAAE;;AAEzB,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE1B;AACA,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;AACnD,QAAQ,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,UAAU;AAC7D,MAAM,KAAK,IAAI,IAAI;AACnB;;AAEA;AACA,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;AACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5B;AACA;;AAEA,EAAE,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;;AAEzC,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;;AAEnC,EAAE,IAAI,OAAO,KAAK,EAAE,EAAE;AACtB,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO;AAC5B,IAAI,UAAU,CAAC,KAAK,EAAE,mCAAmC,CAAC;AAC1D;;AAEA;AACA,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;;AAErB,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,aAAa;AACrE,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC;AACzB,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC;AACvB;;AAEA,EAAE,OAAO,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAC9C,IAAI,YAAY,CAAC,KAAK,CAAC;AACvB;;AAEA,EAAE,OAAO,KAAK,CAAC,SAAS;AACxB;;;AAqBA,SAAS,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;AAChC,EAAE,IAAI,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;;AAE/C,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B;AACA,IAAI,OAAO,SAAS;AACpB,GAAG,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC;AACvB;AACA,EAAE,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC;AACjF;AAIA,IAAI,MAAM,MAAM,MAAM;;AAEtB,IAAI,MAAM,GAAG;AACb,CACC,IAAI,EAAE;AACP,CAAC;AAw9BD,IAAI,IAAI,kBAAkB,MAAM,CAAC,IAAI;;ACxsHrC;;AAEG;AACG,SAAU,sBAAsB,CAAC,KAAa,EAAA;AAClD,IAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;AACjB,QAAA,OAAO,EAAE;;AAGX,IAAA,IAAI;QACF,MAAM,MAAM,GAAGC,IAAS,CAAC,KAAK,CAAsB;QACpD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;AAE7D,QAAA,OAAO,MAAM;;IACb,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,CAAA,CAAE,CAAC;;AAEtH;AAEA;;;AAGG;AACG,SAAU,0BAA0B,CAAC,SAAiB,EAAA;AAC1D,IAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;AACrB,QAAA,OAAO,EAAE;;AAGX,IAAA,IAAI;QACF,MAAM,MAAM,GAAGA,IAAS,CAAC,SAAS,CAA4B;QAC9D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;;QAGlE,MAAM,MAAM,GAAsB,EAAE;AACpC,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACjD,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAA,4BAAA,CAA8B,CAAC;;YAE/E,MAAM,QAAQ,GAAG,KAAK;YACtB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC5B,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,GAAG,CAAoB,iBAAA,EAAA,QAAQ,CAAE,CAAA,CAAC;;AAEnF,YAAA,IAAI;AACF,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;;YAChD,OAAO,GAAG,EAAE;gBACZ,MAAM,IAAI,KAAK,CACb,CAAA,2CAAA,EAA8C,GAAG,CAAc,WAAA,EAAA,QAAQ,CAAM,GAAA,EAAA,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,eAAe,CAAE,CAAA,CACpI;;;AAIL,QAAA,OAAO,MAAM;;IACb,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CACb,4CAA4C,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,CAAA,CAAE,CACvG;;AAEL;AAEA;;AAEG;AACa,SAAA,wBAAwB,CAAC,IAAY,EAAE,SAA4B,EAAA;IACjF,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAI;AAChE,QAAA,IAAI,YAAY,IAAI,SAAS,EAAE;AAC7B,YAAA,OAAO,SAAS,CAAC,YAAY,CAAC;;AAEhC,QAAA3F,mBAAY,CAAC,sBAAsB,YAAY,CAAA,8BAAA,CAAgC,CAAC;QAChF,OAAO,KAAK,CAAA;AACd,KAAC,CAAC;AACJ;AAEA;;AAEG;SACa,cAAc,CAAC,QAAgB,EAAE,oBAAuC,EAAE,EAAA;IACxF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC5B,QAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAA,CAAE,CAAC;;IAGvD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;AAEtD,IAAA,IAAI;QACF,MAAM,MAAM,GAAG2F,IAAS,CAAC,WAAW,CAAiB;AAErD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACvD,YAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;;;AAIhE,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACrC,gBAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;;AAE3E,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC3D,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,OAAO,CAAC,IAAI,CAAE,CAAA,CAAC;;;;QAK5D,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAG;YAC1C,OAAO;AACL,gBAAA,GAAG,GAAG;gBACN,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC;aAClE;AACH,SAAC,CAAC;AAEF,QAAA,OAAO,MAAM;;IACb,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,CAAA,CAAE,CAAC;;AAE/G;AAEA;;AAEG;AACG,SAAU,gBAAgB,CAAC,QAAgB,EAAA;AAC/C,IAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC9E;;ACpIA;;;;AAIG;AACI,eAAe,GAAG,GAAA;AACvB,IAAA,IAAI;QACF,MAAM,cAAc,GAAGD,oBAAa,CAAC,aAAa,CAAC;QACnD,MAAM,cAAc,GAAGA,oBAAa,CAAC,OAAO,CAAC;QAC7C,MAAM,kBAAkB,GAAGA,oBAAa,CAAC,YAAY,CAAC;QAEtD,IAAI,YAAY,GAA6B,SAAS;QACtD,IAAI,YAAY,GAAuB,SAAS;QAChD,IAAI,MAAM,GAAuB,SAAS;;AAG1C,QAAA,IAAI,cAAc,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE;AACtD,YAAA3F,gBAAS,CAAC,+BAA+B,CAAC;;AAG1C,YAAA,MAAM,UAAU,GAAG,sBAAsB,CAAC,cAAc,CAAC;AACzD,YAAA,MAAM,QAAQ,GAAG,0BAA0B,CAAC,kBAAkB,CAAC;YAC/D,MAAM,iBAAiB,GAAG,EAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,EAAC;;AAGtD,YAAA,YAAY,GAAG,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC;;aAC3D;;AAEL,YAAAA,gBAAS,CAAC,4BAA4B,CAAC;AAEvC,YAAA,MAAM,GAAG,0BAA0B,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC5D,YAAY,GAAG,0BAA0B,CAAC,oBAAoB,EAAE,eAAe,EAAE,6BAA6B,CAAC;;;AAIjH,QAAA,MAAM,SAAS,GAAG,YAAY,EAAE,KAAK,IAAI2F,oBAAa,CAAC,OAAO,CAAC;AAC/D,QAAA,IAAI,SAAS,GAAG,YAAY,EAAE,eAAe,EAAE,SAAS,IAAIA,oBAAa,CAAC,YAAY,CAAC;AAEvF,QAAA,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,YAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;;AAGrC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAIA,oBAAa,CAAC,OAAO,CAAC;AACnE,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;;;QAI5C,MAAM,cAAc,GAAGA,oBAAa,CAAC,kBAAkB,CAAC,IAAI,KAAK;QACjE,MAAM,iBAAiB,GAAGA,oBAAa,CAAC,qBAAqB,CAAC;QAE9D,MAAM,QAAQ,GAAGA,oBAAa,CAAC,UAAU,CAAC;;AAG1C,QAAA,MAAM,gBAAgB,GAAG,qBAAqB,CAC5C,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,SAAS,EACT,YAAY,EAAE,eAAe,EAAE,WAAW,EAC1C,YAAY,EAAE,eAAe,EAAE,IAAI,EACnC,SAAS,EACT,QAAQ,EACR,KAAK,CACN;QAED,MAAM,SAAS,GAAGE,2BAAoB,CAAC,mBAAmB,CAAC,IAAI,KAAK;QAEpE,IAAI,aAAa,GAAkB,IAAI;QAEvC,IAAI,SAAS,EAAE;YACb,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC;YAE7E,IAAI,SAAS,EAAE;gBACb,aAAa,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC;;iBAC1D;AACL,gBAAA5F,mBAAY,CAAC,yDAAyD,CAAC;AACvE,gBAAA,aAAa,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC;;;aAEpD;AACL,YAAA,aAAa,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC;;QAGzD6F,qBAAc,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC;;;;AAK/C,QAAA,MAAM,YAAY,GAAGC,mBAAY,CAAC;AAChC,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,IAAI,EAAE,IAAI;AACX,SAAA,CAAC;QAEFD,qBAAc,CAAC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;AAElD,QAAA,IAAI,aAAa,IAAI,aAAa,KAAK,EAAE,EAAE;YACzC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC;;;IAE7D,OAAO,KAAK,EAAE;AACd,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,YAAAE,qBAAc,CAAC,KAAK,CAAC,OAAO,CAAC;;aACxB;AACL,YAAAA,qBAAc,CAAC,CAAiC,8BAAA,EAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,CAAE,CAAC;;;AAGnF,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;;AAIjB,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB;;AC7HA;;;AAGG;AAGH;AACA,GAAG,EAAE","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,378]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 036bb10..82ba40c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@modelcontextprotocol/sdk": "^1.25.2", "@types/tmp": "^0.2.6", "js-yaml": "^4.1.1", - "openai": "^5.11.0", + "openai": "^6.9.1", "pkce-challenge": "^5.0.0", "tmp": "^0.2.4" }, @@ -7130,16 +7130,16 @@ } }, "node_modules/openai": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-5.11.0.tgz", - "integrity": "sha512-+AuTc5pVjlnTuA9zvn8rA/k+1RluPIx9AD4eDcnutv6JNwHHZxIhkFy+tmMKCvmMFDQzfA/r1ujvPWB19DQkYg==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-6.9.1.tgz", + "integrity": "sha512-vQ5Rlt0ZgB3/BNmTa7bIijYFhz3YBceAA3Z4JuoMSBftBF9YqFHIEhZakSs+O/Ad7EaoEimZvHxD5ylRjN11Lg==", "license": "Apache-2.0", "bin": { "openai": "bin/cli" }, "peerDependencies": { "ws": "^8.18.0", - "zod": "^3.23.8" + "zod": "^3.25 || ^4.0" }, "peerDependenciesMeta": { "ws": { diff --git a/package.json b/package.json index d6da5c4..25c781b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@modelcontextprotocol/sdk": "^1.25.2", "@types/tmp": "^0.2.6", "js-yaml": "^4.1.1", - "openai": "^5.11.0", + "openai": "^6.9.1", "pkce-challenge": "^5.0.0", "tmp": "^0.2.4" },